All Versions
10
Latest Version
Avg Release Cycle
2 days
Latest Release
6 days ago

Changelog History

  • v0.2.2

    January 13, 2020

    🚀 this feature release improves keypair and account management by introducing data structures for

    • Secp256k1::Keypair
    • Secp256k1::Bitcoin::Account
    • Secp256k1::Ethereum::Account
    • Secp256k1::Ethereum::Enode

    🔄 changes:

    • ➕ add devp2p enode support #31
    • add mini_is_valid? #29
  • v0.2.1

    January 09, 2020

    📚 this release significantly improves the documentation at https://q9f.github.io/secp256k1.cr/ and applies some minor enhancements to the exposed apis of the library, namely:

    • mini-private keys now use BASE-56 instead of BASE-57. that does not affect existing mini-private keys.
    • added Secp256k1::Bitcoin.wif_from_private_uncompressed wrapper for uncompressed wif
    • renamed Secp256k1::Bitcoin.wif_compressed_from_private to .wif_from_private_compressed
    • private keys are handled as BigInt instead of a String literals wherever possible, e.g., Secp256k1::Bitcoin.address_from_private or Secp256k1::Ethereum.address_from_private
    • constants: renamed EC_PARAM_PRIME to EC_PRIME_P
    • replaced BASE_57 in favor of BASE_56 by removing the o from the alphabet as recommended by the Bitcoin Wiki.
    • binary hashing operations now directly operate on Bytes instead of String literals, e.g., Secp256k1::Hash.sha3, .sha256, .keccak256, .ripemd160
    • added Secp256k1::Hash.ripemd160_string for RIPEMD-160 hashes on String literals to complement .sha3_string, .sha256_string, and .keccak256_string
    • added Secp256k1::Hash.base58_char to complement .base56_char
    • pass the prime through Secp256k1::Util.restore_public_key

    🔄 changes:

    • 👌 improve the documentation #27
  • v0.2.0

    January 06, 2020

    🚀 this release refactors the entire library and entangles some of the submodules exposed by the library.

    this library now exposes the following modules (in logical order):

    • Secp256k1: necessary constants and data structures
    • Secp256k1::Core: the entire core mathematics behind the elliptic curve cryptography
    • Secp256k1::Util: all tools for the handling of private-public key-pairs
    • Secp256k1::Hash: implementation of various hashing algorithms for convenience
    • Secp256k1::Signature: allows for signing messages and verifying signatures
    • Secp256k1::Bitcoin: for the generation of bitcoin addresses
    • Secp256k1::Ethereum: for the generation of ethereum addresses

    📄 docs are now published on github pages: q9f.github.io/secp256k1.cr

    🔄 changes:

    • ➕ add docs to readme (#26)
    • ➕ add crystal docs (#25)
    • 📇 rename utils to util (#24)
    • ♻️ refactor code with meaningful submodule namespaces (#23)
  • v0.1.6

    January 05, 2020

    🚀 this is a feature release that allows for basic ecdsa signature generation and verification.

    🔄 changes:

    • 👍 allow to sign and verify messages #20
  • v0.1.5

    January 01, 2020

    🚀 this is a feature release that allows for retrieving bitcoin addresses from wallet import format by honoring the compressed byte.

    🔄 changes:

    • 👍 allow for wif to address #19
  • v0.1.4

    December 25, 2019

    🚀 this is a feature release that allows for generation of mini private keys and proper handling of bitcoin's wallet import format.

    🔄 changes:

    • try: add an example program #14
    • ➕ add support for mini private keys #16
    • ➕ add support for wallet import format #18
  • v0.1.3

    December 24, 2019

    🚀 this is a feature release that allows for generation of bitcoin and ethereum addresses.

    🔄 changes:

    • ➕ add cryptographic hashing functions #9
    • ➕ add bitcoin and ethereum address modules #9
    • 👍 allow for export of unprefixed uncompressed keys for ethereum #9
    • ➕ add tests for hashes on bytes #9
    • ✅ implement eip-55 test cases #9
    • bind mpz_powm_sec from libgmp #11
  • v0.1.2

    December 24, 2019

    🚀 this is a feature release adding the ability to encode and decode the different public key formats

    🔄 changes:

    • 👍 allow for converting between different public key formats #7
    • ➕ add a known private key to tests #7
    • raise if it tries to decode compressed keys as mod_exp overflows #7
  • v0.1.1

    December 24, 2019

    🛠 this is a bugfix release that improves performance and stability.

    🔄 changes:

    • 👉 use proper integer division #6
    • ensure private keys are within the ec field size #6
    • disallow ec multiplication with invalid private keys #6
  • v0.1.0

    December 24, 2019

    🎉 initial release for the secp256k1 crystal library

    containing:

    • the constants describing the elliptic curve #1
    • the four Secp256k1:: key functions for ec_mul, ec_add, ec_double, and ec_mod_inv #1
    • utilities to generate private and public keys #1
    • ✅ tests for the secp256k1 module #1
    • a struct for EC_Point #1
    • github actions checking format and spec #2
    • a meaningful readme #3