Skip to content

Commit ab8ee23

Browse files
authored
elliptic-curve v0.14.0 (#2466)
## 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 `Scalar`s (#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)
1 parent 0eca685 commit ab8ee23

5 files changed

Lines changed: 130 additions & 7 deletions

File tree

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

elliptic-curve/CHANGELOG.md

Lines changed: 127 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,140 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7-
## 0.14.0 (UNRELEASED)
8-
### Changed
7+
## 0.14.0 (2026-06-23)
8+
### Added
9+
- Implement `PartialEq + Eq` for `NonIdentity` and `NonZeroScalar` ([#1834])
10+
- Implement `Zeroize` for `NonIdentity` ([#1832])
11+
- `NonIdentity::mul_by_generator()` ([#1833])
12+
- Implement `Mul<&NonZeroScalar>` for `NonIdentity` ([#1852])
13+
- Implement `Mul<NonIdentity>` for `NonZeroScalar` ([#1855])
14+
- Expose `AffineCoordinates::y` ([#1891])
15+
- Scalar macros originally from `primeorder` ([#1894])
16+
- Implement `BatchNormalize` for `NonIdentity` ([#1896])
17+
- Re-export `group::Curve` as `CurveGroup` ([#1902])
18+
- `NonIdentity`/`NonZeroScalar` casting methods ([#1903])
19+
- `AffineCoordinates::from_coordinates` ([#1996])
20+
- `getrandom` feature ([#2085])
21+
- `ctutils` traits to `arithmetic` bounds ([#2166])
22+
- `Retrieve` bound for `C::Scalar` ([#2169])
23+
- `crypto_common::Generate` support ([#2173], [#2208])
24+
- Implement `crypto_common::TryKeyInit` for `SecretKey<C>` ([#2174])
25+
- `dev::bench_projective!` macro ([#2177])
26+
- Provide `Sec1Point::from/to_sec1_bytes` ([#2221])
27+
- Implement `From<SecretKey<C>>` for `PublicKey<C>` ([#2247])
28+
- `SecretKey::diffie_hellman` ([#2248])
29+
- `LinearCombination::lincomb_vartime` method ([#2286])
30+
- `ops::MulVartime` trait and bound `Scalar` ([#2379])
31+
- `ops::MulByGeneratorVartime` trait ([#2381])
32+
- `SecretKey::from_pem` ([#2387])
33+
- `SecretKey::from_der` ([#2408])
34+
- `hazmat` module with `FieldArithmetic` trait ([#2458])
35+
- `Double::double_in_place` ([#2464])
36+
37+
### Changed
38+
- Migrate from `generic-array` to `hybrid-array` ([#1462])
39+
- Rename `LinearCombinationExt` => `LinearCombination`; replacing old trait ([#1501])
940
- Edition changed to 2024 and MSRV bumped to 1.85 ([#1759])
41+
- Make `SecretKey::new` fallible ([#1804])
42+
- Replace `ops::Invert` trait with `crypto_bigint::Invert` ([#1839])
43+
- Rename `SecretKey::new` => `::from_scalar` ([#1893])
44+
- Replace `Reduce` trait with `crypto_bigint::Reduce` ([#1949])
45+
- Bump `serdect` dependency to v0.4 ([#1978])
46+
- Use `crypto_bigint::Odd` to represent `Curve::ORDER` ([#2006])
47+
- Bound `Curve::Uint` on `Unsigned` ([#2007])
48+
- Rename `ScalarPrimitive` => `ScalarValue` ([#2008])
1049
- Accept mixed-case hex-encoded strings in `FromStr` impl for `ScalarValue` ([#2037])
50+
- Deprecate `SecretKey::random` ([#2086])
51+
- Move `MockCurve` to `dev::mock_curve` ([#2176])
1152
- Bump `rand_core` to v0.10 ([#2250])
53+
- Rename `EncodedPoint` => `Sec1Point` ([#2264])
54+
- Bump `crypto-bigint` to v0.7 ([#2330])
55+
- Bump `digest` to v0.11 ([#2331])
56+
- Bump `sec1` to v0.8 ([#2339])
57+
- Bump `hkdf` dependency to v0.13 ([#2349])
58+
- Use `*Vartime` as a suffix in names ([#2378])
59+
- Bump `pkcs8` to v0.11 ([#2397])
60+
- Bump `ff` and `group` to v0.14 ([#2430], [#2431])
61+
- Simplify `BatchInvert` trait ([#2455])
62+
- Replace `FieldBytesEncoding` trait with `C::FIELD_ENDIANNESS` constant ([#2457])
63+
- Move `Double` to `ops` ([#2465])
64+
65+
### Removed
66+
- `hazmat` feature ([#1599])
67+
- `hash2curve` and `oprf` modules: these are now their own crates ([#1929])
68+
- PKCS#8 blanket impls for SEC1 private key traits ([#1930])
69+
- `ShrAssign` bound on `Scalar`s ([#1938])
70+
- JWK support - migrated to `jose-jwk` crate ([#1963])
71+
- `weierstrass` module ([#2005])
72+
- `bits` feature ([#2417])
73+
74+
### Fixed
75+
- Include curve OID in SEC1 private keys ([#1707], [#1933])
1276

77+
[#1462]: https://github.com/RustCrypto/traits/pull/1462
78+
[#1501]: https://github.com/RustCrypto/traits/pull/1501
79+
[#1599]: https://github.com/RustCrypto/traits/pull/1599
80+
[#1707]: https://github.com/RustCrypto/traits/pull/1707
1381
[#1759]: https://github.com/RustCrypto/traits/pull/1759
82+
[#1804]: https://github.com/RustCrypto/traits/pull/1804
83+
[#1832]: https://github.com/RustCrypto/traits/pull/1832
84+
[#1833]: https://github.com/RustCrypto/traits/pull/1833
85+
[#1834]: https://github.com/RustCrypto/traits/pull/1834
86+
[#1839]: https://github.com/RustCrypto/traits/pull/1839
87+
[#1852]: https://github.com/RustCrypto/traits/pull/1852
88+
[#1855]: https://github.com/RustCrypto/traits/pull/1855
89+
[#1891]: https://github.com/RustCrypto/traits/pull/1891
90+
[#1893]: https://github.com/RustCrypto/traits/pull/1893
91+
[#1894]: https://github.com/RustCrypto/traits/pull/1894
92+
[#1896]: https://github.com/RustCrypto/traits/pull/1896
93+
[#1902]: https://github.com/RustCrypto/traits/pull/1902
94+
[#1903]: https://github.com/RustCrypto/traits/pull/1903
95+
[#1929]: https://github.com/RustCrypto/traits/pull/1929
96+
[#1930]: https://github.com/RustCrypto/traits/pull/1930
97+
[#1933]: https://github.com/RustCrypto/traits/pull/1933
98+
[#1938]: https://github.com/RustCrypto/traits/pull/1938
99+
[#1949]: https://github.com/RustCrypto/traits/pull/1949
100+
[#1963]: https://github.com/RustCrypto/traits/pull/1963
101+
[#1978]: https://github.com/RustCrypto/traits/pull/1978
102+
[#1996]: https://github.com/RustCrypto/traits/pull/1996
103+
[#2005]: https://github.com/RustCrypto/traits/pull/2005
104+
[#2006]: https://github.com/RustCrypto/traits/pull/2006
105+
[#2007]: https://github.com/RustCrypto/traits/pull/2007
106+
[#2008]: https://github.com/RustCrypto/traits/pull/2008
14107
[#2037]: https://github.com/RustCrypto/traits/pull/2037
108+
[#2085]: https://github.com/RustCrypto/traits/pull/2085
109+
[#2086]: https://github.com/RustCrypto/traits/pull/2086
110+
[#2166]: https://github.com/RustCrypto/traits/pull/2166
111+
[#2169]: https://github.com/RustCrypto/traits/pull/2169
112+
[#2173]: https://github.com/RustCrypto/traits/pull/2173
113+
[#2174]: https://github.com/RustCrypto/traits/pull/2174
114+
[#2176]: https://github.com/RustCrypto/traits/pull/2176
115+
[#2177]: https://github.com/RustCrypto/traits/pull/2177
116+
[#2208]: https://github.com/RustCrypto/traits/pull/2208
117+
[#2221]: https://github.com/RustCrypto/traits/pull/2221
118+
[#2247]: https://github.com/RustCrypto/traits/pull/2247
119+
[#2248]: https://github.com/RustCrypto/traits/pull/2248
15120
[#2250]: https://github.com/RustCrypto/traits/pull/2250
121+
[#2264]: https://github.com/RustCrypto/traits/pull/2264
122+
[#2286]: https://github.com/RustCrypto/traits/pull/2286
123+
[#2330]: https://github.com/RustCrypto/traits/pull/2330
124+
[#2331]: https://github.com/RustCrypto/traits/pull/2331
125+
[#2339]: https://github.com/RustCrypto/traits/pull/2339
126+
[#2349]: https://github.com/RustCrypto/traits/pull/2349
127+
[#2379]: https://github.com/RustCrypto/traits/pull/2379
128+
[#2381]: https://github.com/RustCrypto/traits/pull/2381
129+
[#2378]: https://github.com/RustCrypto/traits/pull/2378
130+
[#2387]: https://github.com/RustCrypto/traits/pull/2387
131+
[#2397]: https://github.com/RustCrypto/traits/pull/2397
132+
[#2408]: https://github.com/RustCrypto/traits/pull/2408
133+
[#2417]: https://github.com/RustCrypto/traits/pull/2417
134+
[#2430]: https://github.com/RustCrypto/traits/pull/2430
135+
[#2431]: https://github.com/RustCrypto/traits/pull/2431
136+
[#2455]: https://github.com/RustCrypto/traits/pull/2455
137+
[#2457]: https://github.com/RustCrypto/traits/pull/2457
138+
[#2458]: https://github.com/RustCrypto/traits/pull/2458
139+
[#2464]: https://github.com/RustCrypto/traits/pull/2464
140+
[#2465]: https://github.com/RustCrypto/traits/pull/2465
16141

17142
## 0.13.8 (2023-11-18)
18143
### Changed

elliptic-curve/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "elliptic-curve"
3-
version = "0.14.0-rc.36"
3+
version = "0.14.0"
44
authors = ["RustCrypto Developers"]
55
edition = "2024"
66
rust-version = "1.85"

elliptic-curve/LICENSE-MIT

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2020-2025 RustCrypto Developers
1+
Copyright (c) 2020-2026 RustCrypto Developers
22

33
Permission is hereby granted, free of charge, to any
44
person obtaining a copy of this software and associated

elliptic-curve/src/lib.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,6 @@
6161
#[allow(unused_imports)]
6262
#[macro_use]
6363
extern crate alloc;
64-
#[cfg(feature = "std")]
65-
extern crate std;
6664

6765
#[cfg(feature = "dev")]
6866
pub mod dev;

0 commit comments

Comments
 (0)