aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib.rs60
1 files changed, 20 insertions, 40 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 54d8c86..b00612f 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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))
}
}
}