aboutsummaryrefslogtreecommitdiff
path: root/fuzz/fuzz_targets
diff options
context:
space:
mode:
Diffstat (limited to 'fuzz/fuzz_targets')
-rw-r--r--fuzz/fuzz_targets/fuzz_target_1.rs24
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);
+ }
+});