use cipher::KeyIvInit;
use eme2_extended::Eme2;
use threefish::{Threefish256, Threefish512, Threefish1024};
#[test]
fn test_threefish_extended_block_sizes() {
let key256 = [0u8; 96];
let iv256 = [0u8; 32];
let cipher256 = Eme2::<Threefish256>::new(&key256.into(), &iv256.into());
let mut data256 = [0x42u8; 64]; cipher256.encrypt(&mut data256).expect("encryption succeeded");
cipher256.decrypt(&mut data256).expect("decryption succeeded");
assert_eq!(data256, [0x42u8; 64]);
let key512 = [0u8; 192];
let iv512 = [0u8; 64];
let cipher512 = Eme2::<Threefish512>::new(&key512.into(), &iv512.into());
let mut data512 = [0x42u8; 128]; cipher512.encrypt(&mut data512).expect("encryption succeeded");
cipher512.decrypt(&mut data512).expect("decryption succeeded");
assert_eq!(data512, [0x42u8; 128]);
let key1024 = [0u8; 384];
let iv1024 = [0u8; 128];
let cipher1024 = Eme2::<Threefish1024>::new(&key1024.into(), &iv1024.into());
let mut data1024 = [0x42u8; 256]; cipher1024.encrypt(&mut data1024).expect("encryption succeeded");
cipher1024.decrypt(&mut data1024).expect("decryption succeeded");
assert_eq!(data1024, [0x42u8; 256]);
}