fuzztarget sha -> XOR, crates secp256k1

This commit is contained in:
Matt Corallo 2018-04-26 19:44:24 -04:00
parent 1d1ebbb290
commit f462d8ac70
3 changed files with 9 additions and 11 deletions

View file

@ -19,7 +19,7 @@ fuzztarget = ["secp256k1/fuzztarget", "bitcoin/fuzztarget"]
bitcoin = "0.13"
rust-crypto = "0.2"
rand = "0.4"
secp256k1 = { git = "https://github.com/rust-bitcoin/rust-secp256k1", branch = "master" }
secp256k1 = "0.9"
[build-dependencies]
gcc = "0.3"

View file

@ -18,7 +18,7 @@ honggfuzz_fuzz = ["honggfuzz"]
[dependencies]
lightning = { path = "..", features = ["fuzztarget"] }
bitcoin = { version = "0.13", features = ["fuzztarget"] }
secp256k1 = { git = "https://github.com/rust-bitcoin/rust-secp256k1", branch = "master" , features=["fuzztarget"]}
secp256k1 = { version = "0.9", features=["fuzztarget"] }
rust-crypto = "0.2"
honggfuzz = { version = "0.5", optional = true }
afl = { version = "0.3", optional = true }

View file

@ -4,33 +4,31 @@ pub use crypto::sha2::Sha256;
#[cfg(feature = "fuzztarget")]
mod fuzzy_sha {
use crypto::digest::Digest;
use crypto::sha2;
#[derive(Clone, Copy)]
pub struct Sha256 {
state: sha2::Sha256,
state: u8,
}
impl Sha256 {
pub fn new() -> Sha256 {
Sha256 {
state: sha2::Sha256::new(),
state: 0,
}
}
}
impl Digest for Sha256 {
fn result(&mut self, data: &mut [u8]) {
self.state.result(data);
data[0] = self.state;
for i in 1..32 {
data[i] = 0;
}
}
fn input(&mut self, data: &[u8]) { self.state.input(data); }
fn reset(&mut self) { self.state.reset(); }
fn output_bits(&self) -> usize { self.state.output_bits() }
fn block_size(&self) -> usize { self.state.block_size() }
fn input(&mut self, data: &[u8]) { for i in data { self.state ^= i; } }
fn reset(&mut self) { self.state = 0; }
fn output_bits(&self) -> usize { 256 }
fn block_size(&self) -> usize { 64 }
}
}
#[cfg(feature = "fuzztarget")]