Merge 31a3ff5515 into merged_master (Bitcoin PR bitcoin/bitcoin#30596)

This commit is contained in:
ivanlele 2026-03-11 13:47:51 +00:00
commit 8a93809b0e
No known key found for this signature in database
3 changed files with 6 additions and 5 deletions

View file

@ -16,9 +16,6 @@ namespace bech32
typedef std::vector<uint8_t> data;
/** The Bech32 and Bech32m checksum size */
constexpr size_t CHECKSUM_SIZE = 6;
/** The Bech32 and Bech32m character set for encoding. */
const char* CHARSET = "qpzry9x8gf2tvdw0s3jn54khce6mua7l";

View file

@ -21,6 +21,9 @@
namespace bech32
{
/** The Bech32 and Bech32m checksum size */
constexpr size_t CHECKSUM_SIZE = 6;
enum class Encoding {
INVALID, //!< Failed decoding

View file

@ -29,8 +29,9 @@ FUZZ_TARGET(bech32)
std::vector<unsigned char> input;
ConvertBits<8, 5, true>([&](unsigned char c) { input.push_back(c); }, buffer.begin(), buffer.end());
if (input.size() + 3 + 6 <= 90) {
// If it's possible to encode input in Bech32(m) without exceeding the 90-character limit:
// Input data part + 3 characters for the HRP and separator (bc1) + the checksum characters
if (input.size() + 3 + bech32::CHECKSUM_SIZE <= bech32::CharLimit::BECH32) {
// If it's possible to encode input in Bech32(m) without exceeding the bech32-character limit:
for (auto encoding : {bech32::Encoding::BECH32, bech32::Encoding::BECH32M}) {
const std::string encoded = bech32::Encode(encoding, "bc", input);
assert(!encoded.empty());