PackageTrack
Sign in Get early access

k256

secp256k1 elliptic curve library written in pure Rust with support for ECDSA signing/verification/public-key recovery, Taproot Schnorr signatures (BIP340), Elliptic Curve Diffie-Hellman (ECDH), and general-purpose secp256k1 elliptic curve group operations which can be used to implement arbitrary protocols

0.14.0 74M downloads/mo #966 most downloaded on crates.io RustCrypto/elliptic-curves

What this package is like to depend on

Last release 1 months ago

08 Jul 2026

Ships fairly regularly

a new release about every 2 weeks

Nearly every release is documented

notes for 47 of 48 stable releases

6 versions withdrawn

withdrawn after publishing

7 years old

87 releases · first in 2019

19 releases in the last 12 months

see the full history below

Release timeline

87 releases · Dec 2019 to Jul 2026
2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 87
  1. 0.14.0 08 Jul 2026
    Release notes

    k256 v0.14.0 (#1900)

    Open source →
    Release notes

    Added

    • Support for non-32-byte BIP340 signatures (#1041)
    • Implement From<NonZeroScalar> for Scalar (#1188)
    • Implement From<NonIdentity> for Projective/AffinePoint (#1190)
    • Implement MultipartSigner/Verifier (#1221)
    • Support hash2curve crate (#[1286])
    • Implement FromUniformBytes<64> for Scalar (#1379)
    • Implement CofactorGroup for ProjectivePoint (#1394)
    • Implement AffineCoordinates::from_coordinates (#1405)
    • getrandom feature (#1521)
    • Conversions to/from U256 for field elements (#1552)
    • Implement crypto_common::Generate trait (#1586)

    Changed

    • Edition changed to 2024 and MSRV bumped to 1.85 (#1125)
    • Relax MSRV policy and allow MSRV bumps in patch releases
    • Expose AffineCoordinates::y (#1230)
    • Use rejection sampling for random point generation (#1344)
    • Use new Reduce trait (#1359)
    • Update Curve::ORDER to be Odd (#1416)
    • Factor apart Schnorr from_bytes/from_slice methods (#1429)
    • Use crypto-bigint to implement inversions (#1554, #1573)
    • Bump sha2 dependency to v0.11 (#1712)
    • Variable-time scalar multiplication support (#1714, #1715, #1728, #1730, #1745, #1812, #1816, #1819, #1823, #1884)
    • Bump signature dependency to v3 (#1756)
    • Bump elliptic-curve dependency to v0.14 (#1849)
    • Bump ecdsa to v0.17 (#1883)

    Removed

    • bits feature (#1766)
    • expose-field feature in favor of FieldArithmetic trait (#1834)

    Fixed

    • Use normalizes_to_zero in batch normalization (#1029)
    • Panics when parsing malformed Schnorr signatures (#1056)
    • BatchInvert impl for FieldElement could compute non-normalized results (#1862)
    • Have Schnorr signing reduce k mod n (#1898)
    Open source →
  2. 0.14.0-rc.15 29 Jun 2026 pre-release

    Nothing published for this version

  3. 0.14.0-rc.14 24 Jun 2026 pre-release

    Nothing published for this version

  4. 0.14.0-rc.13 23 Jun 2026 pre-release

    Nothing published for this version

  5. 0.14.0-rc.12 17 Jun 2026 pre-release

    Nothing published for this version

  6. 0.14.0-rc.11 10 Jun 2026 pre-release

    Nothing published for this version

  7. 0.14.0-rc.10 04 Jun 2026 pre-release

    Nothing published for this version

  8. 0.14.0-rc.9 17 Apr 2026 pre-release

    Nothing published for this version

  9. 0.14.0-rc.8 10 Mar 2026 pre-release

    Nothing published for this version

  10. 0.14.0-rc.7 03 Feb 2026 pre-release

    Nothing published for this version

  11. 0.14.0-rc.6 24 Jan 2026 pre-release

    Nothing published for this version

  12. 0.14.0-rc.5 21 Jan 2026 pre-release

    Nothing published for this version

  13. 0.14.0-rc.4 08 Jan 2026 pre-release

    Nothing published for this version

  14. 0.14.0-rc.3 04 Jan 2026 pre-release

    Nothing published for this version

  15. 0.14.0-rc.2 30 Dec 2025 pre-release

    Nothing published for this version

  16. 0.14.0-rc.1 25 Nov 2025 pre-release

    Nothing published for this version

  17. 0.14.0-rc.0 23 Oct 2025 pre-release

    Nothing published for this version

  18. 0.14.0-pre.11 14 Sep 2025 pre-release

    Nothing published for this version

  19. 0.14.0-pre.10 03 Sep 2025 pre-release

    Nothing published for this version

  20. 0.14.0-pre.9 10 Jul 2025 pre-release

    Nothing published for this version

  21. 0.14.0-pre.8 21 Jun 2025 pre-release

    Nothing published for this version

  22. 0.14.0-pre.7 14 Jun 2025 pre-release

    Nothing published for this version

  23. 0.14.0-pre.6 14 Jun 2025 pre-release

    Nothing published for this version

  24. 0.14.0-pre.5 07 Jun 2025 pre-release

    Nothing published for this version

  25. 0.14.0-pre.4 31 May 2025 pre-release

    Nothing published for this version

  26. 0.14.0-pre.3 29 May 2025 pre-release

    Nothing published for this version

  27. 0.14.0-pre.2 22 Sep 2024 pre-release

    Nothing published for this version

  28. 0.14.0-pre.1 20 Sep 2024 pre-release

    Nothing published for this version

  29. 0.14.0-pre.0 05 Jun 2024 pre-release

    Nothing published for this version

  30. 0.13.4 20 Sep 2024

    Nothing published for this version

  31. 0.13.3 08 Jan 2024
    Release notes

    Added

    • More inlines for better efficiency (#999)
    Open source →
  32. 0.13.2 15 Nov 2023
    Release notes

    Added

    • #[inline] annotations on conditional_select (#942)
    • BatchInvert and BatchNormalize impls (#971)
    • Optimized implementation of LinearCombinationExt trait (#974)

    Changed

    • Use generic signing implementation from ecdsa crate (#911)
    • Simplify internal helper functions in the scalar arithmetic (#917)
    • Bump elliptic-curve to v0.13.7 (#979)

    Fixed

    • Reject signatures which aren't low-S normalized (#914)
    • Check for R being the identity point on Schnorr verification (#916)
    Open source →
  33. 0.13.1 10 Apr 2023
    Release notes

    Fixed

    • Correct product definition for empty iterators (#802)
    Open source →
  34. 0.13.0 03 Mar 2023
    Release notes

    Added

    • FieldBytesEncoding trait impls (#732)
    • Fast invert_vartime using Stein's algorithm (#743)
    • serde support for schnorr types (#748)

    Changed

    • AffineCoordinates trait (#734)
    • Bump elliptic-curve dependency to v0.13 (#770)
    • Bump ecdsa to v0.16 (#770)
    Open source →
  35. 0.12.0 16 Jan 2023
    Release notes

    Added

    • alloc feature (#670)
    • Impl FromOkm for Scalar (#673)
    • Impl Prehash* and KeypairRef for Schnorr keys (#689)
    • schnorr::SigningKey::as_nonzero_scalar (#690)
    • Impl From<NonZeroScalar> for schnorr::SigningKey (#703)
    • Impl From<SecretKey> for schnorr::SigningKey (#704)
    • precomputed-tables feature (#697, #705, #707)
    • Constructors for Scalar from u128 (#709)

    Changed

    • Use weak feature activation; MSRV 1.60 (#701)
    • Bump ecdsa dependency to v0.15 (#713)

    Removed

    • ecdsa::recoverable module; see documentation for replacements (#675)
    Open source →
  36. 0.12.0-pre.0 07 Nov 2022 pre-release

    Nothing published for this version

  37. 0.11.6 27 Sep 2022
    Release notes

    Added

    • ecdsa::recoverable::Signature::from_digest_bytes_trial_recovery (#660)

    Changed

    • Make ProjectivePoint equality and is_identity faster (#650)
    Open source →
  38. 0.11.5 14 Sep 2022
    Release notes

    Added

    • Impl PrehashSigner and PrehashVerifier traits for ECDSA keys (#653)
    • Impl Keypair for SigningKey (#654)
    Open source →
  39. 0.11.4 13 Aug 2022
    Release notes

    Added

    • Impl ZeroizeOnDrop for ecdsa::SigningKey and schnorr::SigningKey (#630)

    Changed

    • Get rid of eager computation in mul_shift_vartime() (#638)
    • Bump the precision of precomputed division for the scalar decomposition (#639)
    Open source →
  40. 0.11.3 02 Jul 2022
    Release notes

    Changed

    • Relax DigestSigner trait bounds (#613)
    • Bump elliptic-curve to v0.12.2 (#616)
    Open source →
  41. 0.11.2 24 May 2022
    Release notes

    Changed

    • Enable schnorr feature by default (#561)
    Open source →
  42. 0.11.1 24 May 2022
    Release notes

    Added

    • Taproot Schnorr as defined in BIP 340 (#554, #557, #558)
    • Re-export low-level diffie_hellman function (#556)

    Changed

    • Use SHA-256 for computing RFC6979 for recoverable::Signature (#552)
    Open source →
  43. 0.11.0 09 May 2022
    Release notes

    Changed

    • Bump digest to v0.10 (#515)
    • Make AffinePoint to VerifyingKey conversion fallible (#535)
    • Rename recover_verify_key => recover_verifying_key (#537)
    • Rename recover_verify_key_from_digest => recover_verifying_key_from_digest (#537)
    • Have pkcs8 feature activate ecdsa/pkcs8 (#538)
    • Bump elliptic-curve to v0.12 (#544)
    • Bump ecdsa to v0.14 (#544)

    Fixed

    • hash2curve crate feature (#519)
    Open source →
  44. 0.11.0-pre.0 20 Jan 2022 pre-release

    Nothing published for this version

  45. 0.10.4 15 Mar 2022
    Release notes

    Fixed

    • Normalize before calling is_odd() in sng0() (#533)
    Open source →
  46. 0.10.3 14 Mar 2022
    Release notes

    Fixed

    • Do not normalize the argument in FieldElementImpl::is_odd() (#530)
    Open source →
  47. 0.10.2 17 Jan 2022
    Release notes

    Added

    • hash2curve support: impl GroupDigest for Secp256k1 (#503)
    • IDENTITY and GENERATOR point constants (#511)
    Open source →
  48. 0.10.1 05 Jan 2022
    Release notes

    Added

    • Impl ff::Field trait for FieldElement (#498)
    • Impl ReduceNonZero<U256> for Scalar (#501)
    Open source →
  49. 0.10.0 14 Dec 2021
    Release notes

    Added

    • Implement Scalar::sqrt (#400)
    • Impl PrimeCurveArithmetic (#415)
    • Impl Reduce<U256> for Scalar (#436)
    • Impl Drop for ecdsa::SigningKey (#449)
    • serde feature (#463, #464)
    • Impl Reduce<U512> for Scalar (#472)
    • Impl ReduceNonZero<U512> for Scalar (#474)
    • Impl LinearCombination trait (#476)

    Changed

    • Make ecdsa::Signature::normalize_s non-mutating (#405)
    • Use PrimeCurve trait (#413)
    • Use sec1 crate for EncodedPoint type (#435)
    • Replace ecdsa::hazmat::FromDigest with Reduce (#438)
    • Make FromEncodedPoint return a CtOption (#445)
    • Rust 2021 edition upgrade; MSRV 1.56+ (#453)
    • Bump elliptic-curve crate dependency to v0.11 (#466)
    • Bump ecdsa crate dependency to v0.13 (#467)

    Fixed

    • Handle identity point in GroupEncoding (#446)

    Removed

    • force-32-bit feature (#399)
    • field-montgomery feature (#404)
    • Scalar::conditional_add_bit (#431)
    • Deprecated SigningKey::verify_key method (#461)
    Open source →
  50. 0.10.0-pre.1 22 Nov 2021 pre-release

    Nothing published for this version

  51. 0.9.6 22 Jul 2021
    Release notes

    Added

    • Wycheproof test vectors (#384)

    Fixed

    • Edge case in Scalar::is_high (#385)
    • Bug in overflow check during 32-bit multiplication (#388)
    Open source →
  52. 0.9.5 18 Jul 2021
    Release notes

    Changed

    • Optimize ECDSA using linear combination of points (#380)
    Open source →
  53. 0.9.4 23 Jun 2021
    Release notes

    Added

    • Derive Clone for ecdsa::SigningKey (#374)
    Open source →
  54. 0.9.3 22 Jun 2021
    Release notes

    Added

    • ecdsa::SigningKey::verifying_key() method (#363)

    Changed

    • Deprecate SigningKey::verify_key() - use verifying_key instead (#363)
    • Bump elliptic-curve dependency to v0.10.3 (#371)
    Open source →
  55. 0.9.2 14 Jun 2021 withdrawn
    Release notes

    Added

    • Debug impl for ecdsa::SigningKey (#358)
    • ConstantTimeEq/Eq/PartialEq impls for ecdsa::SigningKey (#359)
    Open source →
  56. 0.9.1 09 Jun 2021 withdrawn
    Release notes

    Added

    • Copy impl for ecdsa::VerifyingKey (#355)
    Open source →
  57. 0.9.0 08 Jun 2021 withdrawn
    Release notes

    Added

    • Derive Ord on ecdsa::VerifyingKey (#343)
    • AffineArithmetic trait impl (#347)
    • PrimeCurve trait impls (#350)

    Changed

    • Bump elliptic-curve to v0.10; MSRV 1.51+ (#349)
    • Bump ecdsa to v0.12 (#349)
    Open source →
  58. 0.8.1 10 May 2021
    Release notes

    Fixed

    • Mixed coordinate addition with the point at infinity (#337)
    Open source →
  59. 0.8.0 29 Apr 2021
    Release notes

    Added

    • jwk feature (#295)
    • Order constant (#328)

    Changed

    • Rename ecdsa::Asn1Signature to ::DerSignature (#288)
    • Migrate to FromDigest trait from ecdsa crate (#292)
    • Bump elliptic-curve to v0.9.2 (#296)
    • Bump pkcs8 to v0.6 (#319)
    • Bump ecdsa crate dependency to v0.11 (#330)

    Fixed

    • DigestPrimitive feature gating (#324)
    Open source →
  60. 0.8.0-pre.1 22 Mar 2021 pre-release

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive