summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWiktor Kwapisiewicz <wiktor@metacode.biz>2023-08-10 15:27:38 +0200
committerWiktor Kwapisiewicz <wiktor@metacode.biz>2023-08-10 15:27:38 +0200
commit8b3eb1d059b233dbe91ba9222cfc9ec8202594c0 (patch)
tree13ae82104e1a8b6841606d946dd29e696496f1ac
parent79f051a80260cfb61cc0b67a644cb1899b11ad15 (diff)
WIP: Add debugging helperswiktor/add-kernel-crypto
-rw-r--r--openpgp/src/crypto/backend/kernel/symmetric.rs8
-rw-r--r--openpgp/src/crypto/backend/openssl/symmetric.rs2
-rw-r--r--openpgp/src/serialize/stream.rs2
3 files changed, 11 insertions, 1 deletions
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<Self> {
+ 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<u8>) {
+ 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<u8>) -> Result<Box<dyn Mode>> {
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)