use cipher::KeyIvInit;
use eme2::Eme2;
use serpent::Serpent;
type SerpentEme2 = Eme2<Serpent>;
#[test]
fn test_serpent_compatibility() {
let key = [0x42; 48];
let tweak = [0x11; 16];
let mut plaintext = vec![0u8; 64];
for (i, val) in plaintext.iter_mut().enumerate() {
*val = (i % 256) as u8;
}
let mut buf = plaintext.clone();
let cipher = SerpentEme2::new(&key.into(), &tweak.into());
cipher.encrypt(&mut buf).expect("encryption succeeded");
assert_ne!(buf, plaintext);
assert_eq!(buf.len(), plaintext.len());
cipher.decrypt(&mut buf).expect("decryption succeeded");
assert_eq!(buf, plaintext);
}