MCPcopy Create free account
hub / github.com/ElementsProject/elements / FUZZ_TARGET

Function FUZZ_TARGET

src/test/fuzz/crypto.cpp:20–127  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

18#include <vector>
19
20FUZZ_TARGET(crypto)
21{
22 FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()};
23 std::vector<uint8_t> data = ConsumeRandomLengthByteVector(fuzzed_data_provider);
24 if (data.empty()) {
25 data.resize(fuzzed_data_provider.ConsumeIntegralInRange<size_t>(1, 4096), fuzzed_data_provider.ConsumeIntegral<uint8_t>());
26 }
27
28 CHash160 hash160;
29 CHash256 hash256;
30 CHMAC_SHA256 hmac_sha256{data.data(), data.size()};
31 CHMAC_SHA512 hmac_sha512{data.data(), data.size()};
32 CRIPEMD160 ripemd160;
33 CSHA1 sha1;
34 CSHA256 sha256;
35 CSHA512 sha512;
36 SHA3_256 sha3;
37 CSipHasher sip_hasher{fuzzed_data_provider.ConsumeIntegral<uint64_t>(), fuzzed_data_provider.ConsumeIntegral<uint64_t>()};
38
39 LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 30)
40 {
41 CallOneOf(
42 fuzzed_data_provider,
43 [&] {
44 if (fuzzed_data_provider.ConsumeBool()) {
45 data = ConsumeRandomLengthByteVector(fuzzed_data_provider);
46 if (data.empty()) {
47 data.resize(fuzzed_data_provider.ConsumeIntegralInRange<size_t>(1, 4096), fuzzed_data_provider.ConsumeIntegral<uint8_t>());
48 }
49 }
50
51 (void)hash160.Write(data);
52 (void)hash256.Write(data);
53 (void)hmac_sha256.Write(data.data(), data.size());
54 (void)hmac_sha512.Write(data.data(), data.size());
55 (void)ripemd160.Write(data.data(), data.size());
56 (void)sha1.Write(data.data(), data.size());
57 (void)sha256.Write(data.data(), data.size());
58 (void)sha3.Write(data);
59 (void)sha512.Write(data.data(), data.size());
60 (void)sip_hasher.Write(data.data(), data.size());
61
62 (void)Hash(data);
63 (void)Hash160(data);
64 (void)sha512.Size();
65 },
66 [&] {
67 (void)hash160.Reset();
68 (void)hash256.Reset();
69 (void)ripemd160.Reset();
70 (void)sha1.Reset();
71 (void)sha256.Reset();
72 (void)sha3.Reset();
73 (void)sha512.Reset();
74 },
75 [&] {
76 CallOneOf(
77 fuzzed_data_provider,

Callers

nothing calls this directly

Calls 14

CallOneOfFunction · 0.85
Hash160Function · 0.85
KeccakFFunction · 0.85
ConsumeBoolMethod · 0.80
HashFunction · 0.50
dataMethod · 0.45
sizeMethod · 0.45
emptyMethod · 0.45
resizeMethod · 0.45
WriteMethod · 0.45
SizeMethod · 0.45

Tested by

no test coverage detected