ice-crypt 1.0.0

Rust implementation of the ICE encryption algorithm
Documentation
use ice_crypt::IceKey;

#[test]
fn new() {
    let ice1 = IceKey::new(0);
    let ice2 = IceKey::new(2);

    assert_eq!(1, ice1.size());
    assert_eq!(8, ice1.rounds());

    assert_eq!(2, ice2.size());
    assert_eq!(32, ice2.rounds());
}

#[test]
fn decrypt() {
    let key: Vec<u8> = vec![67, 83, 71, 79, 16, 54, 0, 0, 132, 13, 0, 0, 97, 3, 0, 0];

    let mut icekey = IceKey::new(2);
    icekey.set(key);

    let ctext: Vec<u8> = vec![19, 216, 51, 57, 205, 99, 155, 24];

    let ptext = icekey.decrypt(ctext);

    assert_eq!(ptext, vec![249, 199, 187, 183, 247, 131, 106, 190]);
}

#[test]
fn decrypt_all() {
    let key: Vec<u8> = vec![67, 83, 71, 79, 16, 54, 0, 0, 132, 13, 0, 0, 97, 3, 0, 0];

    let mut icekey = IceKey::new(2);
    icekey.set(key);

    let ctext: Vec<u8> = vec![19, 216, 51, 57, 205, 99, 155, 24, 63, 29, 177, 151, 21, 105, 27, 92, 185, 35, 148, 213, 51, 247, 168, 42, 218];
    let ptext = icekey.decrypt_all(ctext);

    assert_eq!(32, ptext.len());
    assert_eq!(ptext, vec![249, 199, 187, 183, 247, 131, 106, 190, 97, 204, 24, 123, 245, 67, 242, 95, 160, 80, 87, 100, 165, 240, 74, 138, 41, 167, 215, 173, 115, 133, 65, 218]);
}

#[test]
fn encrypt() {
    let key: Vec<u8> = vec![67, 83, 71, 79, 16, 54, 0, 0, 132, 13, 0, 0, 97, 3, 0, 0];

    let mut icekey = IceKey::new(2);
    icekey.set(key);

    let ptext: Vec<u8> = vec![249, 199, 187, 183, 247, 131, 106, 190];

    let ctext = icekey.encrypt(ptext);

    assert_eq!(ctext, vec![19, 216, 51, 57, 205, 99, 155, 24]);
}

#[test]
fn encrypt_all() {
    let key: Vec<u8> = vec![67, 83, 71, 79, 16, 54, 0, 0, 132, 13, 0, 0, 97, 3, 0, 0];

    let mut icekey = IceKey::new(2);
    icekey.set(key);

    let ptext: Vec<u8> = vec![249, 199, 187, 183, 247, 131, 106, 190, 97, 204, 24, 123, 245, 67, 242, 95, 160, 80, 87, 100, 165, 240, 74, 138, 0];
    let ctext: Vec<u8> = icekey.encrypt_all(ptext);

    assert_eq!(32, ctext.len());
    assert_eq!(ctext, vec![19, 216, 51, 57, 205, 99, 155, 24, 63, 29, 177, 151, 21, 105, 27, 92, 185, 35, 148, 213, 51, 247, 168, 42, 22, 80, 253, 87, 163, 6, 164, 45])
}