diff options
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 50 |
1 files changed, 19 insertions, 31 deletions
@@ -247,44 +247,32 @@ impl Aez { } } -fn aesenc(mut block: Block, key: &Block) -> block::Block { +fn aesenc(block: &mut Block, key: &Block){ aes::hazmat::cipher_round((&mut block.0).into(), &key.0.into()); - block } fn aes4(keys: &[&Block; 5], block: &Block) -> Block { - aesenc( - aesenc(aesenc(aesenc(*block ^ *keys[0], keys[1]), keys[2]), keys[3]), - keys[4], - ) + let mut r = *block ^ *keys[0]; + aesenc(&mut r, keys[1]); + aesenc(&mut r, keys[2]); + aesenc(&mut r, keys[3]); + aesenc(&mut r, keys[4]); + r } fn aes10(keys: &[&Block; 11], block: &Block) -> Block { - aesenc( - aesenc( - aesenc( - aesenc( - aesenc( - aesenc( - aesenc( - aesenc( - aesenc(aesenc(*block ^ *keys[0], keys[1]), keys[2]), - keys[3], - ), - keys[4], - ), - keys[5], - ), - keys[6], - ), - keys[7], - ), - keys[8], - ), - keys[9], - ), - keys[10], - ) + let mut r = *block ^ *keys[0]; + aesenc(&mut r, keys[1]); + aesenc(&mut r, keys[2]); + aesenc(&mut r, keys[3]); + aesenc(&mut r, keys[4]); + aesenc(&mut r, keys[5]); + aesenc(&mut r, keys[6]); + aesenc(&mut r, keys[7]); + aesenc(&mut r, keys[8]); + aesenc(&mut r, keys[9]); + aesenc(&mut r, keys[10]); + r } fn extract(key: &[u8]) -> [u8; 48] { |