1 // Copyright (c) 2019-2020 The Bitcoin Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #include <core_io.h>
6 #include <primitives/block.h>
7 #include <pubkey.h>
8 #include <rpc/util.h>
9 #include <test/fuzz/fuzz.h>
10 #include <uint256.h>
11 #include <univalue.h>
12 #include <util/strencodings.h>
13 
14 #include <cassert>
15 #include <cstdint>
16 #include <string>
17 #include <vector>
18 
initialize()19 void initialize()
20 {
21     static const ECCVerifyHandle verify_handle;
22 }
23 
test_one_input(const std::vector<uint8_t> & buffer)24 void test_one_input(const std::vector<uint8_t>& buffer)
25 {
26     const std::string random_hex_string(buffer.begin(), buffer.end());
27     const std::vector<unsigned char> data = ParseHex(random_hex_string);
28     const std::string hex_data = HexStr(data);
29     if (IsHex(random_hex_string)) {
30         assert(ToLower(random_hex_string) == hex_data);
31     }
32     (void)IsHexNumber(random_hex_string);
33     uint256 result;
34     (void)ParseHashStr(random_hex_string, result);
35     (void)uint256S(random_hex_string);
36     try {
37         (void)HexToPubKey(random_hex_string);
38     } catch (const UniValue&) {
39     }
40     CBlockHeader block_header;
41     (void)DecodeHexBlockHeader(block_header, random_hex_string);
42     CBlock block;
43     (void)DecodeHexBlk(block, random_hex_string);
44 }
45