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.
SecretKey::from_slice
now allows >=24-bytes (#1412)
- Minimum supported
hkdf
version is v0.12.1 (#1353) - Minimum supported
serde_json
version forjwk
feature is v1.0.47 (#1354) - Minimum supported
tap
version forbits
feature is v1.0.1 (#1355)
- Faster
PublicKey::from_encoded_point
(#1310)
alloc
+arithmetic
features w/osec1
feature (#1301)
- Bump
hex-literal
to v0.4 (#1295)
- Impl
AssociatedAlgorithmIdentifier
forSecretKey
andPublicKey
(#1286)
FieldBytesEncoding
provided impl (#1287)
SecretKey::from_slice
short input support (#1256)
PublicKey::to_sec1_bytes
(#1102)- Forward
std
feature tosec1
dependency (#1131) NonIdentity
wrapper type (#1176)- Impl
serde
traits forNonZeroScalar
(#1178) MulByGenerator
trait (#1198)NonZeroScalar::invert_vartime
(#1207)BlindedScalar
type (#1208)point::Double
trait (#1218)FieldBytesEncoding
trait (#1235)Invert::invert_vartime
(#1239)
- Allow bigger
c1
constant inOsswuMapParams
(#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
toScalarPrimitive
(#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
dst
s in thehash2curve
API (#1238) - Have
serde
feature activatepkcs8
(#1245) - Dependency upgrades:
impl_field_element!
macro (#1165)- Direct
der
crate dependency (#1195) AffineArithmetic
,ProjectiveArithmetic
,ScalarArithmetic
traits (#1196)- Toplevel re-exports except for
AffinePoint
,ProjectivePoint
, andScalar
(#1223) Reduce
methods (#1225)- Blanket impl for
Invert
(#1242)
- Aliases for SEC1 compressed/uncompressed points (#1067)
arithmetic
+serde
feature combo (#1066)
- Bump
crypto-bigint
to v0.4.8 (#1039)
ecdh::SharedSecret::extract
HKDF helper (#1007)
- Bump
digest
dependency to v0.10 (#883, #904) - Make
NonZeroScalar::invert
infallible (#894) ToCompactEncodedPoint
now returnsCtOption
(#895)- Move
hash2field
intohash2curve
module (#903) - Bump
ff
andgroup
dependencies to v0.12 (#994) - Use
serdect
crate (#996) - Replace
AlgorithmParamters
withAssociatedOid
(#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)
Zeroize
impl fromecdh::SharedSecret
(#978)
- Disable
bits
feature on docs.rs due to nightly breakage (#927)
- No changes; triggering a docs.rs rebuild
- Activate
bits
,hash2curve
, andvoprf
features on docs.rs (#891)
- Impl
ZeroizeOnDrop
on appropriate items (#884)
- Initial hash-to-field support (#854, #855, #871, #874)
- Initial hash-to-curve support (#865, #876)
- Impl
Mul
forNonZeroScalar
*NonZeroScalar
(#857, #862) Reduce::from_*e_digest_reduced
(#869)VoprfParameters
trait (#878)
- Type conversions chart (#852)
- Revised
LinearCombination
trait (#835)
LinearCombination
trait (#832)
ReduceNonZero
trait (#827)
- Bump
pem-rfc7468
dependency to v0.3 (#825)
NonZeroScalar::from_uint
(#822)
ScalarCore<C>
type (#732)PrimeCurveArithmetic
trait (#739)- SEC1 private key support (#762)
Reduce
trait (#768)- Re-export
ff
andPrimeField
(#796) Encoding
bound onCurve::UInt
(#806)scalar::IsHigh
trait (#814, #815)Neg
impl forNonZeroScalar<C>
(#816)AffineXCoordinate
trait (#817)serde
support for scalar andPublicKey
types (#818)
- Bump
ff
+group
to v0.11 (#730) - Make
SecretKey::to_jwk_string
self-zeroizing (#742) - Use
sec1
crate'sEncodedPoint
(#771) - Make
FromEncodedPoint
return aCtOption
(#782) - Rust 2021 edition upgrade; MSRV to 1.56 (#795)
- Bump
crypto-bigint
dependency to v0.3 (#807) - Use
sec1
crate forpkcs8
support (#809) - Bump
spki
dependency to v0.5 release (#810) NonZeroScalar
is now bounded onScalarArithmetic
instead ofProjectiveArithmetic
(#812)
Zeroize
impl onNonZeroScalar
(#785)
- Bump
crypto-bigint
dependency to v0.2.4 (#710)
- Pin
zeroize
dependency to v1.4 andsubtle
to v2.4 (#689)
- Re-export
rand_core
(#683)
- Bump
crypto-bigint
to v0.2.1 (#673)
ConstantTimeEq
impl forNonZeroScalar
(#669)
- Explicit
Copy
bounds onPublicKey
(#667)
ScalarBytes::from_uint
(#651)dev::ScalarBytes
(#652)ScalarArithmetic
trait (#654)AffineArithmetic
trait (#658)PointCompaction
trait and SEC1 tag support (#659)
- Bump
ff
andgroup
to v0.10; MSRV 1.51+ (#643) - Merge
Curve
andOrder
traits (#644) - Use
crypto-bigint
to representCurve::ORDER
(#645) - Source
FieldSize<C>
fromC::UInt
type (#646) - Impl
ScalarBytes<C>
usingC::UInt
(#647) - Make
ScalarBytes<C>
theSecretKey<C>
internal repr (#649) - Bump
crypto-bigint
to v0.2 (#662) - Bump
pkcs8
to v0.7 (#662)
util
module (#648)
Ord
andPartialOrd
impls onPublicKey
(#637)
- Impl
subtle
traits onScalarBytes<C>
(#612)
- Always re-export ScalarBytes (#613)
ScalarBytes
type (#610)
Order::is_scalar_repr_in_range
(#608)
- Define
Order
forMockCurve
(#606)
Order
trait (#603)
- Warnings from
pkcs8
imports (#604)
- Bump
pkcs8
dependency to v0.6 (#585)
- Breakage related to the
pkcs8
v0.5.1 crate (#556)
- Bump
pkcs8
dependency to v0.5.0 (#549)
- Workaround for ferrilab/bitvec#105 (#550)
- Flatten
weierstrass
module (#542)
BitView
re-export (#540)
- JWK support (#483)
sec1::ValidatePublicKey
trait (#485)hazmat
crate feature (#487)Result
alias (#534)
- Bump
ff
andgroup
crates to v0.9 (#452) - Simplify ECDH trait bounds (#475)
- Flatten API (#487)
- Bump
pkcs8
crate dependency to v0.4 (#493)
- Workaround for ferrilab/bitvec#105 (#553)
- Rust
nightly
regression (#432)
- Regression in combination of
pem
+zeroize
features (#429)
- Low-level ECDH API (#418)
dev
module (#419)- Impl
pkcs8::ToPrivateKey
forSecretKey<C>
(#423) - Impl
pkcs8::ToPublicKey
forPublicKey<C>
(#427)
- Bump
subtle
dependency to 2.4.0 (#414) - Bump
pkcs8
dependency to v0.3.3 (#425) - Use
der
crate to parseSecretKey
(#422)
- Make
PublicKey::from_encoded_point
go throughPublicKey::from_affine
(#416)
- Builds on Rust
nightly
compiler (#412)
- Impl
subtle::ConditionallySelectable
forsec1::EncodedPoint
(#409) sec1::EncodedPoint::identity()
method (#408)sec1::Coordinates::tag
method (#407)- Support for SEC1 identity encoding (#401)
- Bump
pkcs8
crate dependency to v0.3 (#405) - Ensure
PublicKey<C>
is not the identity point (#404) - Have
SecretKey::secret_scalar
returnNonZeroScalar
(#402)
SecretKey::secret_value
(#403)
- Have
SecretKey::secret_value
always returnNonZeroScalar
(#390)
- Impl
pkcs8::FromPublicKey
forPublicKey<C>
(#385) - Impl
pkcs8::FromPrivateKey
trait forSecretKey<C>
(#381, #383) - PKCS#8 PEM support (#382)
SecretKey::secret_value()
method (#375)PublicKey<C>
type (#363, #366)
- Rename
PublicKey::from_bytes()
to::from_sec1_bytes()
(#376) sec1::EncodedPoint
usesOption
instead ofsubtle::CtOption
(#367)- Bump
const-oid
to v0.3; MSRV 1.46+ (#365, #381)
ecdh
rustdoc (#364)
- Derive
Clone
onSecretBytes
([#330])
- Work around
nightly-2020-10-06
breakage (#328)
- Impl
From<SecretBytes<C>>
forFieldBytes<C>
(#326)
SecretBytes
newtype (#324)
sec1::EncodedPoint::to_untagged_bytes()
method (#312)
sec1::EncodedPoint::decompress
(#309)
arithmetic
feature (#293)- Generic curve/field arithmetic using the
ff
andgroup
crates (#287, #291, #292) sec1::Coordinates
(#286)weierstrass::point::Compression
trait (#283, #300)- Arithmetic helper functions (#281)
digest
feature andFromDigest
trait (#279)- impl
Deref
forNonZeroScalar
(#278) - Conditionally impl
Invert
forNonZeroScalar
(#277) NonZeroScalar::to_bytes
(#276)EncodedPoint::decompress
(#275)sec1::Tag
(#270)weierstrass::point::Decompress
trait (#266)alloc
feature +EncodedPoint::to_bytes()
(#265)
- Renamed
Arithmetic
trait topoint::ProjectiveArithmetic
(#300) - Replaced
Arithmetic::Scalar
andArithmetic::AffinePoint
withScalar<C>
andAffinePoint<C>
(#300) - Made
SecretKey<C>
inner type generic (#297) - Renamed
ElementBytes<C>
toFieldBytes<C>
(#296) - MSRV 1.44 (#292)
- Minimum
subtle
version now v2.3 (#290) - Renamed
Curve::ElementSize
to::FieldSize
(#282) - Refactor
PublicKey
intosec1::EncodedPoint
(#264)
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
onSecretKey
(#244) - Generic Elliptic Curve Diffie-Hellman support (#251)
- Moved repo to https://github.com/RustCrypto/traits (#213)
- Rename
ScalarBytes
toElementBytes
(#246) - Rename
CompressedCurvePoint
/UncompressedCurvePoint
toCompressedPoint
/UncompressedPoint
- Bump
generic-array
dependency from v0.12 to v0.14
Scalar
struct type
- Repository moved to https://github.com/RustCrypto/elliptic-curves
- Curve definitions/arithmetic extracted out into per-curve crates
secp256r1
(P-256) point compression and decompression
- Bump MSRV to 1.37
- Initial release