Skip to content

Latest commit

 

History

History
811 lines (650 loc) · 26.9 KB

CHANGELOG.md

File metadata and controls

811 lines (650 loc) · 26.9 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.13.8 (2023-11-18)

Changed

  • SecretKey::from_slice now allows >=24-bytes (#1412)

0.13.7 (2023-11-15)

Added

  • BatchInvert and BatchNormalize traits (#1376)
  • LinearCombinationExt trait (#1405)

0.13.6 (2023-10-02)

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)

0.13.5 (2023-05-19)

Changed

  • Faster PublicKey::from_encoded_point (#1310)

Fixed

  • alloc+arithmetic features w/o sec1 feature (#1301)

0.13.4 (2023-04-08)

Changed

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

Fixed

  • NonZeroScalar::from_slice (#1296)
  • ScalarPrimitive::from_slice (#1296)

0.13.3 (2023-04-04)

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)

0.13.2 (2023-03-08)

Added

  • Weakly activate pkcs8?/std (#1263)
  • More PublicKey <-> SEC1 conversions (#1272)

0.13.1 (2023-03-01)

Added

  • SecretKey::from_slice short input support (#1256)

0.13.0 (2023-02-28)

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)

0.12.3 (2022-08-01)

Added

  • Aliases for SEC1 compressed/uncompressed points (#1067)

Fixed

  • arithmetic + serde feature combo (#1066)

0.12.2 (2022-07-01)

Changed

  • Bump crypto-bigint to v0.4.8 (#1039)

0.12.1 (2022-06-12)

Added

  • impl_field_element! macro (#1021)
  • Generic impl of complete prime order formulas (#1022)

Changed

0.12.0 (2022-05-08)

Added

  • ecdh::SharedSecret::extract HKDF helper (#1007)

Changed

  • Bump digest dependency to v0.10 (#883, #904)
  • Make NonZeroScalar::invert infallible (#894)
  • ToCompactEncodedPoint now returns CtOption (#895)
  • Move hash2field into hash2curve module (#903)
  • Bump ff and group dependencies to v0.12 (#994)
  • Use serdect crate (#996)
  • Replace AlgorithmParamters with AssociatedOid (#1001)
  • Bump crypto-bigint dependency to v0.4 (#1005)
  • Bump der dependency to v0.6 (#1006)
  • Bump pkcs8 dependency to v0.9 (#1006)
  • Bump sec1 dependency to v0.3 (#1006)
  • Bump pem-rfc7468 dependency to v0.6 (#1009)

Removed

  • Zeroize impl from ecdh::SharedSecret (#978)

0.11.12 (2022-01-30)

Changed

  • Disable bits feature on docs.rs due to nightly breakage (#927)

0.11.11 (2022-01-30)

  • No changes; triggering a docs.rs rebuild

0.11.10 (2022-01-27)

Changed

  • Revert #884 to support a wider range of zeroize versions (#923)

0.11.9 (2022-01-17) [YANKED]

Changed

  • Activate bits, hash2curve, and voprf features on docs.rs (#891)

0.11.8 (2022-01-15) [YANKED]

Added

  • Impl ZeroizeOnDrop on appropriate items (#884)

Changed

  • Use the base16ct crate for hex serialization (#886, #887, #888)

0.11.7 (2022-01-14) [YANKED]

Added

  • Initial hash-to-field support (#854, #855, #871, #874)
  • Initial hash-to-curve support (#865, #876)
  • Impl Mul for NonZeroScalar * NonZeroScalar (#857, #862)
  • Reduce::from_*e_digest_reduced (#869)
  • VoprfParameters trait (#878)

0.11.6 (2021-12-20)

Added

  • Type conversions chart (#852)

0.11.5 (2021-12-05)

Changed

  • Revised LinearCombination trait (#835)

0.11.4 (2021-12-04) [YANKED]

Added

  • LinearCombination trait (#832)

0.11.3 (2021-12-03) [YANKED]

Added

  • ReduceNonZero trait (#827)

0.11.2 (2021-12-03) [YANKED]

Changed

  • Bump pem-rfc7468 dependency to v0.3 (#825)

0.11.1 (2021-11-21) [YANKED]

Added

  • NonZeroScalar::from_uint (#822)

0.11.0 (2021-11-19) [YANKED]

Added

  • ScalarCore<C> type (#732)
  • PrimeCurveArithmetic trait (#739)
  • SEC1 private key support (#762)
  • Reduce trait (#768)
  • Re-export ff and PrimeField (#796)
  • Encoding bound on Curve::UInt (#806)
  • scalar::IsHigh trait (#814, #815)
  • Neg impl for NonZeroScalar<C> (#816)
  • AffineXCoordinate trait (#817)
  • serde support for scalar and PublicKey types (#818)

Changed

  • Bump ff + group to v0.11 (#730)
  • Make SecretKey::to_jwk_string self-zeroizing (#742)
  • Use sec1 crate's EncodedPoint (#771)
  • Make FromEncodedPoint return a CtOption (#782)
  • Rust 2021 edition upgrade; MSRV to 1.56 (#795)
  • Bump crypto-bigint dependency to v0.3 (#807)
  • Use sec1 crate for pkcs8 support (#809)
  • Bump spki dependency to v0.5 release (#810)
  • NonZeroScalar is now bounded on ScalarArithmetic instead of ProjectiveArithmetic (#812)

Fixed

  • Zeroize impl on NonZeroScalar (#785)

0.10.6 (2021-08-23)

Changed

  • Bump crypto-bigint dependency to v0.2.4 (#710)

0.10.5 (2021-07-20)

Changed

  • Pin zeroize dependency to v1.4 and subtle to v2.4 (#689)

0.10.4 (2021-07-12)

Added

  • Re-export rand_core (#683)

0.10.3 (2021-06-21)

Changed

  • Bump crypto-bigint to v0.2.1 (#673)

0.10.2 (2021-06-14) [YANKED]

Added

  • ConstantTimeEq impl for NonZeroScalar (#669)

0.10.1 (2021-06-09) [YANKED]

Added

  • Explicit Copy bounds on PublicKey (#667)

0.10.0 (2021-06-07) [YANKED]

Added

  • ScalarBytes::from_uint (#651)
  • dev::ScalarBytes (#652)
  • ScalarArithmetic trait (#654)
  • AffineArithmetic trait (#658)
  • PointCompaction trait and SEC1 tag support (#659)

Changed

  • Bump ff and group to v0.10; MSRV 1.51+ (#643)
  • Merge Curve and Order traits (#644)
  • Use crypto-bigint to represent Curve::ORDER (#645)
  • Source FieldSize<C> from C::UInt type (#646)
  • Impl ScalarBytes<C> using C::UInt (#647)
  • Make ScalarBytes<C> the SecretKey<C> internal repr (#649)
  • Bump crypto-bigint to v0.2 (#662)
  • Bump pkcs8 to v0.7 (#662)

Removed

  • util module (#648)

0.9.12 (2021-05-18)

Added

  • Ord and PartialOrd impls on PublicKey (#637)

0.9.11 (2021-04-21)

Added

  • Impl subtle traits on ScalarBytes<C> (#612)

Fixed

  • Always re-export ScalarBytes (#613)

0.9.10 (2021-04-21)

Added

  • ScalarBytes type (#610)

0.9.9 (2021-04-21) [YANKED]

Added

  • Order::is_scalar_repr_in_range (#608)

0.9.8 (2021-04-21)

Added

  • Define Order for MockCurve (#606)

0.9.7 (2021-04-21)

Added

  • Order trait (#603)

Fixed

  • Warnings from pkcs8 imports (#604)

0.9.6 (2021-03-22)

Changed

  • Bump pkcs8 dependency to v0.6 (#585)

0.9.5 (2021-03-17) [YANKED]

Added

  • Implement {to,char}_le_bits for MockCurve (#565)
  • Implement one() for mock Scalar (#566)

Changed

  • Use string-based OID constants (#561)
  • Bump base64ct dependency to v1.0 (#581)

0.9.4 (2021-02-18) [YANKED]

Fixed

  • Breakage related to the pkcs8 v0.5.1 crate (#556)

0.9.3 (2021-02-16) [YANKED]

Changed

  • Bump pkcs8 dependency to v0.5.0 (#549)

Fixed

0.9.2 (2021-02-12) [YANKED]

Changed

  • Flatten weierstrass module (#542)

0.9.1 (2021-02-11) [YANKED]

Removed

  • BitView re-export (#540)

0.9.0 (2021-02-10) [YANKED]

Added

  • JWK support (#483)
  • sec1::ValidatePublicKey trait (#485)
  • hazmat crate feature (#487)
  • Result alias (#534)

Changed

  • Bump ff and group crates to v0.9 (#452)
  • Simplify ECDH trait bounds (#475)
  • Flatten API (#487)
  • Bump pkcs8 crate dependency to v0.4 (#493)

Removed

  • Direct bitvec dependency (#484)
  • FromDigest trait (#532)

0.8.5 (2021-02-17)

Fixed

0.8.4 (2020-12-23)

Fixed

  • Rust nightly regression (#432)

0.8.3 (2020-12-22)

Fixed

  • Regression in combination of pem+zeroize features (#429)

0.8.2 (2020-12-22) [YANKED]

Added

  • Low-level ECDH API (#418)
  • dev module (#419)
  • Impl pkcs8::ToPrivateKey for SecretKey<C> (#423)
  • Impl pkcs8::ToPublicKey for PublicKey<C> (#427)

Changed

  • Bump subtle dependency to 2.4.0 (#414)
  • Bump pkcs8 dependency to v0.3.3 (#425)
  • Use der crate to parse SecretKey (#422)

Fixed

  • Make PublicKey::from_encoded_point go through PublicKey::from_affine (#416)

0.8.1 (2020-12-16) [YANKED]

Fixed

  • Builds on Rust nightly compiler (#412)

0.8.0 (2020-12-16) [YANKED]

Added

  • Impl subtle::ConditionallySelectable for sec1::EncodedPoint (#409)
  • sec1::EncodedPoint::identity() method (#408)
  • sec1::Coordinates::tag method (#407)
  • Support for SEC1 identity encoding (#401)

Changed

  • Bump pkcs8 crate dependency to v0.3 (#405)
  • Ensure PublicKey<C> is not the identity point (#404)
  • Have SecretKey::secret_scalar return NonZeroScalar (#402)

Removed

  • SecretKey::secret_value (#403)

0.7.1 (2020-12-07)

Changed

  • Have SecretKey::secret_value always return NonZeroScalar (#390)

0.7.0 (2020-12-06) [YANKED]

Added

  • Impl pkcs8::FromPublicKey for PublicKey<C> (#385)
  • Impl pkcs8::FromPrivateKey trait for SecretKey<C> (#381, #383)
  • PKCS#8 PEM support (#382)
  • SecretKey::secret_value() method (#375)
  • PublicKey<C> type (#363, #366)

Changed

  • Rename PublicKey::from_bytes() to ::from_sec1_bytes() (#376)
  • sec1::EncodedPoint uses Option instead of subtle::CtOption (#367)
  • Bump const-oid to v0.3; MSRV 1.46+ (#365, #381)

Fixed

  • ecdh rustdoc (#364)

0.6.6 (2020-10-08)

Added

  • Derive Clone on SecretBytes ([#330])

0.6.5 (2020-10-08)

Fixed

  • Work around nightly-2020-10-06 breakage (#328)

0.6.4 (2020-10-08)

Added

  • Impl From<SecretBytes<C>> for FieldBytes<C> (#326)

0.6.3 (2020-10-08)

Added

  • SecretBytes newtype (#324)

0.6.2 (2020-09-24)

Added

  • sec1::EncodedPoint::to_untagged_bytes() method (#312)

0.6.1 (2020-09-21)

Fixed

  • sec1::EncodedPoint::decompress (#309)

0.6.0 (2020-09-11) [YANKED]

Added

  • arithmetic feature (#293)
  • Generic curve/field arithmetic using the ff and group crates (#287, #291, #292)
  • sec1::Coordinates (#286)
  • weierstrass::point::Compression trait (#283, #300)
  • Arithmetic helper functions (#281)
  • digest feature and FromDigest trait (#279)
  • impl Deref for NonZeroScalar (#278)
  • Conditionally impl Invert for NonZeroScalar (#277)
  • NonZeroScalar::to_bytes (#276)
  • EncodedPoint::decompress (#275)
  • sec1::Tag (#270)
  • weierstrass::point::Decompress trait (#266)
  • alloc feature + EncodedPoint::to_bytes() (#265)

Changed

  • Renamed Arithmetic trait to point::ProjectiveArithmetic (#300)
  • Replaced Arithmetic::Scalar and Arithmetic::AffinePoint with Scalar<C> and AffinePoint<C> (#300)
  • Made SecretKey<C> inner type generic (#297)
  • Renamed ElementBytes<C> to FieldBytes<C> (#296)
  • MSRV 1.44 (#292)
  • Minimum subtle version now v2.3 (#290)
  • Renamed Curve::ElementSize to ::FieldSize (#282)
  • Refactor PublicKey into sec1::EncodedPoint (#264)

Removed

  • FromBytes trait (#300)
  • Generate trait (#295)

0.5.0 (2020-08-10)

Added

  • Arithmetic trait (#219)
  • Generate trait (#220, #226)
  • Toplevel Curve trait (#223)
  • Invert trait (#228)
  • FromPublicKey trait (#229, #248)
  • Re-export zeroize (#233)
  • OID support (#240, #245)
  • NonZeroScalar type (#241)
  • Generator trait (#241)
  • weierstrass::PublicKey::compress method (#243)
  • Derive Clone on SecretKey (#244)
  • Generic Elliptic Curve Diffie-Hellman support (#251)

Changed

0.4.0 (2020-06-04)

Changed

  • Bump generic-array dependency from v0.12 to v0.14

0.3.0 (2020-01-15)

Added

  • Scalar struct type

Changed

Removed

  • Curve definitions/arithmetic extracted out into per-curve crates

0.2.0 (2019-12-11)

Added

  • secp256r1 (P-256) point compression and decompression

Changed

  • Bump MSRV to 1.37

0.1.0 (2019-12-06)

  • Initial release