This library implements following cryptographic routines in the dumbest and the most obvious way:
- sha256
- hmac-sha256
- pbkdf2-sha256
- salsa20
- scrypt
Normally, one would find a highly optimized code implementing those. However, verifying such code is a non-trivial task. All routines (except for scrypt itself) are pre-requisites for scrypt, and a provided just for convenience.
extern crate dumb_crypto;
use::dumb_crypto::scrypt::Scrypt;
let scrypt = Scrypt::new(1, 128, 1);
let mut out: [u8; 8] = [0; 8];
scrypt.derive(b"passphrase", b"salt", &mut out);
assert_eq!(out.to_vec(), vec![
79, 35, 225, 99, 145, 145, 172, 245,
]);
See documentation for details.