Secp256k1.cr Versions Save

a native library implementing secp256k1 purely for the crystal language.

v0.5.0

2 years ago

lib secp256k1.cr v0.5.0 is a complete rewrite of the secp256k1.cr shard.

notables:

  • the entire gem has been completely refactored and optimized. instead of listing all the changes, it's worth taking a look at the docs: https://q9f.github.io/secp256k1.cr/
  • the only logic change is that signatures are now deterministic as per rfc-6979: https://datatracker.ietf.org/doc/html/rfc6979
    • old signatures remain valid, though.
    • new signatures also encode a recovery id in v.
  • ethereum and bitcoin accounts have been demoted to examples as they should be handled in external libraries. they live in their own namespace now and should be considered educational material.

changes:

full changelog: https://github.com/q9f/secp256k1.cr/compare/v0.3.6...v0.5.0

v0.3.6

2 years ago

lib secp256k1.cr v0.3.6 is a service release that ensures compatibility with crystal 1.1.1.

changes:

  • ci: fix github workflows #45
  • docs: regenerate crystal documentation #46
  • shards: update supported crystal version to v1.1.1 #47

v0.3.5

3 years ago

lib secp256k1.cr v0.3.5 is a service release which ensures compatibility with crystal 0.36.1.

changes:

  • Shards: bump crystal to v0.36.1 (#44)

v0.3.4

3 years ago

lib secp256k1.cr v0.3.4 is a service release which ensures compatibility with crystal 0.35.1.

changes:

  • Shards: bump crystal version to 0.35.1 (#43)

v0.3.3

3 years ago

lib secp256k1.cr v0.3.3 is a service release which ensures compatibility with crystal 0.35.0.

changes:

  • Hash: Fix deprecated warnings (crystal 0.35) (#41)
  • Shards: bump crystal version to 0.35.0 (#42)

v0.3.2

4 years ago

lib secp256k1.cr v0.3.2 is a service release which ensures compatibility with crystal 0.34.0.

changes:

  • ensure crystal 0.34 compatibility (#40)

v0.3.1

4 years ago

lib secp256k1.cr v0.3.1 is a service release which ensures compatibility with crystal 0.33.0.

changes:

  • update crystal version to 0.33.0 #39

v0.3.0

4 years ago

this minor release improves stability. the following api renames shall be noted:

  • EC_Point is now ECPoint
  • ECDSA_Signature is now ECDSASignature
  • all hashing functions ending with _string are renamed now overloadable with String

changes:

  • changes to code style (#34)
  • add stats to nightly workflows (#36)
  • overload hashing functions with strings (#37)
  • update contributors (#38)

v0.2.2

4 years ago

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

4 years ago

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