/cb58ref

Reference implementation of CB58 encoding used on the AVA network

Primary LanguagePythonMIT LicenseMIT

cb58ref

Documentation Status Updates

cb58ref is a reference implementation of the CB58 encoding used by AVA. CB58 is similar to the Base58Check encoding used in Bitcoin

  • both can encode arbitrary an arbitrary byte sequence
  • both use the same alphabet
  • both append a 4 byte checksum

they differ in the following respects

  • CB58 uses the final 4 bytes of SHA256(msg) as the checksum. Base58Check uses the first 4 bytes of SHA256(SHA256(msg)) as the checksum.

Usage

>>> import cb58ref
>>> cb58ref.cb58encode(b"Hello world"):
'32UWxgjUJd9s6Kyvxjj1u'
>>> cb58ref.cb58decode('32UWxgjUJd9s6Kyvxjj1u')
b"Hello world"
$ printf "Hello world" | python3 -m cb58ref
32UWxgjUJd9s6Kyvxjj1u

$ printf "32UWxgjUJd9s6Kyvxjj1u" | python3 -m cb58ref -d
Hello world

Installation

$ python3 -m pip install cb58ref

License

  • Free software: MIT license

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template. The b58decode(), and b58encode() functions are from base58.py, part of Bitcoin Core.