All notable changes to this library will be documented in this file.
The format is based on Keep a Changelog, and this library adheres to Rust's notion of Semantic Versioning.
group::CurveAffine, an affine-representation trait that the curve-specific affine traits are now built on top of.group::Group::mul_by_generator, with a default implementation. Implementors can override it to take advantage of precomputed tables.group::Group::try_random<R: TryRng + ?Sized>(rng: &mut R) -> Result<Self, R::Error>, a new trait method that must be implemented by downstreams. It samples a non-identity group element using a fallible RNG and propagates the RNG's error.
- MSRV is now 1.85.0.
- Bumped dependencies to
ff 0.14,rand_core 0.10. group::Group::random(rng: impl RngCore) -> Selfhas been changed toGroup::random<R: Rng + ?Sized>(rng: &mut R) -> Self, to enable passing a trait object as the RNG. It now has a default implementation in terms ofGroup::try_random.- The curve-related traits have been refactored around the new
CurveAffinetrait:group::Curve::AffineReprhas been renamed toCurve::Affine.- All of the trait methods and associated types on the following traits have
been removed (use
group::Curve::Affineor thegroup::CurveAffinetrait instead; trait implementors must implementgroup::CurveAffineinstead using the same logic):group::cofactor::CofactorCurvegroup::cofactor::CofactorCurveAffinegroup::prime::PrimeCurvegroup::prime::PrimeCurveAffine
group::cofactor::CofactorCurveAffineandgroup::prime::PrimeCurveAffinenow have blanket implementations for all typesC: group::CurveAffinewhereC::CurveimplementsCofactorCurveorPrimeCurverespectively.
- Bumped
ffto0.13
group::{WnafBase, WnafScalar}structs for caching precomputations of both bases and scalars, for improved many-base many-scalar multiplication performance.impl memuse::DynamicUsage for group::{Wnaf WnafBase, WnafScalar}, behind the newwnaf-memusefeature flag, to enable the heap usage of these types to be measured at runtime.
- Removed temporary allocations from
Wnafinternals for improved performance.
- MSRV is now 1.56.0.
- Bumped
ffto0.12
- The affine scalar multiplication bounds on the following traits had typos that
prevented multiplying by
&Self::Scalar, which has now been fixed:group::cofactor::{CofactorCurve::Affine, CofactorCurveAffine}group::prime::{PrimeCurve::Affine, PrimeCurveAffine}
Copy + Send + Sync + 'staticbounds ongroup::GroupEncoding::Repr.
- Bumped
ffto 0.11.
group::ff, which re-exports theffcrate to make version-matching easier.
- MSRV is now 1.51.0.
- Bumped
ffto 0.10.
group::cofactor::CofactorGroup::is_torsion_freeprovided implementation (trait implementors must now implement this method themselves). This avoids a hard dependency on theff/bitsfeature flag.
- Bumped dependencies to
ff 0.9,rand_core 0.6,rand 0.8.
no_stdsupport.
- MSRV is now 1.44.0.
- Bumped
ffto 0.8. group::{wnaf, Wnaf, WnafGroup}are now gated behind the (default-enabled)allocfeature flag. Thebyteorderdependency is now optional.group::testsis now gated behind thetestsfeature flag. Therandandrand_xorshiftdependencies are now optional.
fmt::Displaybound from the following traits:group::Groupgroup::cofactor::CofactorCurveAffinegroup::prime::PrimeCurveAffine