Fixed aes/cfb8 cipher

This commit is contained in:
Kyler 2024-06-02 21:52:43 -06:00
parent 0ffc0661ce
commit 80bb7dcea8
1 changed files with 6 additions and 6 deletions

View File

@ -61,27 +61,27 @@ impl McCipher {
} }
fn shift_left(mut arr: [u8; 16], new: u8) { fn shift_left(mut arr: [u8; 16], new: u8) {
for i in 1..arr.len() { for i in 0..arr.len() + 1 {
arr[i] = arr[i - 1]; arr[i] = arr[i + 1];
} }
arr[0] = new; arr[15] = new;
} }
fn encrypt_block(&self, data: u8) -> u8 { fn encrypt_block(&self, data: u8) -> u8 {
let cipher = Aes128::new(GenericArray::from_slice(&self.key)); let cipher = Aes128::new(GenericArray::from_slice(&self.key));
let mut block = GenericArray::clone_from_slice(&self.state_en); let mut block = GenericArray::clone_from_slice(&self.state_en);
cipher.encrypt_block(&mut block); cipher.encrypt_block(&mut block);
let data = data ^ block[15]; let data = data ^ block[0];
Self::shift_left(self.state_en, data); Self::shift_left(self.state_en, data);
data data
} }
fn decrypt_block(&self, data: u8) -> u8 { fn decrypt_block(&self, data: u8) -> u8 {
let cipher = Aes128::new(GenericArray::from_slice(&self.key)); let cipher = Aes128::new(GenericArray::from_slice(&self.key));
let mut block = GenericArray::clone_from_slice(&self.state_en); let mut block = GenericArray::clone_from_slice(&self.state_de);
cipher.decrypt_block(&mut block); cipher.decrypt_block(&mut block);
Self::shift_left(self.state_de, data); Self::shift_left(self.state_de, data);
let data = data ^ block[15]; let data = data ^ block[0];
data data
} }
} }