secp256k1

Pure Haskell Schnorr, ECDSA on the elliptic curve secp256k1 (docs.ppad.tech/secp256k1).
git clone git://git.ppad.tech/secp256k1.git
Log | Files | Refs | README | LICENSE

CHANGELOG (1427B)


      1 # Changelog
      2 
      3 - 0.4.0 (2025-06-21)
      4   * Scalar multiplication, signing, verifying, and ECHD functions are now
      5     all total, returning 'Nothing' when supplied with invalid inputs.
      6   * Adds a group element check to 'mul_wnaf'.
      7 
      8 - 0.3.0 (2025-03-14)
      9   * Adds 'ecdh' for computing ECDH secrets, any given secret being the
     10     SHA256 hash of the x-coordinate of the appropriate secp256k1 point.
     11 
     12 - 0.2.2 (2025-02-16)
     13   * Exports the secp256k1 "point at infinity" as _CURVE_ZERO.
     14 
     15 - 0.2.1 (2024-12-18)
     16   * Adds 'serialize_point' for compressed-format serialization of
     17     secp256k1 points.
     18 
     19 - 0.2.0 (2024-11-08)
     20   * Adds wNAF ("w-ary non-adjacent form") scalar multiplication, as
     21     well as fast 'sign' and 'verify' variants for Schnorr and ECDSA
     22     (disambiguated by a trailing apostrophe) that make use of it.
     23 
     24     Each wNAF-powered function requires a 'Context' consisting of
     25     precomputed secp256k1 generator multiples; one can be gotten via
     26     'precompute'.
     27 
     28     Note that the non-wNAF-powered sign and verify functions have
     29     incurred a slight performance decrease (on the order of tens to
     30     hundreds of microseconds) as a result.
     31 
     32   * Adds 'parse_sig' for parsing compact signatures.
     33 
     34   * Adds a dependency on the 'primitive' library (already transitively required
     35     via 'ppad-hmac-drbg').
     36 
     37 - 0.1.0 (2024-10-19)
     38   * Initial release, supporting public key derivation and Schnorr &
     39     ECDSA signatures on secp256k1.
     40