diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index 8e32854e..7bd429a7 100644 --- a/fuzz/Cargo.toml +++ b/fuzz/Cargo.toml @@ -1,5 +1,6 @@ [package] name = "bitcoin-fuzz" +edition = "2018" version = "0.0.1" authors = ["Automatically generated"] publish = false @@ -14,7 +15,12 @@ honggfuzz_fuzz = ["honggfuzz"] [dependencies] honggfuzz = { version = "0.5", optional = true, default-features = false } afl = { version = "0.4", optional = true } -bitcoin = { version = "0.30.0" } +bitcoin = { version = "0.30.0", features = [ "serde" ] } + +rust-crypto = "0.2" +serde = { version = "1.0.103", features = [ "derive" ] } +serde_json = "1.0" +serde_cbor = "0.9" [[bin]] name = "deserialize_block" @@ -60,5 +66,31 @@ path = "fuzz_targets/bitcoin/script_bytes_to_asm_fmt.rs" name = "deserialize_witness" path = "fuzz_targets/bitcoin/deserialize_witness.rs" -[patch.crates-io.bitcoin_hashes] -path = "../../hashes" + +[[bin]] +name = "sha1" +path = "fuzz_targets/hashes/sha1.rs" + +[[bin]] +name = "ripemd160" +path = "fuzz_targets/hashes/ripemd160.rs" + +[[bin]] +name = "sha256" +path = "fuzz_targets/hashes/sha256.rs" + +[[bin]] +name = "sha512" +path = "fuzz_targets/hashes/sha512.rs" + +[[bin]] +name = "sha512_256" +path = "fuzz_targets/hashes/sha512_256.rs" + +[[bin]] +name = "cbor" +path = "fuzz_targets/hashes/cbor.rs" + +[[bin]] +name = "json" +path = "fuzz_targets/hashes/json.rs" diff --git a/hashes/fuzz/fuzz_targets/cbor.rs b/fuzz/fuzz_targets/hashes/cbor.rs similarity index 86% rename from hashes/fuzz/fuzz_targets/cbor.rs rename to fuzz/fuzz_targets/hashes/cbor.rs index 4d0223ba..7bb899ec 100644 --- a/hashes/fuzz/fuzz_targets/cbor.rs +++ b/fuzz/fuzz_targets/hashes/cbor.rs @@ -1,11 +1,7 @@ -extern crate serde; -#[macro_use] extern crate serde_derive; -extern crate bitcoin_hashes; -extern crate serde_cbor; - -use bitcoin_hashes::Hmac; -use bitcoin_hashes::{sha1, sha512, ripemd160, sha256d}; +use bitcoin::hashes::Hmac; +use bitcoin::hashes::{sha1, sha512, ripemd160, sha256d}; +use serde::{Deserialize, Serialize}; #[derive(Deserialize, Serialize)] struct Hmacs { diff --git a/hashes/fuzz/fuzz_targets/json.rs b/fuzz/fuzz_targets/hashes/json.rs similarity index 86% rename from hashes/fuzz/fuzz_targets/json.rs rename to fuzz/fuzz_targets/hashes/json.rs index 2553c710..e23b6459 100644 --- a/hashes/fuzz/fuzz_targets/json.rs +++ b/fuzz/fuzz_targets/hashes/json.rs @@ -1,11 +1,7 @@ -extern crate serde; -#[macro_use] extern crate serde_derive; -extern crate bitcoin_hashes; -extern crate serde_json; - -use bitcoin_hashes::Hmac; -use bitcoin_hashes::{sha1, sha512, ripemd160, sha256d}; +use bitcoin::hashes::Hmac; +use bitcoin::hashes::{sha1, sha512, ripemd160, sha256d}; +use serde::{Deserialize, Serialize}; #[derive(Deserialize, Serialize)] struct Hmacs { diff --git a/hashes/fuzz/fuzz_targets/ripemd160.rs b/fuzz/fuzz_targets/hashes/ripemd160.rs similarity index 91% rename from hashes/fuzz/fuzz_targets/ripemd160.rs rename to fuzz/fuzz_targets/hashes/ripemd160.rs index 09becd2a..c46bb87b 100644 --- a/hashes/fuzz/fuzz_targets/ripemd160.rs +++ b/fuzz/fuzz_targets/hashes/ripemd160.rs @@ -1,9 +1,6 @@ -extern crate bitcoin_hashes; -extern crate crypto; - -use bitcoin_hashes::Hash; -use bitcoin_hashes::ripemd160; +use bitcoin::hashes::Hash; +use bitcoin::hashes::ripemd160; use crypto::digest::Digest; use crypto::ripemd160::Ripemd160; diff --git a/hashes/fuzz/fuzz_targets/sha1.rs b/fuzz/fuzz_targets/hashes/sha1.rs similarity index 91% rename from hashes/fuzz/fuzz_targets/sha1.rs rename to fuzz/fuzz_targets/hashes/sha1.rs index ce2b08c2..16c52159 100644 --- a/hashes/fuzz/fuzz_targets/sha1.rs +++ b/fuzz/fuzz_targets/hashes/sha1.rs @@ -1,9 +1,6 @@ -extern crate bitcoin_hashes; -extern crate crypto; - -use bitcoin_hashes::Hash; -use bitcoin_hashes::sha1; +use bitcoin::hashes::Hash; +use bitcoin::hashes::sha1; use crypto::digest::Digest; use crypto::sha1::Sha1; diff --git a/hashes/fuzz/fuzz_targets/sha256.rs b/fuzz/fuzz_targets/hashes/sha256.rs similarity index 91% rename from hashes/fuzz/fuzz_targets/sha256.rs rename to fuzz/fuzz_targets/hashes/sha256.rs index 89b6de8e..7e27025e 100644 --- a/hashes/fuzz/fuzz_targets/sha256.rs +++ b/fuzz/fuzz_targets/hashes/sha256.rs @@ -1,9 +1,6 @@ -extern crate bitcoin_hashes; -extern crate crypto; - -use bitcoin_hashes::Hash; -use bitcoin_hashes::sha256; +use bitcoin::hashes::Hash; +use bitcoin::hashes::sha256; use crypto::digest::Digest; use crypto::sha2::Sha256; diff --git a/hashes/fuzz/fuzz_targets/sha512.rs b/fuzz/fuzz_targets/hashes/sha512.rs similarity index 91% rename from hashes/fuzz/fuzz_targets/sha512.rs rename to fuzz/fuzz_targets/hashes/sha512.rs index f8909c1f..bf3c1f13 100644 --- a/hashes/fuzz/fuzz_targets/sha512.rs +++ b/fuzz/fuzz_targets/hashes/sha512.rs @@ -1,9 +1,6 @@ -extern crate bitcoin_hashes; -extern crate crypto; - -use bitcoin_hashes::Hash; -use bitcoin_hashes::sha512; +use bitcoin::hashes::Hash; +use bitcoin::hashes::sha512; use crypto::digest::Digest; use crypto::sha2::Sha512; diff --git a/hashes/fuzz/fuzz_targets/sha512_256.rs b/fuzz/fuzz_targets/hashes/sha512_256.rs similarity index 91% rename from hashes/fuzz/fuzz_targets/sha512_256.rs rename to fuzz/fuzz_targets/hashes/sha512_256.rs index 281b1caf..aa188161 100644 --- a/hashes/fuzz/fuzz_targets/sha512_256.rs +++ b/fuzz/fuzz_targets/hashes/sha512_256.rs @@ -1,9 +1,6 @@ -extern crate bitcoin_hashes; -extern crate crypto; - -use bitcoin_hashes::Hash; -use bitcoin_hashes::sha512_256; +use bitcoin::hashes::Hash; +use bitcoin::hashes::sha512_256; use crypto::digest::Digest; use crypto::sha2::Sha512Trunc256; diff --git a/hashes/fuzz/Cargo.toml b/hashes/fuzz/Cargo.toml deleted file mode 100644 index 2182b776..00000000 --- a/hashes/fuzz/Cargo.toml +++ /dev/null @@ -1,53 +0,0 @@ -[package] -name = "bitcoin_hashes-fuzz" -version = "0.0.1" -authors = ["copied from rust-bitcoin"] -publish = false - -[package.metadata] -cargo-fuzz = true - -[features] -honggfuzz_fuzz = ["honggfuzz"] - -[dependencies] -honggfuzz = { version = "0.5", optional = true } -bitcoin_hashes = { path = "..", features = ["serde"] } -rust-crypto = "0.2" - -serde = "1.0" -serde_derive = "1.0" -serde_json = "1.0" -serde_cbor = "0.9" - -# Prevent this from interfering with workspaces -[workspace] -members = ["."] - -[[bin]] -name = "sha1" -path = "fuzz_targets/sha1.rs" - -[[bin]] -name = "ripemd160" -path = "fuzz_targets/ripemd160.rs" - -[[bin]] -name = "sha256" -path = "fuzz_targets/sha256.rs" - -[[bin]] -name = "sha512" -path = "fuzz_targets/sha512.rs" - -[[bin]] -name = "sha512_256" -path = "fuzz_targets/sha512_256.rs" - -[[bin]] -name = "cbor" -path = "fuzz_targets/cbor.rs" - -[[bin]] -name = "json" -path = "fuzz_targets/json.rs" diff --git a/hashes/fuzz/travis-fuzz.sh b/hashes/fuzz/travis-fuzz.sh deleted file mode 100755 index aebd1aa4..00000000 --- a/hashes/fuzz/travis-fuzz.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -set -e -cargo install --force honggfuzz -for TARGET in fuzz_targets/*; do - FILENAME=$(basename $TARGET) - FILE="${FILENAME%.*}" - if [ -d hfuzz_input/$FILE ]; then - HFUZZ_INPUT_ARGS="-f hfuzz_input/$FILE/input" - fi - - rm -f hfuzz_workspace/$FILE/HONGGFUZZ.REPORT.TXT - - HFUZZ_BUILD_ARGS="--features honggfuzz_fuzz" HFUZZ_RUN_ARGS="-N1000000 --exit_upon_crash -v $HFUZZ_INPUT_ARGS" cargo hfuzz run $FILE - - if [ -f hfuzz_workspace/$FILE/HONGGFUZZ.REPORT.TXT ]; then - cat hfuzz_workspace/$FILE/HONGGFUZZ.REPORT.TXT - for CASE in hfuzz_workspace/$FILE/SIG*; do - cat $CASE | xxd -p - done - exit 1 - fi -done