rncryptor 0.1.0

Rust implementation of the RNCryptor AES file format
extern crate quickcheck;
extern crate rncryptor;

use quickcheck::QuickCheck;
use rncryptor::v3;

#[test]
fn test_simple_roundtrip() {
    let result = v3::encrypt("password", "secret".as_bytes())
        .and_then(|encrypted| v3::decrypt("password", &encrypted));
    match result {
        Err(e) => panic!(format!("{:?}", e.kind)),
        Ok(v) => assert_eq!(v, "secret".as_bytes().to_vec()),
    }
}

#[test]
fn test_roundtrip() {
    fn encrypt_decrypt_yields_the_same(message: Vec<u8>) -> bool {
        let result = v3::encrypt("secret", message.as_slice())
            .and_then(|encrypted| v3::decrypt("secret", &encrypted));
        match result {
            Err(_) => false,
            Ok(v) => v == message,
        }
    }
    QuickCheck::new().tests(15).quickcheck(encrypt_decrypt_yields_the_same as fn(Vec<u8>) -> bool);
}