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.
- More inlines for better efficiency (#999)
#[inline]
annotations onconditional_select
(#942)BatchInvert
andBatchNormalize
impls (#971)- Optimized implementation of
LinearCombinationExt
trait (#974)
- Use generic signing implementation from
ecdsa
crate (#911) - Simplify internal helper functions in the scalar arithmetic (#917)
- Bump
elliptic-curve
to v0.13.7 (#979)
- Reject signatures which aren't low-
S
normalized (#914) - Check for
R
being the identity point on Schnorr verification (#916)
- Correct product definition for empty iterators (#802)
FieldBytesEncoding
trait impls (#732)- Fast
invert_vartime
using Stein's algorithm (#743) serde
support forschnorr
types (#748)
AffineCoordinates
trait (#734)- Bump
elliptic-curve
dependency to v0.13 (#770) - Bump
ecdsa
to v0.16 (#770)
alloc
feature (#670)- Impl
FromOkm
forScalar
(#673) - Impl
Prehash*
andKeypairRef
for Schnorr keys (#689) schnorr::SigningKey::as_nonzero_scalar
(#690)- Impl
From<NonZeroScalar>
forschnorr::SigningKey
(#703) - Impl
From<SecretKey>
forschnorr::SigningKey
(#704) precomputed-tables
feature (#697, #705, #707)- Constructors for
Scalar
fromu128
(#709)
ecdsa::recoverable
module; see documentation for replacements (#675)
ecdsa::recoverable::Signature::from_digest_bytes_trial_recovery
(#660)
- Make
ProjectivePoint
equality andis_identity
faster (#650)
- Impl
PrehashSigner
andPrehashVerifier
traits for ECDSA keys (#653) - Impl
Keypair
forSigningKey
(#654)
- Impl
ZeroizeOnDrop
forecdsa::SigningKey
andschnorr::SigningKey
(#630)
- Get rid of eager computation in
mul_shift_vartime()
(#638) - Bump the precision of precomputed division for the scalar decomposition (#639)
- Enable
schnorr
feature by default (#561)
- Taproot Schnorr as defined in BIP 340 (#554, #557, #558)
- Re-export low-level
diffie_hellman
function (#556)
- Use SHA-256 for computing RFC6979 for
recoverable::Signature
(#552)
- Bump
digest
to v0.10 (#515) - Make
AffinePoint
toVerifyingKey
conversion fallible (#535) - Rename
recover_verify_key
=>recover_verifying_key
(#537) - Rename
recover_verify_key_from_digest
=>recover_verifying_key_from_digest
(#537) - Have
pkcs8
feature activateecdsa/pkcs8
(#538) - Bump
elliptic-curve
to v0.12 (#544) - Bump
ecdsa
to v0.14 (#544)
hash2curve
crate feature (#519)
- Normalize before calling
is_odd()
insng0()
(#533)
- Do not normalize the argument in
FieldElementImpl::is_odd()
(#530)
- hash2curve support: impl
GroupDigest
forSecp256k1
(#503) IDENTITY
andGENERATOR
point constants (#511)
- Implement
Scalar::sqrt
(#400) - Impl
PrimeCurveArithmetic
(#415) - Impl
Reduce<U256>
forScalar
(#436) - Impl
Drop
forecdsa::SigningKey
(#449) serde
feature (#463, #464)- Impl
Reduce<U512>
forScalar
(#472) - Impl
ReduceNonZero<U512>
forScalar
(#474) - Impl
LinearCombination
trait (#476)
- Make
ecdsa::Signature::normalize_s
non-mutating (#405) - Use
PrimeCurve
trait (#413) - Use
sec1
crate forEncodedPoint
type (#435) - Replace
ecdsa::hazmat::FromDigest
withReduce
(#438) - Make
FromEncodedPoint
return aCtOption
(#445) - Rust 2021 edition upgrade; MSRV 1.56+ (#453)
- Bump
elliptic-curve
crate dependency to v0.11 (#466) - Bump
ecdsa
crate dependency to v0.13 (#467)
- Handle identity point in
GroupEncoding
(#446)
force-32-bit
feature (#399)field-montgomery
feature (#404)Scalar::conditional_add_bit
(#431)- Deprecated
SigningKey::verify_key
method (#461)
- Wycheproof test vectors (#384)
- Optimize ECDSA using linear combination of points (#380)
- Derive
Clone
forecdsa::SigningKey
(#374)
ecdsa::SigningKey::verifying_key()
method (#363)
- Deprecate
SigningKey::verify_key()
- useverifying_key
instead (#363) - Bump
elliptic-curve
dependency to v0.10.3 (#371)
Debug
impl forecdsa::SigningKey
(#358)ConstantTimeEq
/Eq
/PartialEq
impls forecdsa::SigningKey
(#359)
Copy
impl forecdsa::VerifyingKey
(#355)
- Derive
Ord
onecdsa::VerifyingKey
(#343) AffineArithmetic
trait impl (#347)PrimeCurve
trait impls (#350)
- Mixed coordinate addition with the point at infinity (#337)
- Rename
ecdsa::Asn1Signature
to::DerSignature
(#288) - Migrate to
FromDigest
trait fromecdsa
crate (#292) - Bump
elliptic-curve
to v0.9.2 (#296) - Bump
pkcs8
to v0.6 (#319) - Bump
ecdsa
crate dependency to v0.11 (#330)
DigestPrimitive
feature gating (#324)
- Make
ecdsa
a default feature (#325)
- Have
std
feature activateecdsa-core/std
(#273)
- Trigger docs.rs rebuild with nightly bugfix (RustCrypto/traits#412)
- Bump
elliptic-curve
crate dependency to v0.7; MSRV 1.46+ (#247) - Bump
ecdsa
crate dependency to v0.9 (#247) - Make
SigningKey
a newtype ofelliptic_curve::SecretKey
(#242)
- Expand README.md (#233)
- Bump
cfg-if
from 0.1.10 to 1.0.0 (#220)
- Regenerate
rustdoc
on https://docs.rs after nightly breakage
SecretValue
impl whenarithmetic
feature is disabled (#222)
- Enable
endomorphism-mul
optimizations by default (#213)
- Impl
RecoverableSignPrimtive
onScalar
(#206) recoverable::Signature::recover_verify_key_from_digest_bytes
(#205)
- Derive
Copy
onVerifyKey
(#202)
- Corrected imports when using
ecdsa
+keccak256
features (#199)
- Documentation for
sha256
feature (#197) sec1::EncodedPoint::decompress
test (#194)- Impl
RandomizedSigner
onSigningKey
(#193)
- Gate ecdsa::{Signer, Verifier} impls on
sha256
feature (#192)
ecdsa::Asn1Signature
type alias (#186)ff
andgroup
crate dependencies; MSRV 1.44+ (#164, #174)AffinePoint::identity()
and::is_identity()
(#165)expose-field
feature (#161)keccak256
feature (#142)
- Bump
elliptic-curve
crate to v0.6;ecdsa
to v0.8 (#180) - Refactor ProjectiveArithmetic trait (#179)
- Support generic inner type for
elliptic_curve::SecretKey<C>
(#177) - Rename
ElementBytes
=>FieldBytes
(#176) - Factor out a
from_digest_trial_recovery
method (#168) - Rename
ecdsa::{Signer, Verifier}
=>::{SigningKey, VerifyKey}
(#153) - Rename
Curve::ElementSize
=>FieldSize
(#150) - Implement RFC6979 deterministic ECDSA (#146)
- Use
NonZeroScalar
for ECDSA signature components (#144) - Eagerly verify ECDSA scalars are in range (#143)
- Rename
PublicKey
toEncodedPoint
(#141)
rand
feature (#162)
- Builds with either
ecdsa-core
orsha256
in isolation (#133)
- secp256k1 rustdoc link (#131)
- ECDSA support (#73, #101, #104, #105)
- ECDSA public key recovery support (#110)
- OID support (#103, #113)
- Elliptic Curve Diffie-Hellman (#120)
Zeroize
impl forAffinePoint
andFieldElement
types (#124)
- Optimized field arithmetic with 32-bit and 64-bit backends (#59, #82)
- Bump
elliptic-curve
crate dependency to v0.5 (#126)
- Bump
elliptic-curve
crate dependency to v0.4 (#39)
- Field arithmetic, point addition/doubling, and scalar multiplication (#19)
- README.md: fix typo in crate name (#16)
- Initial release