@@ -29,28 +29,23 @@ FUZZ_TARGET(crypter, .init = initialize_crypter)
29
29
CKeyingMaterial plain_text_ed;
30
30
const std::vector<unsigned char > random_key = ConsumeFixedLengthByteVector (fuzzed_data_provider, WALLET_CRYPTO_KEY_SIZE);
31
31
32
- LIMITED_WHILE (good_data && fuzzed_data_provider.ConsumeBool (), 10000 )
32
+ if (fuzzed_data_provider.ConsumeBool ()) {
33
+ const std::string random_string = fuzzed_data_provider.ConsumeRandomLengthString (100 );
34
+ SecureString secure_string (random_string.begin (), random_string.end ());
35
+
36
+ const unsigned int derivation_method = fuzzed_data_provider.ConsumeBool () ? 0 : fuzzed_data_provider.ConsumeIntegral <unsigned int >();
37
+
38
+ // Limiting the value of nRounds since it is otherwise uselessly expensive and causes a timeout when fuzzing.
39
+ crypt.SetKeyFromPassphrase (/* strKeyData=*/ secure_string,
40
+ /* chSalt=*/ ConsumeFixedLengthByteVector (fuzzed_data_provider, WALLET_CRYPTO_SALT_SIZE),
41
+ /* nRounds=*/ fuzzed_data_provider.ConsumeIntegralInRange <unsigned int >(0 , 25000 ),
42
+ /* nDerivationMethod=*/ derivation_method);
43
+ }
44
+
45
+ LIMITED_WHILE (good_data && fuzzed_data_provider.ConsumeBool (), 100 )
33
46
{
34
47
CallOneOf (
35
48
fuzzed_data_provider,
36
- [&] {
37
- const std::string random_string = fuzzed_data_provider.ConsumeRandomLengthString (100 );
38
- SecureString secure_string (random_string.begin (), random_string.end ());
39
-
40
- const unsigned int derivation_method = fuzzed_data_provider.ConsumeBool () ? 0 : fuzzed_data_provider.ConsumeIntegral <unsigned int >();
41
-
42
- // Limiting the value of nRounds since it is otherwise uselessly expensive and causes a timeout when fuzzing.
43
- crypt.SetKeyFromPassphrase (/* strKeyData=*/ secure_string,
44
- /* chSalt=*/ ConsumeFixedLengthByteVector (fuzzed_data_provider, WALLET_CRYPTO_SALT_SIZE),
45
- /* nRounds=*/ fuzzed_data_provider.ConsumeIntegralInRange <unsigned int >(0 , 25000 ),
46
- /* nDerivationMethod=*/ derivation_method);
47
- },
48
- [&] {
49
- const std::vector<unsigned char > random_vector = ConsumeFixedLengthByteVector (fuzzed_data_provider, WALLET_CRYPTO_KEY_SIZE);
50
- const CKeyingMaterial new_key (random_vector.begin (), random_vector.end ());
51
- const std::vector<unsigned char >& new_IV = ConsumeFixedLengthByteVector (fuzzed_data_provider, WALLET_CRYPTO_IV_SIZE);
52
- crypt.SetKey (new_key, new_IV);
53
- },
54
49
[&] {
55
50
const std::vector<unsigned char > random_vector = ConsumeFixedLengthByteVector (fuzzed_data_provider, WALLET_CRYPTO_KEY_SIZE);
56
51
plain_text_ed = CKeyingMaterial (random_vector.begin (), random_vector.end ());
@@ -67,12 +62,12 @@ FUZZ_TARGET(crypter, .init = initialize_crypter)
67
62
[&] {
68
63
const CKeyingMaterial master_key (random_key.begin (), random_key.end ());
69
64
const uint256 iv = ConsumeUInt256 (fuzzed_data_provider);
70
- EncryptSecret (master_key, plain_text_ed, iv, cipher_text_ed);
65
+ ( void ) EncryptSecret (master_key, plain_text_ed, iv, cipher_text_ed);
71
66
},
72
67
[&] {
73
68
const CKeyingMaterial master_key (random_key.begin (), random_key.end ());
74
69
const uint256 iv = ConsumeUInt256 (fuzzed_data_provider);
75
- DecryptSecret (master_key, cipher_text_ed, iv, plain_text_ed);
70
+ ( void ) DecryptSecret (master_key, cipher_text_ed, iv, plain_text_ed);
76
71
},
77
72
[&] {
78
73
std::optional<CPubKey> random_pub_key = ConsumeDeserializable<CPubKey>(fuzzed_data_provider);
@@ -84,7 +79,7 @@ FUZZ_TARGET(crypter, .init = initialize_crypter)
84
79
const CKeyingMaterial master_key (random_key.begin (), random_key.end ());
85
80
const std::vector<unsigned char > crypted_secret = ConsumeRandomLengthByteVector (fuzzed_data_provider, 64 );
86
81
CKey key;
87
- DecryptKey (master_key, crypted_secret, pub_key, key);
82
+ ( void ) DecryptKey (master_key, crypted_secret, pub_key, key);
88
83
});
89
84
}
90
85
}
0 commit comments