fuzztarget sha -> XOR, crates secp256k1
authorMatt Corallo <git@bluematt.me>
Thu, 26 Apr 2018 23:44:24 +0000 (19:44 -0400)
committerMatt Corallo <git@bluematt.me>
Tue, 5 Jun 2018 00:02:07 +0000 (20:02 -0400)
Cargo.toml
fuzz/Cargo.toml
src/util/sha2.rs

index 3b692790e6d1de4a185fee42015c9f347a8bcff3..e8570e25f140f313bd2bbd37da5dd9f8489cf828 100644 (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"
index 521e93d3b1bd12d1c18e0dd56b1e12ae098403e8..bcaa2932a704510060e2512f2aac690c932efc48 100644 (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 }
index 31616f507d66c9fd50d7484e2a5581597129f79a..2c9eab9321c92f7b2c04d1c083bded3b62c78089 100644 (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")]