merge bitcoin#21185: Remove expensive and redundant muhash from crypto fuzz target

This commit is contained in:
Kittywhiskers Van Gogh 2021-02-15 13:07:57 +01:00 committed by PastaPastaPasta
parent 32a3ed3b60
commit bf15aad73f
2 changed files with 10 additions and 13 deletions

View File

@ -4,7 +4,6 @@
#include <crypto/hmac_sha256.h> #include <crypto/hmac_sha256.h>
#include <crypto/hmac_sha512.h> #include <crypto/hmac_sha512.h>
#include <crypto/muhash.h>
#include <crypto/ripemd160.h> #include <crypto/ripemd160.h>
#include <crypto/sha1.h> #include <crypto/sha1.h>
#include <crypto/sha256.h> #include <crypto/sha256.h>
@ -40,7 +39,6 @@ FUZZ_TARGET(crypto)
CSHA512 sha512; CSHA512 sha512;
SHA3_256 sha3; SHA3_256 sha3;
CSipHasher sip_hasher{fuzzed_data_provider.ConsumeIntegral<uint64_t>(), fuzzed_data_provider.ConsumeIntegral<uint64_t>()}; CSipHasher sip_hasher{fuzzed_data_provider.ConsumeIntegral<uint64_t>(), fuzzed_data_provider.ConsumeIntegral<uint64_t>()};
MuHash3072 muhash;
while (--limit_max_ops >= 0 && fuzzed_data_provider.ConsumeBool()) { while (--limit_max_ops >= 0 && fuzzed_data_provider.ConsumeBool()) {
CallOneOf( CallOneOf(
@ -67,12 +65,6 @@ FUZZ_TARGET(crypto)
(void)Hash160(data); (void)Hash160(data);
(void)Hash160(data.begin(), data.end()); (void)Hash160(data.begin(), data.end());
(void)sha512.Size(); (void)sha512.Size();
if (fuzzed_data_provider.ConsumeBool()) {
muhash *= MuHash3072(data);
} else {
muhash /= MuHash3072(data);
}
}, },
[&] { [&] {
(void)hash160.Reset(); (void)hash160.Reset();
@ -82,7 +74,6 @@ FUZZ_TARGET(crypto)
(void)sha256.Reset(); (void)sha256.Reset();
(void)sha3.Reset(); (void)sha3.Reset();
(void)sha512.Reset(); (void)sha512.Reset();
muhash = MuHash3072();
}, },
[&] { [&] {
CallOneOf( CallOneOf(
@ -126,10 +117,6 @@ FUZZ_TARGET(crypto)
[&] { [&] {
data.resize(SHA3_256::OUTPUT_SIZE); data.resize(SHA3_256::OUTPUT_SIZE);
sha3.Finalize(data); sha3.Finalize(data);
},
[&] {
uint256 out;
muhash.Finalize(out);
}); });
}); });
} }

View File

@ -41,6 +41,11 @@ FUZZ_TARGET(muhash)
muhash.Finalize(out2); muhash.Finalize(out2);
assert(out == out2); assert(out == out2);
MuHash3072 muhash3;
muhash3 *= muhash;
uint256 out3;
muhash3.Finalize(out3);
assert(out == out3);
// Test that removing all added elements brings the object back to it's initial state // Test that removing all added elements brings the object back to it's initial state
muhash /= muhash; muhash /= muhash;
@ -50,4 +55,9 @@ FUZZ_TARGET(muhash)
muhash2.Finalize(out2); muhash2.Finalize(out2);
assert(out == out2); assert(out == out2);
muhash3.Remove(data);
muhash3.Remove(data2);
muhash3.Finalize(out3);
assert(out == out3);
} }