tMinikey: minimum length 20 - electrum - Electrum Bitcoin wallet (HTM) git clone https://git.parazyd.org/electrum (DIR) Log (DIR) Files (DIR) Refs (DIR) Submodules --- (DIR) commit b878c010da775b114e0dc06373744b9a2ce56606 (DIR) parent ec929bfaf6cc74f8fc1e4579bb2218fa2af875ea (HTM) Author: Neil Booth <kyuupichan@gmail.com> Date: Thu, 21 Jan 2016 08:11:50 +0900 Minikey: minimum length 20 On second thoughts there seems little reason to accept text of length <= 20 for minikeys. Diffstat: M lib/bitcoin.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) --- (DIR) diff --git a/lib/bitcoin.py b/lib/bitcoin.py t@@ -382,11 +382,12 @@ def is_private_key(key): def is_minikey(text): # Minikeys are typically 22 or 30 characters, but this routine - # permits any length provided the minikey is valid. A valid - # minikey must begin with an 'S', be in base58, and when suffixed - # with '?' have its SHA256 hash begin with a zero byte. They are - # widely used in Casascius physical bitoins. - return (text and text[0] == 'S' and all(c in __b58chars for c in text) + # permits any length of 20 or more provided the minikey is valid. + # A valid minikey must begin with an 'S', be in base58, and when + # suffixed with '?' have its SHA256 hash begin with a zero byte. + # They are widely used in Casascius physical bitoins. + return (len(text) >= 20 and text[0] == 'S' + and all(c in __b58chars for c in text) and ord(sha256(text + '?')[0]) == 0) def minikey_to_private_key(text):