From 8b3eb1d059b233dbe91ba9222cfc9ec8202594c0 Mon Sep 17 00:00:00 2001 From: Wiktor Kwapisiewicz Date: Thu, 10 Aug 2023 15:27:38 +0200 Subject: WIP: Add debugging helpers --- openpgp/src/crypto/backend/kernel/symmetric.rs | 8 ++++++++ openpgp/src/crypto/backend/openssl/symmetric.rs | 2 ++ openpgp/src/serialize/stream.rs | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/openpgp/src/crypto/backend/kernel/symmetric.rs b/openpgp/src/crypto/backend/kernel/symmetric.rs index d3e7f3dc..2da7d116 100644 --- a/openpgp/src/crypto/backend/kernel/symmetric.rs +++ b/openpgp/src/crypto/backend/kernel/symmetric.rs @@ -27,6 +27,7 @@ struct KernelCipher { impl KernelCipher { fn new(mode: &str, sk_algo: SymmetricAlgorithm) -> Result { + println!("creating cipher: {} {} {}", mode, sk_algo, sk_algo.block_size()?); Ok(Self { cipher: None, block_size: sk_algo.block_size()?, @@ -38,10 +39,12 @@ impl KernelCipher { } fn set_key(&mut self, key: &[u8]) { + println!("KEY = ({}) {key:?}", key.len()); self.key = key.into(); } fn set_iv(&mut self, iv: Vec) { + println!("IV = ({}) {iv:?}", iv.len()); self.iv = iv; } } @@ -65,10 +68,14 @@ impl Mode for KernelCipher { dst.copy_from_slice(&cipher.stream_op()?[0]); self.cipher = Some(Mutex::new(cipher)); } + println!("ENC: src = {src:?}, dst = {dst:?}"); Ok(()) } fn decrypt(&mut self, dst: &mut [u8], src: &[u8]) -> Result<()> { + if dst.len() == 0 && src.len() == 0 { + return Ok(()); + } if let Some(cipher) = &self.cipher { let mut cipher = cipher.lock().expect("not to be poisoned"); if src.len() < self.block_size { @@ -82,6 +89,7 @@ impl Mode for KernelCipher { dst.copy_from_slice(&cipher.stream_op()?[0]); self.cipher = Some(Mutex::new(cipher)); } + println!("DEC: src = ({}) {src:?}, dst = ({}) {dst:?}", src.len(), dst.len()); Ok(()) } } diff --git a/openpgp/src/crypto/backend/openssl/symmetric.rs b/openpgp/src/crypto/backend/openssl/symmetric.rs index 479e470c..efc27227 100644 --- a/openpgp/src/crypto/backend/openssl/symmetric.rs +++ b/openpgp/src/crypto/backend/openssl/symmetric.rs @@ -80,6 +80,8 @@ impl SymmetricAlgorithm { pub(crate) fn make_encrypt_cfb(self, key: &[u8], iv: Vec) -> Result> { let cipher = self.make_cfb_cipher()?; let mut ctx = CipherCtx::new()?; + eprintln!("IV = ({}) {:?}", iv.len(), iv); + eprintln!("Key = ({}) {:?}", key.len(), key); ctx.encrypt_init(Some(cipher), Some(key), Some(&iv))?; Ok(Box::new(OpenSslMode::new(ctx))) } diff --git a/openpgp/src/serialize/stream.rs b/openpgp/src/serialize/stream.rs index 5990fd35..5255970f 100644 --- a/openpgp/src/serialize/stream.rs +++ b/openpgp/src/serialize/stream.rs @@ -3345,7 +3345,7 @@ mod test { #[allow(deprecated)] State::MDC => if let Packet::MDC(ref mdc) = pp.packet { - assert_eq!(mdc.digest(), mdc.computed_digest()); + assert_eq!(mdc.digest(), mdc.computed_digest(), "Digest match"); State::Done } else { panic!("Unexpected packet: {:?}", pp.packet) -- cgit v1.2.3