From efacfd58a85f227f15178ede1658cef5072314ae Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Tue, 28 Apr 2026 17:59:45 +0200 Subject: add fuzz target --- fuzz/fuzz_targets/fuzz_target_1.rs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 fuzz/fuzz_targets/fuzz_target_1.rs (limited to 'fuzz/fuzz_targets') diff --git a/fuzz/fuzz_targets/fuzz_target_1.rs b/fuzz/fuzz_targets/fuzz_target_1.rs new file mode 100644 index 0000000..11b9b90 --- /dev/null +++ b/fuzz/fuzz_targets/fuzz_target_1.rs @@ -0,0 +1,31 @@ +#![no_main] + +use arbitrary::Arbitrary; +use libfuzzer_sys::fuzz_target; + +use leona::{KeyedHash, Lioness, ZeroIv}; +use chacha20::ChaCha20; +use sha2::Sha256; +use typenum::U16; + +type Cipher = Lioness, KeyedHash>; + +#[derive(Arbitrary, Debug)] +struct Input<'a> { + key: &'a [u8], + prefix: [u8; 32], + data: &'a [u8], +} + +fuzz_target!(|data: Input| { + let mut input = Vec::from(data.prefix); + input.extend(data.data); + + let cipher = Cipher::new_dynamic(data.key); + + cipher.encrypt(&mut input).unwrap(); + cipher.decrypt(&mut input).unwrap(); + + assert_eq!(&input[..32], data.prefix); + assert_eq!(&input[32..], data.data); +}); -- cgit v1.2.3