Minikey: minimum length 20

On second thoughts there seems little reason to accept text
of length <= 20 for minikeys.
This commit is contained in:
Neil Booth 2016-01-21 08:11:50 +09:00
parent ec929bfaf6
commit b878c010da
1 changed files with 6 additions and 5 deletions

View File

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