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 2026Releases
latest 60 of 61-
0.14.003 Jul 2026Release notes
Open source →Added
hash2curveimplementation (#964)BatchInvertimplementation (#971)EcdsaCurvetrait impls (#1019)- Implement
From<NonZeroScalar>forScalar(#1188) - Implement
TryFrom<Scalar>forNonZeroScalar(#1193) getrandomfeature (#1521)- Implement
crypto_common::Generatetrait (#1586) precomputed-tablesfeature (#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
U256forMODULUSofFieldElement(#1153) - Have
FieldElement::to_canonicalreturnU256(#1154) - Use
primefieldforFieldElementboilerplate (#1179, #1180) - Update to
elliptic-curvev0.14 (#1849) - Use
crypto-bigintto implement inversions (#1549, #1578) - Bump
sha2dependency to v0.11 (#1712) - Bump
elliptic-curvedependency to v0.14 (#1849) - Bump
ecdsato v0.17 (#1883) - Bump
primeorderto v0.14 (#1887)
Removed
Release notes
Open source →Added
hash2curveimplementation (#964)BatchInvertimplementation (#971)EcdsaCurvetrait impls (#1019)- Implement
From<NonZeroScalar>forScalar(#1188) - Implement
TryFrom<Scalar>forNonZeroScalar(#1193) getrandomfeature (#1521)- Implement
crypto_common::Generatetrait (#1586) basepoint-tablefeature (#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
U256forMODULUSofFieldElement(#1153) - Have
FieldElement::to_canonicalreturnU256(#1154) - Use
primefieldforFieldElementboilerplate (#1179, #1180) - Update to
elliptic-curvev0.14 (#1849) - Use
crypto-bigintto implement inversions (#1549, #1578) - Bump
sha2dependency to v0.11 (#1712) - Bump
elliptic-curvedependency to v0.14 (#1849) - Bump
ecdsato v0.17 (#1883) - Bump
primeorderto v0.14 (#1887)
Removed
-
0.14.0-rc.1529 Jun 2026 pre-releaseNothing published for this version
-
0.14.0-rc.1424 Jun 2026 pre-releaseNothing published for this version
-
0.14.0-rc.1323 Jun 2026 pre-releaseNothing published for this version
-
0.14.0-rc.1217 Jun 2026 pre-releaseNothing published for this version
-
0.14.0-rc.1110 Jun 2026 pre-releaseNothing published for this version
-
0.14.0-rc.1004 Jun 2026 pre-releaseNothing published for this version
-
0.14.0-rc.919 Apr 2026 pre-releaseNothing published for this version
-
0.14.0-rc.810 Mar 2026 pre-releaseNothing published for this version
-
0.14.0-rc.703 Feb 2026 pre-releaseNothing published for this version
-
0.14.0-rc.624 Jan 2026 pre-releaseNothing published for this version
-
0.14.0-rc.521 Jan 2026 pre-releaseNothing published for this version
-
0.14.0-rc.408 Jan 2026 pre-releaseNothing published for this version
-
0.14.0-rc.304 Jan 2026 pre-releaseNothing published for this version
-
0.14.0-rc.230 Dec 2025 pre-releaseNothing published for this version
-
0.14.0-rc.125 Nov 2025 pre-releaseNothing published for this version
-
0.14.0-rc.023 Oct 2025 pre-releaseNothing published for this version
-
0.14.0-pre.1114 Sep 2025 pre-releaseNothing published for this version
-
0.14.0-pre.1003 Sep 2025 pre-releaseNothing published for this version
-
0.14.0-pre.910 Jul 2025 pre-releaseNothing published for this version
-
0.14.0-pre.821 Jun 2025 pre-releaseNothing published for this version
-
0.14.0-pre.714 Jun 2025 pre-releaseNothing published for this version
-
0.14.0-pre.614 Jun 2025 pre-releaseNothing published for this version
-
0.14.0-pre.507 Jun 2025 pre-releaseNothing published for this version
-
0.14.0-pre.431 May 2025 pre-releaseNothing published for this version
-
0.14.0-pre.329 May 2025 pre-releaseNothing published for this version
-
0.14.0-pre.222 Sep 2024 pre-releaseNothing published for this version
-
0.14.0-pre.127 Jul 2024 pre-releaseNothing published for this version
-
0.14.0-pre.019 Jan 2024 pre-releaseNothing published for this version
-
0.13.215 Apr 2023Release notes
Open source →Changed
- Enable
pemfeature by default (#832)
Fixed
- Have
serdefeature enableprimeorder/serde(#851)
- Enable
-
0.13.110 Apr 2023Release notes
Open source →Changed
- Bump
primeorderto v0.13.1 (#819)
Fixed
- Correct product definition for empty iterators (#802)
- Bump
-
0.13.003 Mar 2023Release notes
Open source →Added
Changed
FieldBytesEncodingtrait impls (#732)- Update
hash2curveimplementations to new API (#735) - Impl
Inverttrait forScalartypes (#741) - Bump
ecdsadependency to v0.16 (#770) - Bump
elliptic-curvedependency to v0.13 (#770) - Bump
primeorderdependency to v0.13 (#777)
Fixed
- Point compactabtility check (#772)
-
0.12.016 Jan 2023 -
0.12.0-pre.129 Dec 2022 pre-releaseNothing published for this version
-
0.12.0-pre.007 Nov 2022 pre-releaseNothing published for this version
-
0.11.112 Jun 2022 -
0.11.009 May 2022 -
0.11.0-pre.020 Jan 2022 pre-releaseNothing published for this version
-
0.10.117 Jan 2022 -
0.10.014 Dec 2021Release notes
Open source →Added
- Implement point compaction support (#357)
- Implement
Scalar::sqrt(#392) - Impl
DefaultIsZeroesforProjectivePoint(#414) - Impl
PrimeCurveArithmetic(#415) - Impl
Reduce<U256>forScalar(#436) serdefeature (#463, #465)- Impl
LinearCombinationtrait (#476)
Changed
- Use
PrimeCurvetrait (#413) - Use
sec1crate forEncodedPointtype (#435) - Replace
ecdsa::hazmat::FromDigestwithReduce(#438) - Make
FromEncodedPointreturn aCtOption(#445) - Rust 2021 edition upgrade; MSRV 1.56+ (#453)
- Leverage generic ECDSA implementation from
ecdsacrate ([#462]) - Bump
elliptic-curvecrate dependency to v0.11 (#466) - Bump
ecdsacrate dependency to v0.13 (#467)
Fixed
-
0.10.0-pre.122 Nov 2021 pre-releaseNothing published for this version
-
0.9.008 Jun 2021 -
0.8.110 May 2021 -
0.8.029 Apr 2021 -
0.8.0-pre.122 Mar 2021 pre-releaseNothing published for this version
-
0.8.0-pre11 Feb 2021 pre-release withdrawnNothing published for this version
-
0.7.316 Apr 2021 -
0.7.213 Jan 2021 -
0.7.117 Dec 2020Release notes
Open source →Fixed
- Trigger docs.rs rebuild with nightly bugfix (RustCrypto/traits#412)
-
0.7.017 Dec 2020Release notes
Open source → -
0.6.006 Dec 2020 -
0.5.208 Oct 2020 -
0.5.108 Oct 2020 -
0.5.018 Sep 2020Release notes
Open source →Added
ecdsa::Asn1Signaturetype alias (#186)ffandgroupcrate dependencies; MSRV 1.44+ (#169, #174)AffinePoint::identity()and::is_identity()(#167)
Changed
- Bump
elliptic-curvecrate to v0.6;ecdsato 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
PublicKeytoEncodedPoint(#141)
Removed
randfeature (#162)
-
0.5.0-rc11 Sep 2020 pre-releaseNothing published for this version
-
0.4.112 Aug 2020 -
0.4.011 Aug 2020 -
0.3.008 Jun 2020 -
0.2.001 May 2020 -
0.1.006 Jan 2020