fuzz: remove AFL support
AFAICT we literally never used this; it was available only on the bitcoin targets and not the honggfuzz ones; AFL has a broken dep tree (or at least, requires some more MSRV pins that I did not care to investigate). Just remove it entirely.
This commit is contained in:
parent
ab467cb091
commit
fd88e48696
|
@ -8,14 +8,8 @@ publish = false
|
||||||
[package.metadata]
|
[package.metadata]
|
||||||
cargo-fuzz = true
|
cargo-fuzz = true
|
||||||
|
|
||||||
[features]
|
|
||||||
default = ["honggfuzz_fuzz"]
|
|
||||||
afl_fuzz = ["afl"]
|
|
||||||
honggfuzz_fuzz = ["honggfuzz"]
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
honggfuzz = { version = "0.5", optional = true, default-features = false }
|
honggfuzz = { version = "0.5", default-features = false }
|
||||||
afl = { version = "0.4", optional = true }
|
|
||||||
bitcoin = { version = "0.30.0", features = [ "serde" ] }
|
bitcoin = { version = "0.30.0", features = [ "serde" ] }
|
||||||
|
|
||||||
rust-crypto = "0.2"
|
rust-crypto = "0.2"
|
||||||
|
|
|
@ -10,7 +10,6 @@ REPO_DIR=$(git rev-parse --show-toplevel)
|
||||||
# shellcheck source=./fuzz-util.sh
|
# shellcheck source=./fuzz-util.sh
|
||||||
source "$REPO_DIR/fuzz/fuzz-util.sh"
|
source "$REPO_DIR/fuzz/fuzz-util.sh"
|
||||||
|
|
||||||
export HFUZZ_BUILD_ARGS='--features honggfuzz_fuzz'
|
|
||||||
while :
|
while :
|
||||||
do
|
do
|
||||||
for targetFile in $(listTargetFiles); do
|
for targetFile in $(listTargetFiles); do
|
||||||
|
|
|
@ -28,7 +28,7 @@ for targetFile in $targetFiles; do
|
||||||
else
|
else
|
||||||
HFUZZ_INPUT_ARGS=""
|
HFUZZ_INPUT_ARGS=""
|
||||||
fi
|
fi
|
||||||
HFUZZ_BUILD_ARGS="--features honggfuzz_fuzz" HFUZZ_RUN_ARGS="--run_time 30 --exit_upon_crash -v $HFUZZ_INPUT_ARGS" cargo hfuzz run "$targetName"
|
HFUZZ_RUN_ARGS="--run_time 30 --exit_upon_crash -v $HFUZZ_INPUT_ARGS" cargo hfuzz run "$targetName"
|
||||||
|
|
||||||
checkReport "$targetName"
|
checkReport "$targetName"
|
||||||
done
|
done
|
||||||
|
|
|
@ -1,21 +1,10 @@
|
||||||
extern crate bitcoin;
|
|
||||||
|
use honggfuzz::fuzz;
|
||||||
|
|
||||||
fn do_test(data: &[u8]) {
|
fn do_test(data: &[u8]) {
|
||||||
let _: Result<bitcoin::network::message::RawNetworkMessage, _> = bitcoin::consensus::encode::deserialize(data);
|
let _: Result<bitcoin::network::message::RawNetworkMessage, _> = bitcoin::consensus::encode::deserialize(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
#[macro_use] extern crate afl;
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
fn main() {
|
|
||||||
fuzz!(|data| {
|
|
||||||
do_test(&data);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use] extern crate honggfuzz;
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|data| {
|
fuzz!(|data| {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
extern crate bitcoin;
|
|
||||||
|
use honggfuzz::fuzz;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
fn do_test(data: &[u8]) {
|
fn do_test(data: &[u8]) {
|
||||||
let data_str = String::from_utf8_lossy(data);
|
let data_str = String::from_utf8_lossy(data);
|
||||||
let addr = match bitcoin::address::Address::from_str(&data_str) {
|
let addr = match bitcoin::address::Address::from_str(&data_str) {
|
||||||
|
@ -9,18 +11,6 @@ fn do_test(data: &[u8]) {
|
||||||
assert_eq!(addr.to_string(), data_str);
|
assert_eq!(addr.to_string(), data_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
#[macro_use] extern crate afl;
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
fn main() {
|
|
||||||
fuzz!(|data| {
|
|
||||||
do_test(&data);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use] extern crate honggfuzz;
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|data| {
|
fuzz!(|data| {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
extern crate bitcoin;
|
|
||||||
|
use honggfuzz::fuzz;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
fn do_test(data: &[u8]) {
|
fn do_test(data: &[u8]) {
|
||||||
let data_str = String::from_utf8_lossy(data);
|
let data_str = String::from_utf8_lossy(data);
|
||||||
|
|
||||||
|
@ -26,18 +28,6 @@ fn do_test(data: &[u8]) {
|
||||||
assert_eq!(amt, amt_roundtrip);
|
assert_eq!(amt, amt_roundtrip);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
#[macro_use] extern crate afl;
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
fn main() {
|
|
||||||
fuzz!(|data| {
|
|
||||||
do_test(&data);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use] extern crate honggfuzz;
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|data| {
|
fuzz!(|data| {
|
||||||
|
|
|
@ -1,21 +1,10 @@
|
||||||
extern crate bitcoin;
|
|
||||||
|
use honggfuzz::fuzz;
|
||||||
|
|
||||||
fn do_test(data: &[u8]) {
|
fn do_test(data: &[u8]) {
|
||||||
let _: Result<bitcoin::blockdata::block::Block, _>= bitcoin::consensus::encode::deserialize(data);
|
let _: Result<bitcoin::blockdata::block::Block, _>= bitcoin::consensus::encode::deserialize(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
#[macro_use] extern crate afl;
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
fn main() {
|
|
||||||
fuzz!(|data| {
|
|
||||||
do_test(&data);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use] extern crate honggfuzz;
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|data| {
|
fuzz!(|data| {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
extern crate bitcoin;
|
|
||||||
|
use honggfuzz::fuzz;
|
||||||
|
|
||||||
fn do_test(data: &[u8]) {
|
fn do_test(data: &[u8]) {
|
||||||
// We already fuzz Transactions in `./deserialize_transaction.rs`.
|
// We already fuzz Transactions in `./deserialize_transaction.rs`.
|
||||||
|
@ -13,18 +14,6 @@ fn do_test(data: &[u8]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
#[macro_use] extern crate afl;
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
fn main() {
|
|
||||||
fuzz!(|data| {
|
|
||||||
do_test(&data);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use] extern crate honggfuzz;
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|data| {
|
fuzz!(|data| {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
extern crate bitcoin;
|
|
||||||
|
use honggfuzz::fuzz;
|
||||||
|
|
||||||
fn do_test(data: &[u8]) {
|
fn do_test(data: &[u8]) {
|
||||||
let psbt: Result<bitcoin::psbt::PartiallySignedTransaction, _> = bitcoin::psbt::Psbt::deserialize(data);
|
let psbt: Result<bitcoin::psbt::PartiallySignedTransaction, _> = bitcoin::psbt::Psbt::deserialize(data);
|
||||||
|
@ -13,18 +14,6 @@ fn do_test(data: &[u8]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
#[macro_use] extern crate afl;
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
fn main() {
|
|
||||||
fuzz!(|data| {
|
|
||||||
do_test(&data);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use] extern crate honggfuzz;
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|data| {
|
fuzz!(|data| {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
extern crate bitcoin;
|
|
||||||
|
use honggfuzz::fuzz;
|
||||||
|
|
||||||
use bitcoin::address::Address;
|
use bitcoin::address::Address;
|
||||||
use bitcoin::network::constants::Network;
|
use bitcoin::network::constants::Network;
|
||||||
|
@ -43,18 +44,6 @@ fn do_test(data: &[u8]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
#[macro_use] extern crate afl;
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
fn main() {
|
|
||||||
fuzz!(|data| {
|
|
||||||
do_test(&data);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use] extern crate honggfuzz;
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|data| {
|
fuzz!(|data| {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
extern crate bitcoin;
|
|
||||||
|
use honggfuzz::fuzz;
|
||||||
|
|
||||||
fn do_test(data: &[u8]) {
|
fn do_test(data: &[u8]) {
|
||||||
let tx_result: Result<bitcoin::blockdata::transaction::Transaction, _> = bitcoin::consensus::encode::deserialize(data);
|
let tx_result: Result<bitcoin::blockdata::transaction::Transaction, _> = bitcoin::consensus::encode::deserialize(data);
|
||||||
|
@ -25,18 +26,6 @@ fn do_test(data: &[u8]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
#[macro_use] extern crate afl;
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
fn main() {
|
|
||||||
fuzz!(|data| {
|
|
||||||
do_test(&data);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use] extern crate honggfuzz;
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|data| {
|
fuzz!(|data| {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
extern crate bitcoin;
|
|
||||||
|
use honggfuzz::fuzz;
|
||||||
|
|
||||||
use bitcoin::consensus::{serialize, deserialize};
|
use bitcoin::consensus::{serialize, deserialize};
|
||||||
use bitcoin::blockdata::witness::Witness;
|
use bitcoin::blockdata::witness::Witness;
|
||||||
|
@ -11,18 +12,6 @@ fn do_test(data: &[u8]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
#[macro_use] extern crate afl;
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
fn main() {
|
|
||||||
fuzz!(|data| {
|
|
||||||
do_test(&data);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use] extern crate honggfuzz;
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|data| {
|
fuzz!(|data| {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
extern crate bitcoin;
|
use honggfuzz::fuzz;
|
||||||
|
|
||||||
use bitcoin::blockdata::transaction::OutPoint;
|
use bitcoin::blockdata::transaction::OutPoint;
|
||||||
use bitcoin::consensus::encode;
|
use bitcoin::consensus::encode;
|
||||||
|
@ -40,18 +40,6 @@ fn do_test(data: &[u8]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
#[macro_use] extern crate afl;
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
fn main() {
|
|
||||||
fuzz!(|data| {
|
|
||||||
do_test(&data);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use] extern crate honggfuzz;
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|data| {
|
fuzz!(|data| {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
extern crate bitcoin;
|
|
||||||
|
|
||||||
|
use honggfuzz::fuzz;
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
|
|
||||||
// faster than String, we don't need to actually produce the value, just check absence of panics
|
// faster than String, we don't need to actually produce the value, just check absence of panics
|
||||||
|
@ -20,18 +20,6 @@ fn do_test(data: &[u8]) {
|
||||||
bitcoin::Script::from_bytes(data).fmt_asm(&mut writer);
|
bitcoin::Script::from_bytes(data).fmt_asm(&mut writer);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
#[macro_use] extern crate afl;
|
|
||||||
#[cfg(feature = "afl")]
|
|
||||||
fn main() {
|
|
||||||
fuzz!(|data| {
|
|
||||||
do_test(&data);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use] extern crate honggfuzz;
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|data| {
|
fuzz!(|data| {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
|
|
||||||
use bitcoin::hashes::Hmac;
|
use bitcoin::hashes::Hmac;
|
||||||
use bitcoin::hashes::{sha1, sha512, ripemd160, sha256d};
|
use bitcoin::hashes::{sha1, sha512, ripemd160, sha256d};
|
||||||
|
use honggfuzz::fuzz;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize)]
|
#[derive(Deserialize, Serialize)]
|
||||||
|
@ -23,11 +24,6 @@ fn do_test(data: &[u8]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use]
|
|
||||||
extern crate honggfuzz;
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|d| { do_test(d) });
|
fuzz!(|d| { do_test(d) });
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
|
|
||||||
use bitcoin::hashes::Hmac;
|
use bitcoin::hashes::Hmac;
|
||||||
use bitcoin::hashes::{sha1, sha512, ripemd160, sha256d};
|
use bitcoin::hashes::{sha1, sha512, ripemd160, sha256d};
|
||||||
|
use honggfuzz::fuzz;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize)]
|
#[derive(Deserialize, Serialize)]
|
||||||
|
@ -23,11 +24,6 @@ fn do_test(data: &[u8]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use]
|
|
||||||
extern crate honggfuzz;
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|d| { do_test(d) });
|
fuzz!(|d| { do_test(d) });
|
||||||
|
|
|
@ -3,6 +3,7 @@ use bitcoin::hashes::Hash;
|
||||||
use bitcoin::hashes::ripemd160;
|
use bitcoin::hashes::ripemd160;
|
||||||
use crypto::digest::Digest;
|
use crypto::digest::Digest;
|
||||||
use crypto::ripemd160::Ripemd160;
|
use crypto::ripemd160::Ripemd160;
|
||||||
|
use honggfuzz::fuzz;
|
||||||
|
|
||||||
fn do_test(data: &[u8]) {
|
fn do_test(data: &[u8]) {
|
||||||
let our_hash = ripemd160::Hash::hash(data);
|
let our_hash = ripemd160::Hash::hash(data);
|
||||||
|
@ -15,11 +16,6 @@ fn do_test(data: &[u8]) {
|
||||||
assert_eq!(&our_hash[..], &rc_hash[..]);
|
assert_eq!(&our_hash[..], &rc_hash[..]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use]
|
|
||||||
extern crate honggfuzz;
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|d| { do_test(d) });
|
fuzz!(|d| { do_test(d) });
|
||||||
|
|
|
@ -3,6 +3,7 @@ use bitcoin::hashes::Hash;
|
||||||
use bitcoin::hashes::sha1;
|
use bitcoin::hashes::sha1;
|
||||||
use crypto::digest::Digest;
|
use crypto::digest::Digest;
|
||||||
use crypto::sha1::Sha1;
|
use crypto::sha1::Sha1;
|
||||||
|
use honggfuzz::fuzz;
|
||||||
|
|
||||||
fn do_test(data: &[u8]) {
|
fn do_test(data: &[u8]) {
|
||||||
let our_hash = sha1::Hash::hash(data);
|
let our_hash = sha1::Hash::hash(data);
|
||||||
|
@ -15,11 +16,6 @@ fn do_test(data: &[u8]) {
|
||||||
assert_eq!(&our_hash[..], &rc_hash[..]);
|
assert_eq!(&our_hash[..], &rc_hash[..]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use]
|
|
||||||
extern crate honggfuzz;
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|d| { do_test(d) });
|
fuzz!(|d| { do_test(d) });
|
||||||
|
|
|
@ -3,6 +3,7 @@ use bitcoin::hashes::Hash;
|
||||||
use bitcoin::hashes::sha256;
|
use bitcoin::hashes::sha256;
|
||||||
use crypto::digest::Digest;
|
use crypto::digest::Digest;
|
||||||
use crypto::sha2::Sha256;
|
use crypto::sha2::Sha256;
|
||||||
|
use honggfuzz::fuzz;
|
||||||
|
|
||||||
fn do_test(data: &[u8]) {
|
fn do_test(data: &[u8]) {
|
||||||
let our_hash = sha256::Hash::hash(data);
|
let our_hash = sha256::Hash::hash(data);
|
||||||
|
@ -15,11 +16,6 @@ fn do_test(data: &[u8]) {
|
||||||
assert_eq!(&our_hash[..], &rc_hash[..]);
|
assert_eq!(&our_hash[..], &rc_hash[..]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use]
|
|
||||||
extern crate honggfuzz;
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|d| { do_test(d) });
|
fuzz!(|d| { do_test(d) });
|
||||||
|
|
|
@ -3,6 +3,7 @@ use bitcoin::hashes::Hash;
|
||||||
use bitcoin::hashes::sha512;
|
use bitcoin::hashes::sha512;
|
||||||
use crypto::digest::Digest;
|
use crypto::digest::Digest;
|
||||||
use crypto::sha2::Sha512;
|
use crypto::sha2::Sha512;
|
||||||
|
use honggfuzz::fuzz;
|
||||||
|
|
||||||
fn do_test(data: &[u8]) {
|
fn do_test(data: &[u8]) {
|
||||||
let our_hash = sha512::Hash::hash(data);
|
let our_hash = sha512::Hash::hash(data);
|
||||||
|
@ -15,11 +16,6 @@ fn do_test(data: &[u8]) {
|
||||||
assert_eq!(&our_hash[..], &rc_hash[..]);
|
assert_eq!(&our_hash[..], &rc_hash[..]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use]
|
|
||||||
extern crate honggfuzz;
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|d| { do_test(d) });
|
fuzz!(|d| { do_test(d) });
|
||||||
|
|
|
@ -3,6 +3,7 @@ use bitcoin::hashes::Hash;
|
||||||
use bitcoin::hashes::sha512_256;
|
use bitcoin::hashes::sha512_256;
|
||||||
use crypto::digest::Digest;
|
use crypto::digest::Digest;
|
||||||
use crypto::sha2::Sha512Trunc256;
|
use crypto::sha2::Sha512Trunc256;
|
||||||
|
use honggfuzz::fuzz;
|
||||||
|
|
||||||
fn do_test(data: &[u8]) {
|
fn do_test(data: &[u8]) {
|
||||||
let our_hash = sha512_256::Hash::hash(data);
|
let our_hash = sha512_256::Hash::hash(data);
|
||||||
|
@ -15,11 +16,6 @@ fn do_test(data: &[u8]) {
|
||||||
assert_eq!(&our_hash[..], &rc_hash[..]);
|
assert_eq!(&our_hash[..], &rc_hash[..]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
#[macro_use]
|
|
||||||
extern crate honggfuzz;
|
|
||||||
|
|
||||||
#[cfg(feature = "honggfuzz")]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
loop {
|
loop {
|
||||||
fuzz!(|d| { do_test(d) });
|
fuzz!(|d| { do_test(d) });
|
||||||
|
|
|
@ -19,14 +19,8 @@ publish = false
|
||||||
[package.metadata]
|
[package.metadata]
|
||||||
cargo-fuzz = true
|
cargo-fuzz = true
|
||||||
|
|
||||||
[features]
|
|
||||||
default = ["honggfuzz_fuzz"]
|
|
||||||
afl_fuzz = ["afl"]
|
|
||||||
honggfuzz_fuzz = ["honggfuzz"]
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
honggfuzz = { version = "0.5", optional = true, default-features = false }
|
honggfuzz = { version = "0.5", default-features = false }
|
||||||
afl = { version = "0.4", optional = true }
|
|
||||||
bitcoin = { version = "0.30.0", features = [ "serde" ] }
|
bitcoin = { version = "0.30.0", features = [ "serde" ] }
|
||||||
|
|
||||||
rust-crypto = "0.2"
|
rust-crypto = "0.2"
|
||||||
|
|
Loading…
Reference in New Issue