From 281b51e567427fa77ec2162dc27f6f736ad47ffb Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Mon, 9 Jul 2018 23:41:41 +0100 Subject: [PATCH] Raise the 90-character limit on Bech32 encodings Regtest addresses are 91 characters, and ZIP 32's Bech32 encoding will be significantly longer. --- src/bech32.cpp | 2 +- src/test/bech32_tests.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bech32.cpp b/src/bech32.cpp index 2889f8f99..78c35b976 100644 --- a/src/bech32.cpp +++ b/src/bech32.cpp @@ -169,7 +169,7 @@ std::pair Decode(const std::string& str) { } if (lower && upper) return {}; size_t pos = str.rfind('1'); - if (str.size() > 90 || pos == str.npos || pos == 0 || pos + 7 > str.size()) { + if (str.size() > 1023 || pos == str.npos || pos == 0 || pos + 7 > str.size()) { return {}; } data values(str.size() - 1 - pos); diff --git a/src/test/bech32_tests.cpp b/src/test/bech32_tests.cpp index f71ca1bf2..02252bcbf 100644 --- a/src/test/bech32_tests.cpp +++ b/src/test/bech32_tests.cpp @@ -28,6 +28,7 @@ BOOST_AUTO_TEST_CASE(bip173_testvectors_valid) "A12UEL5L", "a12uel5l", "an83characterlonghumanreadablepartthatcontainsthenumber1andtheexcludedcharactersbio1tt5tgs", + "an84characterslonghumanreadablepartthatcontainsthenumber1andtheexcludedcharactersbio1569pvx", "abcdef1qpzry9x8gf2tvdw0s3jn54khce6mua7lmqqqxw", "11qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqc8247j", "split1checkupstagehandshakeupstreamerranterredcaperred2y9e3w", @@ -48,7 +49,6 @@ BOOST_AUTO_TEST_CASE(bip173_testvectors_invalid) " 1nwldj5", "\x7f""1axkwrx", "\x80""1eym55h", - "an84characterslonghumanreadablepartthatcontainsthenumber1andtheexcludedcharactersbio1569pvx", "pzry9x0s0muk", "1pzry9x0s0muk", "x1b4n0q5v",