use common_crypto::cryptor::*; #[test] fn rc4_ecb_encrypt() { let config = Config::RC4 { key: b"Key" }; assert_eq!( Cryptor::encrypt(&config, b"Plaintext").unwrap(), &[0xbb, 0xf3, 0x16, 0xe8, 0xd9, 0x40, 0xaf, 0x0a, 0xd3] ); } #[test] fn aes256_round_trip() { let config = Config::AES256 { mode: Mode::CTR, iv: Some(b"use random iv :)"), key: b"0123456789abcdef0123456789abcdef", }; let encrypted = Cryptor::encrypt(&config, b"Hello").unwrap(); assert!(!encrypted.is_empty()); let decrypted = Cryptor::decrypt(&config, encrypted).unwrap(); assert_eq!(decrypted, b"Hello"); } #[test] fn iv_with_ecb_is_error() { let config = Config::AES256 { mode: Mode::ECB, iv: Some(b"use random iv :)"), key: b"0123456789abcdef0123456789abcdef", }; assert_eq!( Cryptor::encrypt(&config, b"Hello").unwrap_err(), CryptorError::InitializationVectorPresent ); } #[test] fn iv_is_used() { let config = Config::AES256 { mode: Mode::CTR, iv: Some(b"use random iv :)"), key: b"0123456789abcdef0123456789abcdef", }; let encrypted = Cryptor::encrypt(&config, b"Hello").unwrap(); assert!(!encrypted.is_empty()); let new_config = Config::AES256 { mode: Mode::CTR, iv: Some(b"very random iv"), key: b"0123456789abcdef0123456789abcdef", }; assert_ne!(Cryptor::encrypt(&new_config, b"Hello").unwrap(), encrypted); }