diff --git a/src/encrypt.rs b/src/encrypt.rs index f9a7502..d733488 100644 --- a/src/encrypt.rs +++ b/src/encrypt.rs @@ -61,17 +61,17 @@ impl McCipher { } fn shift_left(mut arr: [u8; 16], new: u8) { - for i in 0..arr.len() - 1 { - arr[i] = arr[i + 1]; + for i in 1..arr.len() { + arr[i] = arr[i - 1]; } - arr[15] = new; + arr[0] = new; } fn encrypt_block(&self, data: u8) -> u8 { let cipher = Aes128::new(GenericArray::from_slice(&self.key)); let mut block = GenericArray::clone_from_slice(&self.state_en); cipher.encrypt_block(&mut block); - let data = data ^ block[0]; + let data = data ^ block[15]; Self::shift_left(self.state_en, data); data } @@ -81,7 +81,7 @@ impl McCipher { let mut block = GenericArray::clone_from_slice(&self.state_de); cipher.decrypt_block(&mut block); Self::shift_left(self.state_de, data); - let data = data ^ block[0]; + let data = data ^ block[15]; data } }