PackageTrack
Sign in Get early access

p256

Pure Rust implementation of the NIST P-256 (a.k.a. secp256r1, prime256v1) elliptic curve as defined in SP 800-186, with support for ECDH, ECDSA signing/verification, and general purpose curve arithmetic

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

What this package is like to depend on

Last release 1 months ago

03 Jul 2026

Ships fairly regularly

a new release about every 5 weeks

Nearly every release is documented

notes for 25 of 25 stable releases

2 versions withdrawn

withdrawn after publishing

8 years old

61 releases · first in 2018

19 releases in the last 12 months

see the full history below

Release timeline

61 releases · Oct 2018 to Jul 2026
2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 61
  1. 0.14.0 03 Jul 2026
    Release notes

    p256 v0.14.0 (#1890)

    Open source →
    Release notes

    Added

    • hash2curve implementation (#964)
    • BatchInvert implementation (#971)
    • EcdsaCurve trait impls (#1019)
    • Implement From<NonZeroScalar> for Scalar (#1188)
    • Implement TryFrom<Scalar> for NonZeroScalar (#1193)
    • getrandom feature (#1521)
    • Implement crypto_common::Generate trait (#1586)
    • precomputed-tables feature (#1789, #1790, #1796)

    Changed

    • Edition changed to 2024 and MSRV bumped to 1.85 (#1125)
    • Relax MSRV policy and allow MSRV bumps in patch releases
    • Use U256 for MODULUS of FieldElement (#1153)
    • Have FieldElement::to_canonical return U256 (#1154)
    • Use primefield for FieldElement boilerplate (#1179, #1180)
    • Update to elliptic-curve v0.14 (#1849)
    • Use crypto-bigint to implement inversions (#1549, #1578)
    • Bump sha2 dependency to v0.11 (#1712)
    • Bump elliptic-curve dependency to v0.14 (#1849)
    • Bump ecdsa to v0.17 (#1883)
    • Bump primeorder to v0.14 (#1887)

    Removed

    • bits feature (#1766)
    • expose-field feature: use FieldArithmetic trait instead (#1834)
    Open source →
    Release notes

    Added

    • hash2curve implementation (#964)
    • BatchInvert implementation (#971)
    • EcdsaCurve trait impls (#1019)
    • Implement From<NonZeroScalar> for Scalar (#1188)
    • Implement TryFrom<Scalar> for NonZeroScalar (#1193)
    • getrandom feature (#1521)
    • Implement crypto_common::Generate trait (#1586)
    • basepoint-table feature (#1789, #1790, #1796)

    Changed

    • Edition changed to 2024 and MSRV bumped to 1.85 (#1125)
    • Relax MSRV policy and allow MSRV bumps in patch releases
    • Use U256 for MODULUS of FieldElement (#1153)
    • Have FieldElement::to_canonical return U256 (#1154)
    • Use primefield for FieldElement boilerplate (#1179, #1180)
    • Update to elliptic-curve v0.14 (#1849)
    • Use crypto-bigint to implement inversions (#1549, #1578)
    • Bump sha2 dependency to v0.11 (#1712)
    • Bump elliptic-curve dependency to v0.14 (#1849)
    • Bump ecdsa to v0.17 (#1883)
    • Bump primeorder to v0.14 (#1887)

    Removed

    • bits feature (#1766)
    • expose-field feature: use FieldArithmetic trait instead (#1834)
    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 19 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 27 Jul 2024 pre-release

    Nothing published for this version

  29. 0.14.0-pre.0 19 Jan 2024 pre-release

    Nothing published for this version

  30. 0.13.2 15 Apr 2023
    Release notes

    Changed

    • Enable pem feature by default (#832)

    Fixed

    • Have serde feature enable primeorder/serde (#851)
    Open source →
  31. 0.13.1 10 Apr 2023
    Release notes

    Changed

    • Bump primeorder to v0.13.1 (#819)

    Fixed

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

    Added

    • PrimeField constants/tests (#730, #737, #738)
    • const fn inversions for all field elements (#736)

    Changed

    • FieldBytesEncoding trait impls (#732)
    • Update hash2curve implementations to new API (#735)
    • Impl Invert trait for Scalar types (#741)
    • Bump ecdsa dependency to v0.16 (#770)
    • Bump elliptic-curve dependency to v0.13 (#770)
    • Bump primeorder dependency to v0.13 (#777)

    Fixed

    • Point compactabtility check (#772)
    Open source →
  33. 0.12.0 16 Jan 2023
    Release notes

    Added

    • 32-bit scalar backend (#636)
    • alloc feature (#670)
    • Constructors for Scalar from u128 (#709)

    Changed

    • Use generic curve arithmetic implementation from primeorder crate (#631, #716)
    • Use U256 as the inner type for FieldElement (#634)
    • Update P-256 VOPRF test vectors (#693)
    • Use weak feature activation; MSRV 1.60 (#701)
    • Bump ecdsa dependency to v0.15 (#713)
    Open source →
  34. 0.12.0-pre.1 29 Dec 2022 pre-release

    Nothing published for this version

  35. 0.12.0-pre.0 07 Nov 2022 pre-release

    Nothing published for this version

  36. 0.11.1 12 Jun 2022
    Release notes

    Added

    • Re-export low-level diffie_hellman function (#556)
    • Additional RFC6979 test vectors (#591)

    Changed

    • Use a 4-bit window for scalar multiplication (#563)
    • invert(), sqrt(): replace exponentiations with addition chains (#564)
    • Use generic prime order formulas (#602)
    Open source →
  37. 0.11.0 09 May 2022
    Release notes

    Changed

    • Bump digest to v0.10 (#515)
    • Have pkcs8 feature activate ecdsa/pkcs8 (#538)
    • Bump elliptic-curve to v0.12 (#544)
    • Bump ecdsa to v0.14 (#544)
    Open source →
  38. 0.11.0-pre.0 20 Jan 2022 pre-release

    Nothing published for this version

  39. 0.10.1 17 Jan 2022
    Release notes

    Added

    • Impl ff::Field trait for FieldElement (#498)
    • hash2curve support: impl GroupDigest trait for NistP256 (#503)
    • Impl VoprfParameters trait for NistP256 (#506)
    • Impl ReduceNonZero<U256> trait for Scalar (#507)
    • IDENTITY and GENERATOR point constants (#509, #511)
    Open source →
  40. 0.10.0 14 Dec 2021
    Release notes

    Added

    • Implement point compaction support (#357)
    • Implement Scalar::sqrt (#392)
    • Impl DefaultIsZeroes for ProjectivePoint (#414)
    • Impl PrimeCurveArithmetic (#415)
    • Impl Reduce<U256> for Scalar (#436)
    • serde feature (#463, #465)
    • Impl LinearCombination trait (#476)

    Changed

    • 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)
    • Leverage generic ECDSA implementation from ecdsa crate ([#462])
    • Bump elliptic-curve crate dependency to v0.11 (#466)
    • Bump ecdsa crate dependency to v0.13 (#467)

    Fixed

    • ProjectivePoint::to_bytes() encoding for identity (#443)
    • Handle identity point in GroupEncoding (#446)
    Open source →
  41. 0.10.0-pre.1 22 Nov 2021 pre-release

    Nothing published for this version

  42. 0.9.0 08 Jun 2021
    Release notes

    Added

    • 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 →
  43. 0.8.1 10 May 2021
    Release notes

    Fixed

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

    Added

    • jwk feature (#279)
    • Wycheproof ECDSA P-256 test vectors (#313)
    • 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 →
  45. 0.8.0-pre.1 22 Mar 2021 pre-release

    Nothing published for this version

  46. 0.8.0-pre 11 Feb 2021 pre-release withdrawn

    Nothing published for this version

  47. 0.7.3 16 Apr 2021
    Release notes

    Changed

    • Make ecdsa a default feature (#325)
    Open source →
  48. 0.7.2 13 Jan 2021
    Release notes

    Changed

    • Have std feature activate ecdsa-core/std (#273)
    Open source →
  49. 0.7.1 17 Dec 2020
    Release notes

    Fixed

    Open source →
  50. 0.7.0 17 Dec 2020
    Release notes

    Changed

    • Bump elliptic-curve dependency to v0.8 (#260)
    • Bump ecdsa to v0.10 (#260)
    Open source →
  51. 0.6.0 06 Dec 2020
    Release notes

    Added

    Changed

    • Bump elliptic-curve crate dependency to v0.7; MSRV 1.46+ (#247)
    • Bump ecdsa crate dependency to v0.9 (#247)
    Open source →
  52. 0.5.2 08 Oct 2020
    Release notes

    Fixed

    • Regenerate rustdoc on https://docs.rs after nightly breakage
    Open source →
  53. 0.5.1 08 Oct 2020
    Release notes

    Added

    • SecretValue impl when arithmetic feature is disabled (#222)
    Open source →
  54. 0.5.0 18 Sep 2020
    Release notes

    Added

    • ecdsa::Asn1Signature type alias (#186)
    • ff and group crate dependencies; MSRV 1.44+ (#169, #174)
    • AffinePoint::identity() and ::is_identity() (#167)

    Changed

    • Bump elliptic-curve crate to v0.6; ecdsa to v0.8 (#180)
    • Refactor ProjectiveArithmetic trait (#179)
    • Support generic inner type for elliptic_curve::SecretKey<C> (#177)
    • Rename ElementBytes => FieldBytes (#176)
    • Rename ecdsa::{Signer, Verifier} => ::{SigningKey, VerifyKey} (#153)
    • Rename Curve::ElementSize => FieldSize (#150)
    • Implement RFC6979 deterministic ECDSA (#146, #147)
    • Rename PublicKey to EncodedPoint (#141)

    Removed

    • rand feature (#162)
    Open source →
  55. 0.5.0-rc 11 Sep 2020 pre-release

    Nothing published for this version

  56. 0.4.1 12 Aug 2020
    Release notes

    Fixed

    • Builds with either ecdsa-core or sha256 in isolation (#133)
    Open source →
  57. 0.4.0 11 Aug 2020
    Release notes

    Added

    Changed

    • Bump elliptic-curve crate dependency to v0.5 (#126)
    Open source →
  58. 0.3.0 08 Jun 2020
    Release notes

    Changed

    • Bump elliptic-curve crate dependency to v0.4 (#39)
    Open source →
  59. 0.2.0 01 May 2020
    Release notes

    Added

    • Constant time scalar multiplication (#18)
    • Group operation (#15)
    Open source →
  60. 0.1.0 06 Jan 2020
    Release notes
    • Initial release
    Open source →

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