diff options
author | Daniel Schadt <kingdread@gmx.de> | 2025-04-10 13:38:19 +0200 |
---|---|---|
committer | Daniel Schadt <kingdread@gmx.de> | 2025-04-10 18:22:46 +0200 |
commit | a259cff1894c546647f0b975e2d061327a92f879 (patch) | |
tree | 34e5d004606289aa5a8921af482759367568ed08 /src | |
parent | 4c347cbcb9d608c57baf3081714b554e10c70314 (diff) | |
download | zears-a259cff1894c546647f0b975e2d061327a92f879.tar.gz zears-a259cff1894c546647f0b975e2d061327a92f879.tar.bz2 zears-a259cff1894c546647f0b975e2d061327a92f879.zip |
don't pass arrays of keys to aes4 and aes10
Diffstat (limited to 'src')
-rw-r--r-- | src/lib.rs | 60 |
1 files changed, 20 insertions, 40 deletions
@@ -251,27 +251,27 @@ fn aesenc(block: &mut Block, key: &Block){ aes::hazmat::cipher_round((&mut block.0).into(), &key.0.into()); } -fn aes4(keys: &[&Block; 5], block: &Block) -> Block { - 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]); +fn aes4(key_i: &Block, key_j: &Block, key_l: &Block, block: &Block) -> Block { + let mut r = *block; + aesenc(&mut r, key_j); + aesenc(&mut r, key_i); + aesenc(&mut r, key_l); + aesenc(&mut r, &Block::NULL); r } -fn aes10(keys: &[&Block; 11], block: &Block) -> Block { - 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]); +fn aes10(key_i: &Block, key_j: &Block, key_l: &Block, block: &Block) -> Block { + let mut r = *block; + aesenc(&mut r, key_i); + aesenc(&mut r, key_j); + aesenc(&mut r, key_l); + aesenc(&mut r, key_i); + aesenc(&mut r, key_j); + aesenc(&mut r, key_l); + aesenc(&mut r, key_i); + aesenc(&mut r, key_j); + aesenc(&mut r, key_l); + aesenc(&mut r, key_i); r } @@ -764,32 +764,12 @@ impl E { fn eval(&self, block: Block) -> Block { match self.state { Estate::Neg { i } => { - let k = [ - &Block::NULL, - &self.key_i, - &self.key_j, - &self.key_l, - &self.key_i, - &self.key_j, - &self.key_l, - &self.key_i, - &self.key_j, - &self.key_l, - &self.key_i, - ]; let delta = self.key_l * i; - aes10(&k, &(block ^ delta)) + aes10(&self.key_i, &self.key_j, &self.key_l, &(block ^ delta)) } Estate::Pos { i, kj_t_j, ki_p_i } => { - let k = [ - &Block::NULL, - &self.key_j, - &self.key_i, - &self.key_l, - &Block::NULL, - ]; let delta = kj_t_j ^ ki_p_i ^ (self.key_l * (i % 8)); - aes4(&k, &(block ^ delta)) + aes4(&self.key_i, &self.key_j, &self.key_l, &(block ^ delta)) } } } |