You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trezor-firmware/src/trezor/crypto/base58.py

23 lines
538 B

from TrezorCrypto import Base58
from .hashlib import sha256
_base58 = Base58()
def encode(data):
return _base58.encode(data)
def decode(string):
return _base58.decode(string)
def encode_check(data, hashlen=4):
h = sha256(sha256(data).digest()).digest()
return encode(data + h[:hashlen])
def decode_check(string, hashlen=4):
data = decode(string)
d, h1 = data[:-hashlen], data[-hashlen:]
h2 = sha256(sha256(d).digest).digest()[:4]
if h1 != h2:
raise RuntimeError('Checksum error')
return d