1# Changelog 2All notable changes to this project will be documented in this file. 3 4The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 5and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 6 7## 0.8.5 (2021-02-17) 8### Fixed 9- Workaround for bitvecto-rs/bitvec#105 ([#553]) 10 11## 0.8.4 (2020-12-23) 12### Fixed 13- Rust `nightly` regression ([#432]) 14 15[#432]: https://github.com/RustCrypto/traits/pull/432 16 17## 0.8.3 (2020-12-22) 18### Fixed 19- Regression in combination of `pem`+`zeroize` features ([#429]) 20 21[#429]: https://github.com/RustCrypto/traits/pull/429 22 23## 0.8.2 (2020-12-22) [YANKED] 24### Added 25- Low-level ECDH API ([#418]) 26- `dev` module ([#419]) 27- Impl `pkcs8::ToPrivateKey` for `SecretKey<C>` ([#423]) 28- Impl `pkcs8::ToPublicKey` for `PublicKey<C>` ([#427]) 29 30### Changed 31- Bump `subtle` dependency to 2.4.0 ([#414]) 32- Bump `pkcs8` dependency to v0.3.3 ([#425]) 33- Use `der` crate to parse `SecretKey` ([#422]) 34 35### Fixed 36- Make `PublicKey::from_encoded_point` go through `PublicKey::from_affine` ([#416]) 37 38[#414]: https://github.com/RustCrypto/traits/pull/414 39[#416]: https://github.com/RustCrypto/traits/pull/416 40[#418]: https://github.com/RustCrypto/traits/pull/418 41[#419]: https://github.com/RustCrypto/traits/pull/419 42[#422]: https://github.com/RustCrypto/traits/pull/422 43[#423]: https://github.com/RustCrypto/traits/pull/423 44[#425]: https://github.com/RustCrypto/traits/pull/425 45[#427]: https://github.com/RustCrypto/traits/pull/427 46 47## 0.8.1 (2020-12-16) [YANKED] 48### Fixed 49- Builds on Rust `nightly` compiler ([#412]) 50 51[#412]: https://github.com/RustCrypto/traits/pull/412 52 53## 0.8.0 (2020-12-16) [YANKED] 54### Added 55- Impl `subtle::ConditionallySelectable` for `sec1::EncodedPoint` ([#409]) 56- `sec1::EncodedPoint::identity()` method ([#408]) 57- `sec1::Coordinates::tag` method ([#407]) 58- Support for SEC1 identity encoding ([#401]) 59 60### Changed 61- Bump `pkcs8` crate dependency to v0.3 ([#405]) 62- Ensure `PublicKey<C>` is not the identity point ([#404]) 63- Have `SecretKey::secret_scalar` return `NonZeroScalar` ([#402]) 64 65### Removed 66- `SecretKey::secret_value` ([#403]) 67 68[#409]: https://github.com/RustCrypto/traits/pull/409 69[#408]: https://github.com/RustCrypto/traits/pull/408 70[#407]: https://github.com/RustCrypto/traits/pull/407 71[#405]: https://github.com/RustCrypto/traits/pull/405 72[#404]: https://github.com/RustCrypto/traits/pull/404 73[#403]: https://github.com/RustCrypto/traits/pull/403 74[#402]: https://github.com/RustCrypto/traits/pull/402 75[#401]: https://github.com/RustCrypto/traits/pull/401 76 77## 0.7.1 (2020-12-07) 78### Changed 79- Have `SecretKey::secret_value` always return `NonZeroScalar` ([#390]) 80 81[#390]: https://github.com/RustCrypto/traits/pull/390 82 83## 0.7.0 (2020-12-06) [YANKED] 84### Added 85- Impl `pkcs8::FromPublicKey` for `PublicKey<C>` ([#385]) 86- Impl `pkcs8::FromPrivateKey` trait for `SecretKey<C>` ([#381], [#383]) 87- PKCS#8 PEM support ([#382]) 88- `SecretKey::secret_value()` method ([#375]) 89- `PublicKey<C>` type ([#363], [#366]) 90 91### Changed 92- Rename `PublicKey::from_bytes()` to `::from_sec1_bytes()` ([#376]) 93- `sec1::EncodedPoint` uses `Option` instead of `subtle::CtOption` ([#367]) 94- Bump `const-oid` to v0.3; MSRV 1.46+ ([#365], [#381]) 95 96### Fixed 97- `ecdh` rustdoc ([#364]) 98 99[#385]: https://github.com/RustCrypto/traits/pull/385 100[#383]: https://github.com/RustCrypto/traits/pull/383 101[#382]: https://github.com/RustCrypto/traits/pull/382 102[#381]: https://github.com/RustCrypto/traits/pull/381 103[#376]: https://github.com/RustCrypto/traits/pull/376 104[#375]: https://github.com/RustCrypto/traits/pull/375 105[#367]: https://github.com/RustCrypto/traits/pull/367 106[#366]: https://github.com/RustCrypto/traits/pull/366 107[#365]: https://github.com/RustCrypto/traits/pull/365 108[#364]: https://github.com/RustCrypto/traits/pull/364 109[#363]: https://github.com/RustCrypto/traits/pull/363 110 111## 0.6.6 (2020-10-08) 112### Added 113- Derive `Clone` on `SecretBytes` ([#330]) 114 115[#300]: https://github.com/RustCrypto/traits/pull/300 116 117## 0.6.5 (2020-10-08) 118### Fixed 119- Work around `nightly-2020-10-06` breakage ([#328]) 120 121[#328]: https://github.com/RustCrypto/traits/pull/328 122 123## 0.6.4 (2020-10-08) 124### Added 125- Impl `From<SecretBytes<C>>` for `FieldBytes<C>` ([#326]) 126 127[#326]: https://github.com/RustCrypto/traits/pull/326 128 129## 0.6.3 (2020-10-08) 130### Added 131- `SecretBytes` newtype ([#324]) 132 133[#324]: https://github.com/RustCrypto/traits/pull/324 134 135## 0.6.2 (2020-09-24) 136### Added 137- `sec1::EncodedPoint::to_untagged_bytes()` method ([#312]) 138 139[#312]: https://github.com/RustCrypto/traits/pull/312 140 141## 0.6.1 (2020-09-21) 142### Fixed 143- `sec1::EncodedPoint::decompress` ([#309]) 144 145[#309]: https://github.com/RustCrypto/traits/pull/309 146 147## 0.6.0 (2020-09-11) [YANKED] 148### Added 149- `arithmetic` feature ([#293]) 150- Generic curve/field arithmetic using the `ff` and `group` crates 151 ([#287], [#291], [#292]) 152- `sec1::Coordinates` ([#286]) 153- `weierstrass::point::Compression` trait ([#283], [#300]) 154- Arithmetic helper functions ([#281]) 155- `digest` feature and `FromDigest` trait ([#279]) 156- impl `Deref` for `NonZeroScalar` ([#278]) 157- Conditionally impl `Invert` for `NonZeroScalar` ([#277]) 158- `NonZeroScalar::to_bytes` ([#276]) 159- `EncodedPoint::decompress` ([#275]) 160- `sec1::Tag` ([#270]) 161- `weierstrass::point::Decompress` trait ([#266]) 162- `alloc` feature + `EncodedPoint::to_bytes()` ([#265]) 163 164### Changed 165- Renamed `Arithmetic` trait to `point::ProjectiveArithmetic` ([#300]) 166- Replaced `Arithmetic::Scalar` and `Arithmetic::AffinePoint` 167 with `Scalar<C>` and `AffinePoint<C>` ([#300]) 168- Made `SecretKey<C>` inner type generic ([#297]) 169- Renamed `ElementBytes<C>` to `FieldBytes<C>` ([#296]) 170- MSRV 1.44 ([#292]) 171- Minimum `subtle` version now v2.3 ([#290]) 172- Renamed `Curve::ElementSize` to `::FieldSize` ([#282]) 173- Refactor `PublicKey` into `sec1::EncodedPoint` ([#264]) 174 175### Removed 176- `FromBytes` trait ([#300]) 177- `Generate` trait ([#295]) 178 179[#300]: https://github.com/RustCrypto/traits/pull/300 180[#297]: https://github.com/RustCrypto/traits/pull/297 181[#296]: https://github.com/RustCrypto/traits/pull/296 182[#295]: https://github.com/RustCrypto/traits/pull/295 183[#293]: https://github.com/RustCrypto/traits/pull/293 184[#292]: https://github.com/RustCrypto/traits/pull/292 185[#291]: https://github.com/RustCrypto/traits/pull/291 186[#290]: https://github.com/RustCrypto/traits/pull/290 187[#287]: https://github.com/RustCrypto/traits/pull/293 188[#286]: https://github.com/RustCrypto/traits/pull/286 189[#283]: https://github.com/RustCrypto/traits/pull/283 190[#282]: https://github.com/RustCrypto/traits/pull/282 191[#281]: https://github.com/RustCrypto/traits/pull/281 192[#279]: https://github.com/RustCrypto/traits/pull/279 193[#278]: https://github.com/RustCrypto/traits/pull/278 194[#277]: https://github.com/RustCrypto/traits/pull/277 195[#276]: https://github.com/RustCrypto/traits/pull/276 196[#275]: https://github.com/RustCrypto/traits/pull/275 197[#270]: https://github.com/RustCrypto/traits/pull/270 198[#266]: https://github.com/RustCrypto/traits/pull/266 199[#265]: https://github.com/RustCrypto/traits/pull/265 200[#264]: https://github.com/RustCrypto/traits/pull/264 201 202## 0.5.0 (2020-08-10) 203### Added 204- `Arithmetic` trait ([#219]) 205- `Generate` trait ([#220], [#226]) 206- Toplevel `Curve` trait ([#223]) 207- `Invert` trait ([#228]) 208- `FromPublicKey` trait ([#229], [#248]) 209- Re-export `zeroize` ([#233]) 210- OID support ([#240], [#245]) 211- `NonZeroScalar` type ([#241]) 212- `Generator` trait ([#241]) 213- `weierstrass::PublicKey::compress` method ([#243]) 214- Derive `Clone` on `SecretKey` ([#244]) 215- Generic Elliptic Curve Diffie-Hellman support ([#251]) 216 217### Changed 218- Moved repo to https://github.com/RustCrypto/traits ([#213]) 219- Rename `ScalarBytes` to `ElementBytes` ([#246]) 220- Rename `CompressedCurvePoint`/`UncompressedCurvePoint` to 221 `CompressedPoint`/`UncompressedPoint` 222 223[#213]: https://github.com/RustCrypto/traits/pull/213 224[#219]: https://github.com/RustCrypto/traits/pull/219 225[#220]: https://github.com/RustCrypto/traits/pull/220 226[#223]: https://github.com/RustCrypto/traits/pull/223 227[#226]: https://github.com/RustCrypto/traits/pull/226 228[#228]: https://github.com/RustCrypto/traits/pull/228 229[#229]: https://github.com/RustCrypto/traits/pull/229 230[#233]: https://github.com/RustCrypto/traits/pull/233 231[#240]: https://github.com/RustCrypto/traits/pull/240 232[#241]: https://github.com/RustCrypto/traits/pull/241 233[#243]: https://github.com/RustCrypto/traits/pull/243 234[#244]: https://github.com/RustCrypto/traits/pull/244 235[#245]: https://github.com/RustCrypto/traits/pull/245 236[#246]: https://github.com/RustCrypto/traits/pull/246 237[#248]: https://github.com/RustCrypto/traits/pull/248 238[#251]: https://github.com/RustCrypto/traits/pull/251 239 240## 0.4.0 (2020-06-04) 241### Changed 242- Bump `generic-array` dependency from v0.12 to v0.14 243 244## 0.3.0 (2020-01-15) 245### Added 246- `Scalar` struct type 247 248### Changed 249- Repository moved to <https://github.com/RustCrypto/elliptic-curves> 250 251### Removed 252- Curve definitions/arithmetic extracted out into per-curve crates 253 254## 0.2.0 (2019-12-11) 255### Added 256- `secp256r1` (P-256) point compression and decompression 257 258### Changed 259- Bump MSRV to 1.37 260 261## 0.1.0 (2019-12-06) 262- Initial release 263