This is an automated email from the ASF dual-hosted git repository.

kmccusker pushed a commit to branch develop
in repository 
https://gitbox.apache.org/repos/asf/incubator-milagro-crypto-rust.git


The following commit(s) were added to refs/heads/develop by this push:
     new 06d8d79  Add fuzz targets for bls381 serialization
     new 23d1fac  Merge pull request #36 from sigp/fuzz-serialization
06d8d79 is described below

commit 06d8d790692a9ed1f7eb1bc35cb0099ccbc0c24a
Author: Kirk Baird <[email protected]>
AuthorDate: Thu May 14 20:38:43 2020 +1000

    Add fuzz targets for bls381 serialization
    
    Signed-off-by: Kirk Baird <[email protected]>
---
 fuzz/.gitignore                                   |  4 +++
 fuzz/Cargo.toml                                   | 33 +++++++++++++++++++++++
 fuzz/fuzz_targets/bls381_deserialize_g1.rs        | 14 ++++++++++
 fuzz/fuzz_targets/bls381_deserialize_g2.rs        | 13 +++++++++
 fuzz/fuzz_targets/bls381_secret_key_from_bytes.rs | 11 ++++++++
 5 files changed, 75 insertions(+)

diff --git a/fuzz/.gitignore b/fuzz/.gitignore
new file mode 100644
index 0000000..572e03b
--- /dev/null
+++ b/fuzz/.gitignore
@@ -0,0 +1,4 @@
+
+target
+corpus
+artifacts
diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml
new file mode 100644
index 0000000..0cf46fd
--- /dev/null
+++ b/fuzz/Cargo.toml
@@ -0,0 +1,33 @@
+
+[package]
+name = "amcl-fuzz"
+version = "0.0.0"
+authors = ["Automatically generated"]
+publish = false
+edition = "2018"
+
+[package.metadata]
+cargo-fuzz = true
+
+[dependencies]
+libfuzzer-sys = "0.2"
+
+[dependencies.amcl]
+path = ".."
+features = ["all"]
+
+# Prevent this from interfering with workspaces
+[workspace]
+members = ["."]
+
+[[bin]]
+name = "bls381_deserialize_g1"
+path = "fuzz_targets/bls381_deserialize_g1.rs"
+
+[[bin]]
+name = "bls381_deserialize_g2"
+path = "fuzz_targets/bls381_deserialize_g2.rs"
+
+[[bin]]
+name = "bls381_secret_key_from_bytes"
+path = "fuzz_targets/bls381_secret_key_from_bytes.rs"
diff --git a/fuzz/fuzz_targets/bls381_deserialize_g1.rs 
b/fuzz/fuzz_targets/bls381_deserialize_g1.rs
new file mode 100644
index 0000000..2ae196c
--- /dev/null
+++ b/fuzz/fuzz_targets/bls381_deserialize_g1.rs
@@ -0,0 +1,14 @@
+#![no_main]
+use libfuzzer_sys::fuzz_target;
+use amcl::bls381::bls381::utils::{deserialize_g1, serialize_uncompressed_g1, 
serialize_g1};
+
+
+fuzz_target!(|data: &[u8]| {
+    if let Ok(point) = deserialize_g1(data) {
+        let compressed = serialize_g1(&point).to_vec();
+        let uncompressed = serialize_uncompressed_g1(&point).to_vec();
+
+        let data = data.to_vec();
+        assert!(compressed == data || uncompressed == data );
+    }
+});
diff --git a/fuzz/fuzz_targets/bls381_deserialize_g2.rs 
b/fuzz/fuzz_targets/bls381_deserialize_g2.rs
new file mode 100644
index 0000000..164c95e
--- /dev/null
+++ b/fuzz/fuzz_targets/bls381_deserialize_g2.rs
@@ -0,0 +1,13 @@
+#![no_main]
+use libfuzzer_sys::fuzz_target;
+use amcl::bls381::bls381::utils::{deserialize_g2, serialize_uncompressed_g2, 
serialize_g2};
+
+fuzz_target!(|data: &[u8]| {
+    if let Ok(point) = deserialize_g2(data) {
+        let compressed = serialize_g2(&point).to_vec();
+        let uncompressed = serialize_uncompressed_g2(&point).to_vec();
+
+        let data = data.to_vec();
+        assert!(compressed == data || uncompressed == data );
+    }
+});
diff --git a/fuzz/fuzz_targets/bls381_secret_key_from_bytes.rs 
b/fuzz/fuzz_targets/bls381_secret_key_from_bytes.rs
new file mode 100644
index 0000000..b802309
--- /dev/null
+++ b/fuzz/fuzz_targets/bls381_secret_key_from_bytes.rs
@@ -0,0 +1,11 @@
+#![no_main]
+use libfuzzer_sys::fuzz_target;
+use amcl::bls381::bls381::utils::{secret_key_to_bytes, secret_key_from_bytes};
+
+
+fuzz_target!(|data: &[u8]| {
+    if let Ok(big) = secret_key_from_bytes(data) {
+        let round_trip = secret_key_to_bytes(&big);
+        assert_eq!(data, round_trip);
+    }
+});

Reply via email to