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 2026Releases
latest 60 of 87-
0.14.008 Jul 2026Release notes
Open source →Added
- Support for non-32-byte BIP340 signatures (#1041)
- Implement
From<NonZeroScalar>forScalar(#1188) - Implement
From<NonIdentity>forProjective/AffinePoint(#1190) - Implement
MultipartSigner/Verifier(#1221) - Support
hash2curvecrate (#[1286]) - Implement
FromUniformBytes<64>forScalar(#1379) - Implement
CofactorGroupforProjectivePoint(#1394) - Implement
AffineCoordinates::from_coordinates(#1405) getrandomfeature (#1521)- Conversions to/from
U256for field elements (#1552) - Implement
crypto_common::Generatetrait (#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
Reducetrait (#1359) - Update
Curve::ORDERto beOdd(#1416) - Factor apart Schnorr
from_bytes/from_slicemethods (#1429) - Use
crypto-bigintto implement inversions (#1554, #1573) - Bump
sha2dependency to v0.11 (#1712) - Variable-time scalar multiplication support (#1714, #1715, #1728, #1730, #1745, #1812, #1816, #1819, #1823, #1884)
- Bump
signaturedependency to v3 (#1756) - Bump
elliptic-curvedependency to v0.14 (#1849) - Bump
ecdsato v0.17 (#1883)
Removed
Fixed
-
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.917 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.120 Sep 2024 pre-releaseNothing published for this version
-
0.14.0-pre.005 Jun 2024 pre-releaseNothing published for this version
-
0.13.420 Sep 2024Nothing published for this version
-
0.13.308 Jan 2024 -
0.13.215 Nov 2023Release notes
Open source →Added
#[inline]annotations onconditional_select(#942)BatchInvertandBatchNormalizeimpls (#971)- Optimized implementation of
LinearCombinationExttrait (#974)
Changed
- Use generic signing implementation from
ecdsacrate (#911) - Simplify internal helper functions in the scalar arithmetic (#917)
- Bump
elliptic-curveto v0.13.7 (#979)
Fixed
-
0.13.110 Apr 2023 -
0.13.003 Mar 2023 -
0.12.016 Jan 2023Release notes
Open source →Added
allocfeature (#670)- Impl
FromOkmforScalar(#673) - Impl
Prehash*andKeypairReffor Schnorr keys (#689) schnorr::SigningKey::as_nonzero_scalar(#690)- Impl
From<NonZeroScalar>forschnorr::SigningKey(#703) - Impl
From<SecretKey>forschnorr::SigningKey(#704) precomputed-tablesfeature (#697, #705, #707)- Constructors for
Scalarfromu128(#709)
Changed
Removed
ecdsa::recoverablemodule; see documentation for replacements (#675)
-
0.12.0-pre.007 Nov 2022 pre-releaseNothing published for this version
-
0.11.627 Sep 2022Release notes
Open source →Added
ecdsa::recoverable::Signature::from_digest_bytes_trial_recovery(#660)
Changed
- Make
ProjectivePointequality andis_identityfaster (#650)
-
0.11.514 Sep 2022 -
0.11.413 Aug 2022Release notes
Open source → -
0.11.302 Jul 2022Release notes
Open source → -
0.11.224 May 2022 -
0.11.124 May 2022 -
0.11.009 May 2022Release notes
Open source →Changed
- Bump
digestto v0.10 (#515) - Make
AffinePointtoVerifyingKeyconversion fallible (#535) - Rename
recover_verify_key=>recover_verifying_key(#537) - Rename
recover_verify_key_from_digest=>recover_verifying_key_from_digest(#537) - Have
pkcs8feature activateecdsa/pkcs8(#538) - Bump
elliptic-curveto v0.12 (#544) - Bump
ecdsato v0.14 (#544)
Fixed
hash2curvecrate feature (#519)
- Bump
-
0.11.0-pre.020 Jan 2022 pre-releaseNothing published for this version
-
0.10.415 Mar 2022 -
0.10.314 Mar 2022Release notes
Open source →Fixed
- Do not normalize the argument in
FieldElementImpl::is_odd()(#530)
- Do not normalize the argument in
-
0.10.217 Jan 2022 -
0.10.105 Jan 2022Release notes
Open source → -
0.10.014 Dec 2021Release notes
Open source →Added
- Implement
Scalar::sqrt(#400) - Impl
PrimeCurveArithmetic(#415) - Impl
Reduce<U256>forScalar(#436) - Impl
Dropforecdsa::SigningKey(#449) serdefeature (#463, #464)- Impl
Reduce<U512>forScalar(#472) - Impl
ReduceNonZero<U512>forScalar(#474) - Impl
LinearCombinationtrait (#476)
Changed
- Make
ecdsa::Signature::normalize_snon-mutating (#405) - Use
PrimeCurvetrait (#413) - Use
sec1crate forEncodedPointtype (#435) - Replace
ecdsa::hazmat::FromDigestwithReduce(#438) - Make
FromEncodedPointreturn aCtOption(#445) - Rust 2021 edition upgrade; MSRV 1.56+ (#453)
- Bump
elliptic-curvecrate dependency to v0.11 (#466) - Bump
ecdsacrate dependency to v0.13 (#467)
Fixed
- Handle identity point in
GroupEncoding(#446)
Removed
- Implement
-
0.10.0-pre.122 Nov 2021 pre-releaseNothing published for this version
-
0.9.622 Jul 2021 -
0.9.518 Jul 2021 -
0.9.423 Jun 2021 -
0.9.322 Jun 2021 -
0.9.214 Jun 2021 withdrawn -
0.9.109 Jun 2021 withdrawn -
0.9.008 Jun 2021 withdrawn -
0.8.110 May 2021 -
0.8.029 Apr 2021 -
0.8.0-pre.122 Mar 2021 pre-releaseNothing published for this version