Crate trivium

Crate trivium 

Source
Expand description

Trivium stream cipher crate

Provides a small, tested implementation of the Trivium stream cipher with a helper trivium_xor for XORing data with the generated keystream, and public types for advanced usage (Trivium, BitOrder, PackOrder).

§Examples

Basic helper usage:

let key = vec![0u8; 10];
let iv = vec![0u8; 10];
let data = b"hello".to_vec();
let ct = trivium::trivium_xor(key.clone(), iv.clone(), data.clone()).unwrap();
let pt = trivium::trivium_xor(key, iv, ct).unwrap();
assert_eq!(pt, data);

Direct usage (custom options):

use trivium::{Trivium, BitOrder, PackOrder};
let key = vec![0u8; 10];
let iv = vec![0u8; 10];
let data = b"hello".to_vec();
let ct = Trivium::new(&key, &iv, BitOrder::Lsb, PackOrder::Lsb).xor_bytes(&data);
let pt = Trivium::new(&key, &iv, BitOrder::Lsb, PackOrder::Lsb).xor_bytes(&ct);
assert_eq!(pt, data);

Structs§

Trivium

Enums§

BitOrder
PackOrder

Functions§

trivium_xor
Trivium stream cipher XOR (encrypt/decrypt)