Browse Source

Minikey: minimum length 20

On second thoughts there seems little reason to accept text
of length <= 20 for minikeys.
283
Neil Booth 9 years ago
parent
commit
b878c010da
  1. 11
      lib/bitcoin.py

11
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):

Loading…
Cancel
Save