electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit b878c010da775b114e0dc06373744b9a2ce56606
parent ec929bfaf6cc74f8fc1e4579bb2218fa2af875ea
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:
Mlib/bitcoin.py | 11++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/lib/bitcoin.py b/lib/bitcoin.py @@ -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):