Dumb, but easily verifiable implementations of crypto algorithms


Keywords
crypto, pbkdf2, hmac, scrypt, sha256, cryptography, dumb
License
MIT

Documentation

dumb-crypto

Build Status Latest version Documentation License

This library implements following cryptographic routines in the dumbest and the most obvious way:

  • sha256
  • hmac-sha256
  • pbkdf2-sha256
  • salsa20
  • scrypt

Why?

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.

Quick example

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,
]);

Using dumb-crypto

See documentation for details.