#![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); } });