aboutsummaryrefslogtreecommitdiff
path: root/fuzz/fuzz_targets/fuzz_target_1.rs
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2025-04-09 20:49:36 +0200
committerDaniel Schadt <kingdread@gmx.de>2025-04-09 20:49:36 +0200
commit364e19dc96d97c0b38eeb389054e9d990ae47f11 (patch)
tree580e895ac05bba7bfac35223f5d96c65e72fadb4 /fuzz/fuzz_targets/fuzz_target_1.rs
parenta361a2aa095774c66205639f534851c762c4353a (diff)
downloadzears-364e19dc96d97c0b38eeb389054e9d990ae47f11.tar.gz
zears-364e19dc96d97c0b38eeb389054e9d990ae47f11.tar.bz2
zears-364e19dc96d97c0b38eeb389054e9d990ae47f11.zip
add first fuzz binary
Diffstat (limited to 'fuzz/fuzz_targets/fuzz_target_1.rs')
-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);
+ }
+});