From 32564b0a995bd515ba9e56c940388ea5219a1fdd Mon Sep 17 00:00:00 2001 From: Dmitry Petukhov Date: Fri, 13 Sep 2019 09:55:12 +0500 Subject: [PATCH] fix len check in blech32 decode() in test framework --- test/functional/test_framework/liquid_addr.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/test/functional/test_framework/liquid_addr.py b/test/functional/test_framework/liquid_addr.py index 2971f899b5..806f1ed735 100644 --- a/test/functional/test_framework/liquid_addr.py +++ b/test/functional/test_framework/liquid_addr.py @@ -84,16 +84,19 @@ def convertbits(data, frombits, tobits, pad=True): def decode(hrp, addr): - """Decode a segwit address.""" + """Decode a segwit confidential address. + Its payload is longer than the payload for unconfidential address + by 33 bytes (the length of blinding pubkey)""" + hrpgot, data = blech32_decode(addr) if hrpgot != hrp: return (None, None) decoded = convertbits(data[1:], 5, 8, False) - if decoded is None or len(decoded) < 2 or len(decoded) > 40: + if decoded is None or len(decoded) < 2 or len(decoded) > 40+33: return (None, None) if data[0] > 16: return (None, None) - if data[0] == 0 and len(decoded) != 20 and len(decoded) != 32: + if data[0] == 0 and len(decoded) != 20+33 and len(decoded) != 32+33: return (None, None) return (data[0], decoded)