From 7bfe98ff076009d96c88f269eb9eb611488357bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=82=D1=91=D0=BC=20=D0=9F=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2=20=5BArtyom=20Pavlov=5D?= Date: Sat, 14 Feb 2026 00:16:22 +0300 Subject: [PATCH] cfb8: remove tail processing --- cfb8/src/decrypt.rs | 11 +++-------- cfb8/src/encrypt.rs | 11 +++-------- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/cfb8/src/decrypt.rs b/cfb8/src/decrypt.rs index 9e3425b..a19f3ef 100644 --- a/cfb8/src/decrypt.rs +++ b/cfb8/src/decrypt.rs @@ -73,15 +73,10 @@ where { /// Decrypt data using `InOutBuf`. pub fn decrypt_inout(&mut self, data: InOutBuf<'_, '_, u8>) { - let (blocks, mut tail) = data.into_chunks(); + let (blocks, tail) = data.into_chunks(); + // Block size is equal to 1 byte, so the tail must be always empty + assert!(tail.is_empty()); self.decrypt_blocks_inout(blocks); - let n = tail.len(); - if n != 0 { - let mut block = Block::::default(); - block[..n].copy_from_slice(tail.get_in()); - self.decrypt_block(&mut block); - tail.get_out().copy_from_slice(&block[..n]); - } } /// Decrypt data in place. diff --git a/cfb8/src/encrypt.rs b/cfb8/src/encrypt.rs index b784e02..09c6169 100644 --- a/cfb8/src/encrypt.rs +++ b/cfb8/src/encrypt.rs @@ -73,15 +73,10 @@ where { /// Encrypt data using `InOutBuf`. pub fn encrypt_inout(&mut self, data: InOutBuf<'_, '_, u8>) { - let (blocks, mut tail) = data.into_chunks(); + let (blocks, tail) = data.into_chunks(); + // Block size is equal to 1 byte, so the tail must be always empty + assert!(tail.is_empty()); self.encrypt_blocks_inout(blocks); - let n = tail.len(); - if n != 0 { - let mut block = Block::::default(); - block[..n].copy_from_slice(tail.get_in()); - self.encrypt_block(&mut block); - tail.get_out().copy_from_slice(&block[..n]); - } } /// Encrypt data in place.