botan 0.1.3

Rust wrapper for Botan cryptography library
Documentation
use super::{Error, Result};

use botan_sys::*;

use std::ffi::CString;

pub fn pbkdf(algo: &str,
             out_len: usize,
             passphrase: &str,
             salt: &[u8],
             iterations: usize) -> Result<Vec<u8>> {

    let algo = CString::new(algo).unwrap();
    let passphrase = CString::new(passphrase).unwrap();

    let mut output = vec![0u8; out_len];

    call_botan! { botan_pbkdf(algo.as_ptr(),
                              output.as_mut_ptr(),
                              output.len(),
                              passphrase.as_ptr(),
                              salt.as_ptr(),
                              salt.len(),
                              iterations) }

    Ok(output)
}