66
77#include < base58.h>
88#include < psbt.h>
9+ #include < span.h>
910#include < test/fuzz/FuzzedDataProvider.h>
1011#include < util/strencodings.h>
1112#include < util/string.h>
@@ -19,42 +20,40 @@ using util::TrimStringView;
1920
2021FUZZ_TARGET (base58_encode_decode)
2122{
22- FuzzedDataProvider provider ( buffer.data (), buffer.size ()) ;
23- const std::string random_string{provider.ConsumeRandomLengthString (1000 )};
24- const int max_ret_len{provider.ConsumeIntegralInRange <int >(-1 , 1000 )};
23+ FuzzedDataProvider provider{ buffer.data (), buffer.size ()} ;
24+ const auto random_string{provider.ConsumeRandomLengthString (100 )};
25+ const int max_ret_len{provider.ConsumeIntegralInRange <int >(-1 , 100 )};
2526
2627 // Decode/Encode roundtrip
27- std::vector<unsigned char > decoded;
28- if (DecodeBase58 (random_string, decoded, max_ret_len)) {
28+ if (std::vector<unsigned char > decoded; DecodeBase58 (random_string, decoded, max_ret_len)) {
2929 const auto encoded_string{EncodeBase58 (decoded)};
3030 assert (encoded_string == TrimStringView (random_string));
31- assert (encoded_string .empty () || !DecodeBase58 (encoded_string, decoded, provider.ConsumeIntegralInRange <int >(0 , decoded.size () - 1 )));
31+ assert (decoded .empty () || !DecodeBase58 (encoded_string, decoded, provider.ConsumeIntegralInRange <int >(0 , decoded.size () - 1 )));
3232 }
3333 // Encode/Decode roundtrip
34- const auto encoded{EncodeBase58 (buffer )};
34+ const auto encoded{EncodeBase58 (MakeUCharSpan (random_string) )};
3535 std::vector<unsigned char > roundtrip_decoded;
36- assert (DecodeBase58 (encoded, roundtrip_decoded, buffer .size ())
37- && std::ranges::equal (roundtrip_decoded, buffer ));
36+ assert (DecodeBase58 (encoded, roundtrip_decoded, random_string .size ())
37+ && std::ranges::equal (roundtrip_decoded, MakeUCharSpan (random_string) ));
3838}
3939
4040FUZZ_TARGET (base58check_encode_decode)
4141{
42- FuzzedDataProvider provider ( buffer.data (), buffer.size ()) ;
43- const std::string random_string{provider.ConsumeRandomLengthString (1000 )};
44- const int max_ret_len{provider.ConsumeIntegralInRange <int >(-1 , 1000 )};
42+ FuzzedDataProvider provider{ buffer.data (), buffer.size ()} ;
43+ const auto random_string{provider.ConsumeRandomLengthString (100 )};
44+ const int max_ret_len{provider.ConsumeIntegralInRange <int >(-1 , 100 )};
4545
4646 // Decode/Encode roundtrip
47- std::vector<unsigned char > decoded;
48- if (DecodeBase58Check (random_string, decoded, max_ret_len)) {
47+ if (std::vector<unsigned char > decoded; DecodeBase58Check (random_string, decoded, max_ret_len)) {
4948 const auto encoded_string{EncodeBase58Check (decoded)};
5049 assert (encoded_string == TrimStringView (random_string));
51- assert (encoded_string .empty () || !DecodeBase58Check (encoded_string, decoded, provider.ConsumeIntegralInRange <int >(0 , decoded.size () - 1 )));
50+ assert (decoded .empty () || !DecodeBase58Check (encoded_string, decoded, provider.ConsumeIntegralInRange <int >(0 , decoded.size () - 1 )));
5251 }
5352 // Encode/Decode roundtrip
54- const auto encoded{EncodeBase58Check (buffer )};
53+ const auto encoded{EncodeBase58Check (MakeUCharSpan (random_string) )};
5554 std::vector<unsigned char > roundtrip_decoded;
56- assert (DecodeBase58Check (encoded, roundtrip_decoded, buffer .size ())
57- && std::ranges::equal (roundtrip_decoded, buffer ));
55+ assert (DecodeBase58Check (encoded, roundtrip_decoded, random_string .size ())
56+ && std::ranges::equal (roundtrip_decoded, MakeUCharSpan (random_string) ));
5857}
5958
6059FUZZ_TARGET (base32_encode_decode)
0 commit comments