Secp256k1.cr Versions Save

a native library implementing secp256k1 purely for the crystal language.

v0.2.0

4 years ago

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

4 years ago

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

4 years ago

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

4 years ago

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

4 years ago

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

4 years ago

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

4 years ago

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

4 years ago

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