PackageTrack
Sign in Get early access

elliptic-curve

General purpose Elliptic Curve Cryptography (ECC) support, including traits and generic types for representing various elliptic curve forms, scalars, points, and public/secret keys composed thereof.

0.14.1 210M downloads/mo #486 most downloaded on crates.io RustCrypto/traits

What this package is like to depend on

Last release 1 months ago

29 Jun 2026

Ships fairly regularly

a new release about every 3 weeks

Nearly every release is documented

notes for 36 of 36 stable releases

33 versions withdrawn

withdrawn after publishing

7 years old

126 releases · first in 2019

26 releases in the last 12 months

see the full history below

Release timeline

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

Releases

latest 60 of 126
  1. 0.14.1 29 Jun 2026
    Release notes

    Added

    • BatchInvert::batch_invert_in_place_vartime (#2468)
    • BatchNormalize::batch_normalize_vartime (#2468)
    Open source →
    Release notes

    Added

    • BatchInvert::batch_invert_in_place_vartime (#2468)
    • BatchNormalize::batch_normalize_vartime (#2468)
    Open source →
  2. 0.14.0 23 Jun 2026
    Release notes

    Added

    • Implement PartialEq + Eq for NonIdentity and NonZeroScalar (#1834)
    • Implement Zeroize for NonIdentity (#1832)
    • NonIdentity::mul_by_generator() (#1833)
    • Implement Mul<&NonZeroScalar> for NonIdentity (#1852)
    • Implement Mul<NonIdentity> for NonZeroScalar (#1855)
    • Expose AffineCoordinates::y (#1891)
    • Scalar macros originall from primeorder (#1894)
    • Implement BatchNormalize for NonIdentity (#1896)
    • Re-export group::Curve as CurveGroup (#1902)
    • NonIdentity/NonZeroScalar casting methods (#1903)
    • AffineCoordinates::from_coordinates (#1996)
    • getrandom feature (#2085)
    • ctutils traits to arithmetic bounds (#2166)
    • Retrieve bound for C::Scalar (#2169)
    • crypto_common::Generate support (#2173, #2208)
    • Implement crypto_common::TryKeyInit for SecretKey<C> (#2174)
    • dev::bench_projective! macro (#2177)
    • Provide Sec1Point::from/to_sec1_bytes (#2221)
    • Implement From<SecretKey<C>> for PublicKey<C> (#2247)
    • SecretKey::diffie_hellman (#2248)
    • LinearCombination::lincomb_vartime method (#2286)
    • ops::MulVartime trait and bound Scalar (#2379)
    • ops::MulByGeneratorVartime trait ([#2381])
    • SecretKey::from_pem (#2387)
    • SecretKey::from_der (#2408)
    • hazmat module with FieldArithmetic trait (#2458)
    • Double::double_in_place (#2464)

    Changed

    • Migrate from generic-array to hybrid-array (#1462)
    • Rename LinearCombinationExt => LinearCombination; replacing old
      trait (#1501)
    • Edition changed to 2024 and MSRV bumped to 1.85 (#1759)
    • Make SecretKey::new fallible (#1804)
    • Replace ops::Invert trait with crypto_bigint::Invert (#1839)
    • Rename SecretKey::new => ::from_scalar (#1893)
    • Replace Reduce trait with crypto_bigint::Reduce (#1949)
    • Bump serdect dependency to v0.4 (#1978)
    • Use crypto_bigint::Odd to represent Curve::ORDER (#2006)
    • Bound Curve::Uint on Unsigned (#2007)
    • Rename ScalarPrimitive => ScalarValue (#2008)
    • Accept mixed-case hex-encoded strings in FromStr impl for
      ScalarValue (#2037)
    • Deprecate SecretKey::random (#2086)
    • Move MockCurve to dev::mock_curve (#2176)
    • Bump rand_core to v0.10 (#2250)
    • Rename EncodedPoint => Sec1Point (#2264)
    • Bump crypto-bigint to v0.7 (#2330)
    • Bump digest to v0.11 (#2331)
    • Bump sec1 to v0.8 (#2339)
    • Bump hkdf dependency to v0.13 (#2349)
    • Use *Vartime as a suffix in names (#2378)
    • Bump pkcs8 to v0.11 (#2397)
    • Bump ff and group to v0.14 (#2430, #2431)
    • Simplify BatchInvert trait (#2455)
    • Replace FieldBytesEncoding trait with C::FIELD_ENDIANNESS (#2457)
    • Move Double to ops module (#2465)

    Removed

    • hazmat feature (#1599)
    • hash2curve and oprf modules: moved to same-name crates (#1929)
    • PKCS#8 blanket impls for SEC1 private key traits (#1930)
    • ShrAssign bound on Scalars (#1938)
    • JWK support: migrated to jose-jwk crate (#1963)
    • weierstrass module (#2005)
    • bits feature (#2417)

    Fixed

    • Include curve OID in SEC1 private keys (#1707, #1933)
    Open source →
    Release notes

    Added

    • Implement PartialEq + Eq for NonIdentity and NonZeroScalar (#1834)
    • Implement Zeroize for NonIdentity (#1832)
    • NonIdentity::mul_by_generator() (#1833)
    • Implement Mul<&NonZeroScalar> for NonIdentity (#1852)
    • Implement Mul<NonIdentity> for NonZeroScalar (#1855)
    • Expose AffineCoordinates::y (#1891)
    • Scalar macros originally from primeorder (#1894)
    • Implement BatchNormalize for NonIdentity (#1896)
    • Re-export group::Curve as CurveGroup (#1902)
    • NonIdentity/NonZeroScalar casting methods (#1903)
    • AffineCoordinates::from_coordinates (#1996)
    • getrandom feature (#2085)
    • ctutils traits to arithmetic bounds (#2166)
    • Retrieve bound for C::Scalar (#2169)
    • crypto_common::Generate support (#2173, #2208)
    • Implement crypto_common::TryKeyInit for SecretKey<C> (#2174)
    • dev::bench_projective! macro (#2177)
    • Provide Sec1Point::from/to_sec1_bytes (#2221)
    • Implement From<SecretKey<C>> for PublicKey<C> (#2247)
    • SecretKey::diffie_hellman (#2248)
    • LinearCombination::lincomb_vartime method (#2286)
    • ops::MulVartime trait and bound Scalar (#2379)
    • ops::MulByGeneratorVartime trait (#2381)
    • SecretKey::from_pem (#2387)
    • SecretKey::from_der (#2408)
    • hazmat module with FieldArithmetic trait (#2458)
    • Double::double_in_place (#2464)

    Changed

    • Migrate from generic-array to hybrid-array (#1462)
    • Rename LinearCombinationExt => LinearCombination; replacing old trait (#1501)
    • Edition changed to 2024 and MSRV bumped to 1.85 (#1759)
    • Make SecretKey::new fallible (#1804)
    • Replace ops::Invert trait with crypto_bigint::Invert (#1839)
    • Rename SecretKey::new => ::from_scalar (#1893)
    • Replace Reduce trait with crypto_bigint::Reduce (#1949)
    • Bump serdect dependency to v0.4 (#1978)
    • Use crypto_bigint::Odd to represent Curve::ORDER (#2006)
    • Bound Curve::Uint on Unsigned (#2007)
    • Rename ScalarPrimitive => ScalarValue (#2008)
    • Accept mixed-case hex-encoded strings in FromStr impl for ScalarValue (#2037)
    • Deprecate SecretKey::random (#2086)
    • Move MockCurve to dev::mock_curve (#2176)
    • Bump rand_core to v0.10 (#2250)
    • Rename EncodedPoint => Sec1Point (#2264)
    • Bump crypto-bigint to v0.7 (#2330)
    • Bump digest to v0.11 (#2331)
    • Bump sec1 to v0.8 (#2339)
    • Bump hkdf dependency to v0.13 (#2349)
    • Use *Vartime as a suffix in names (#2378)
    • Bump pkcs8 to v0.11 (#2397)
    • Bump ff and group to v0.14 (#2430, #2431)
    • Simplify BatchInvert trait (#2455)
    • Replace FieldBytesEncoding trait with C::FIELD_ENDIANNESS constant (#2457)
    • Move Double to ops (#2465)

    Removed

    • hazmat feature (#1599)
    • hash2curve and oprf modules: these are now their own crates (#1929)
    • PKCS#8 blanket impls for SEC1 private key traits (#1930)
    • ShrAssign bound on Scalars (#1938)
    • JWK support - migrated to jose-jwk crate (#1963)
    • weierstrass module (#2005)
    • bits feature (#2417)

    Fixed

    • Include curve OID in SEC1 private keys (#1707, #1933)
    Open source →
  3. 0.14.0-rc.36 22 Jun 2026 pre-release
    Release notes

    May it be the one that is truly a "release candidate", after thirty some
    other failed attempts

    Open source →
  4. 0.14.0-rc.35 17 Jun 2026 pre-release
    Release notes

    This removes the basepoint-table and wnaf features, shrinking the
    API surface, and ideally getting us to a true release candidate (I'd
    hope so after 35 "release candidates"!)

    Open source →
  5. 0.14.0-rc.34 10 Jun 2026 pre-release
    Release notes

    This release uses the w-NAF implementation from the wnaf crate

    Open source →
  6. 0.14.0-rc.33 04 Jun 2026 pre-release
    Release notes

    This includes updates to upstream ff and group v0.14.0

    Open source →
  7. 0.14.0-rc.32 28 Apr 2026 pre-release

    Nothing published for this version

  8. 0.14.0-rc.31 15 Apr 2026 pre-release

    Nothing published for this version

  9. 0.14.0-rc.30 08 Apr 2026 pre-release

    Nothing published for this version

  10. 0.14.0-rc.29 10 Mar 2026 pre-release

    Nothing published for this version

  11. 0.14.0-rc.28 02 Feb 2026 pre-release

    Nothing published for this version

  12. 0.14.0-rc.27 02 Feb 2026 pre-release

    Nothing published for this version

  13. 0.14.0-rc.26 01 Feb 2026 pre-release

    Nothing published for this version

  14. 0.14.0-rc.25 31 Jan 2026 pre-release

    Nothing published for this version

  15. 0.14.0-rc.24 24 Jan 2026 pre-release

    Nothing published for this version

  16. 0.14.0-rc.23 20 Jan 2026 pre-release

    Nothing published for this version

  17. 0.14.0-rc.22 20 Jan 2026 pre-release

    Nothing published for this version

  18. 0.14.0-rc.21 08 Jan 2026 pre-release

    Nothing published for this version

  19. 0.14.0-rc.20 05 Jan 2026 pre-release

    Nothing published for this version

  20. 0.14.0-rc.19 04 Jan 2026 pre-release

    Nothing published for this version

  21. 0.14.0-rc.18 29 Dec 2025 pre-release

    Nothing published for this version

  22. 0.14.0-rc.17 22 Nov 2025 pre-release

    Nothing published for this version

  23. 0.14.0-rc.16 20 Oct 2025 pre-release

    Nothing published for this version

  24. 0.14.0-rc.15 29 Sep 2025 pre-release

    Nothing published for this version

  25. 0.14.0-rc.14 13 Sep 2025 pre-release

    Nothing published for this version

  26. 0.14.0-rc.13 03 Sep 2025 pre-release

    Nothing published for this version

  27. 0.14.0-rc.12 06 Aug 2025 pre-release

    Nothing published for this version

  28. 0.14.0-rc.11 05 Aug 2025 pre-release

    Nothing published for this version

  29. 0.14.0-rc.10 10 Jul 2025 pre-release

    Nothing published for this version

  30. 0.14.0-rc.9 10 Jul 2025 pre-release

    Nothing published for this version

  31. 0.14.0-rc.8 03 Jul 2025 pre-release

    Nothing published for this version

  32. 0.14.0-rc.7 16 Jun 2025 pre-release

    Nothing published for this version

  33. 0.14.0-rc.6 14 Jun 2025 pre-release

    Nothing published for this version

  34. 0.14.0-rc.5 07 Jun 2025 pre-release

    Nothing published for this version

  35. 0.14.0-rc.4 05 Jun 2025 pre-release

    Nothing published for this version

  36. 0.14.0-rc.3 31 May 2025 pre-release

    Nothing published for this version

  37. 0.14.0-rc.2 29 May 2025 pre-release

    Nothing published for this version

  38. 0.14.0-rc.1 20 Sep 2024 pre-release

    Nothing published for this version

  39. 0.14.0-rc.0 06 Sep 2024 pre-release

    Nothing published for this version

  40. 0.14.0-pre.6 26 Jul 2024 pre-release

    Nothing published for this version

  41. 0.14.0-pre.5 02 Feb 2024 pre-release

    Nothing published for this version

  42. 0.14.0-pre.4 01 Feb 2024 pre-release

    Nothing published for this version

  43. 0.14.0-pre.3 17 Jan 2024 pre-release

    Nothing published for this version

  44. 0.14.0-pre.2 11 Jan 2024 pre-release

    Nothing published for this version

  45. 0.14.0-pre.1 10 Jan 2024 pre-release

    Nothing published for this version

  46. 0.14.0-pre.0 09 Jan 2024 pre-release

    Nothing published for this version

  47. 0.13.8 19 Nov 2023
    Release notes

    Changed

    • SecretKey::from_slice now allows >=24-bytes (#1412)
    Open source →
  48. 0.13.7 15 Nov 2023
    Release notes

    Added

    • BatchInvert and BatchNormalize traits (#1376)
    • LinearCombinationExt trait (#1405)
    Open source →
  49. 0.13.6 02 Oct 2023
    Release notes

    Fixed

    • Minimum supported hkdf version is v0.12.1 (#1353)
    • Minimum supported serde_json version for jwk feature is v1.0.47 (#1354)
    • Minimum supported tap version for bits feature is v1.0.1 (#1355)
    Open source →
  50. 0.13.5 19 May 2023 withdrawn
    Release notes

    Changed

    • Faster PublicKey::from_encoded_point (#1310)

    Fixed

    • alloc+arithmetic features w/o sec1 feature (#1301)
    Open source →
  51. 0.13.4 09 Apr 2023 withdrawn
    Release notes

    Changed

    • Bump hex-literal to v0.4 (#1295)

    Fixed

    • NonZeroScalar::from_slice (#1296)
    • ScalarPrimitive::from_slice (#1296)
    Open source →
  52. 0.13.3 05 Apr 2023 withdrawn
    Release notes

    Added

    • Impl AssociatedAlgorithmIdentifier for SecretKey and PublicKey (#1286)

    Changed

    • Update OSSWU code (#1157)
    • Bump pkcs8 to v0.10.2 (#1291)

    Fixed

    • FieldBytesEncoding provided impl (#1287)
    Open source →
  53. 0.13.2 08 Mar 2023 withdrawn
    Release notes

    Added

    • Weakly activate pkcs8?/std (#1263)
    • More PublicKey <-> SEC1 conversions (#1272)
    Open source →
  54. 0.13.1 01 Mar 2023 withdrawn
    Release notes

    Added

    • SecretKey::from_slice short input support (#1256)
    Open source →
  55. 0.13.0 01 Mar 2023 withdrawn
    Release notes

    Added

    • PublicKey::to_sec1_bytes (#1102)
    • Forward std feature to sec1 dependency (#1131)
    • NonIdentity wrapper type (#1176)
    • Impl serde traits for NonZeroScalar (#1178)
    • MulByGenerator trait (#1198)
    • NonZeroScalar::invert_vartime (#1207)
    • BlindedScalar type (#1208)
    • point::Double trait (#1218)
    • FieldBytesEncoding trait (#1235)
    • Invert::invert_vartime (#1239)

    Changed

    • Allow bigger c1 constant in OsswuMapParams (#1024)
    • Rename Curve::UInt => Curve::Uint (#1191)
    • Use weak feature activation (#1192, #1194)
    • Consolidate CurveArithmetic trait (#1196)
    • Rename SecretKey::to_pem => ::to_sec1_pem (#1202)
    • Rename ScalarCore to ScalarPrimitive (#1203)
    • Use CryptoRngCore trait (#1206)
    • Refactor field element decoding/encoding (#1220)
    • Update VOPRF identifier type (#1175)
    • Rename SecretKey::as_scalar_core => ::as_scalar_primitive (#1228)
    • Rename Reduce::from_bytes_reduced => ::reduce_bytes (#1225, #1229)
    • Consolidate AffineCoordinates trait (#1237)
    • Allow multiple dsts in the hash2curve API (#1238)
    • Have serde feature activate pkcs8 (#1245)
    • Dependency upgrades:

    Removed

    • impl_field_element! macro (#1165)
    • Direct der crate dependency (#1195)
    • AffineArithmetic, ProjectiveArithmetic, ScalarArithmetic traits (#1196)
    • Toplevel re-exports except for AffinePoint, ProjectivePoint, and Scalar (#1223)
    • Reduce methods (#1225)
    • Blanket impl for Invert (#1242)
    Open source →
  56. 0.13.0-rc.0 28 Feb 2023 pre-release

    Nothing published for this version

  57. 0.13.0-pre.5 03 Feb 2023 pre-release

    Nothing published for this version

  58. 0.13.0-pre.4 03 Feb 2023 pre-release

    Nothing published for this version

  59. 0.13.0-pre.3 01 Feb 2023 pre-release

    Nothing published for this version

  60. 0.13.0-pre.2 31 Jan 2023 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