From 9b0e620c501ed5c590b233c4967f1f2d67e474d4 Mon Sep 17 00:00:00 2001 From: Chris Hennick Date: Wed, 10 May 2023 16:30:59 -0700 Subject: [PATCH] Dump full encryption key while testing or fuzzing --- src/zipcrypto.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/zipcrypto.rs b/src/zipcrypto.rs index 71af39e3..a61dd354 100644 --- a/src/zipcrypto.rs +++ b/src/zipcrypto.rs @@ -18,10 +18,17 @@ pub(crate) struct ZipCryptoKeys { } impl Debug for ZipCryptoKeys { + #[allow(unreachable_code)] fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { - let mut t = DefaultHasher::new(); - self.hash(&mut t); - f.write_fmt(format_args!("ZipCryptoKeys(hash {})", t.finish())) + #[cfg(not(any(test,fuzzing)))] + { + let mut t = DefaultHasher::new(); + self.hash(&mut t); + return f.write_fmt(format_args!("ZipCryptoKeys(hash {})", t.finish())); + } + #[cfg(any(test,fuzzing))] + return f.write_fmt(format_args!("ZipCryptoKeys({:#10x},{:#10x},{:#10x})", + self.key_0, self.key_1, self.key_2)); } }