[][src]Crate lea

LEA-128/192/256 implementations

  • Examples

Encryption

use lea::Lea128;
use lea::block_cipher_trait::BlockCipher;
use lea::generic_array::GenericArray;
use lea::generic_array::arr;
use lea::generic_array::arr_impl;

let key = arr![u8; 0x0F, 0x1E, 0x2D, 0x3C, 0x4B, 0x5A, 0x69, 0x78, 0x87, 0x96, 0xA5, 0xB4, 0xC3, 0xD2, 0xE1, 0xF0];
let lea = Lea128::new(&key);

let mut block = arr![u8; 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F];

lea.encrypt_block(&mut block);

let cipher = arr![u8; 0x9F, 0xC8, 0x4E, 0x35, 0x28, 0xC6, 0xC6, 0x18, 0x55, 0x32, 0xC7, 0xA7, 0x04, 0x64, 0x8B, 0xFD];

assert_eq!(block, cipher);

Decryption

use lea::Lea128;
use lea::block_cipher_trait::BlockCipher;
use lea::generic_array::GenericArray;
use lea::generic_array::arr;
use lea::generic_array::arr_impl;

let key = arr![u8; 0x0F, 0x1E, 0x2D, 0x3C, 0x4B, 0x5A, 0x69, 0x78, 0x87, 0x96, 0xA5, 0xB4, 0xC3, 0xD2, 0xE1, 0xF0];
let lea = Lea128::new(&key);

let mut block = arr![u8; 0x9F, 0xC8, 0x4E, 0x35, 0x28, 0xC6, 0xC6, 0x18, 0x55, 0x32, 0xC7, 0xA7, 0x04, 0x64, 0x8B, 0xFD];

lea.decrypt_block(&mut block);

let plain = arr![u8; 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F];

assert_eq!(block, plain);

Re-exports

pub extern crate block_cipher_trait;
pub extern crate generic_array;
pub extern crate stream_cipher;

Structs

Lea128Ctr
Lea128
Lea192Ctr
Lea192
Lea256Ctr
Lea256