diff options
Diffstat (limited to 'fuzz/fuzz_targets/fuzz_target_1.rs')
-rw-r--r-- | fuzz/fuzz_targets/fuzz_target_1.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/fuzz/fuzz_targets/fuzz_target_1.rs b/fuzz/fuzz_targets/fuzz_target_1.rs new file mode 100644 index 0000000..19ba0f9 --- /dev/null +++ b/fuzz/fuzz_targets/fuzz_target_1.rs @@ -0,0 +1,24 @@ +#![no_main] + +use libfuzzer_sys::fuzz_target; + +use arbitrary::Arbitrary; +use zears::Aez; + +#[derive(Debug, Arbitrary)] +struct Parameters<'a> { + key: &'a [u8], + nonce: &'a [u8], + ad: &'a [u8], + tau: u32, + message: &'a [u8], +} + +fuzz_target!(|params: Parameters| { + if params.tau <= 1 * 1024 * 1024 { + let aez = Aez::new(params.key); + let cipher = aez.encrypt(params.nonce, &[params.ad], params.tau, params.message); + let message = aez.decrypt(params.nonce, &[params.ad], params.tau, &cipher); + assert_eq!(message.unwrap(), params.message); + } +}); |