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.
subtle::ConstantTimeEqbound onff::FieldCopy + Send + Sync + 'staticbounds onff::PrimeField::Reprff::derivemodule behind thederivefeature flag, containing dependencies for thePrimeFieldderive macro:- Re-exports of required crates.
adc, mac, sbbconstant-time const helper functions.
ff::Field::is_zero_vartimeff::PrimeField::from_repr_vartime
ff::Field::is_zeronow returnssubtle::Choice.ff::PrimeField::{is_odd, is_even}now returnsubtle::Choice.ff::PrimeField::from_reprnow returnsubtle::CtOption<Self>.ff::PrimeField::from_strhas been renamed toPrimeField::from_str_vartime.
ff::{adc, mac_with_carry, sbb}(replaced byff::derive::{adc, mac, sbb}).
ff::BatchInvertextension trait, implemented for iterators over mutable field elements which allows those field elements to be inverted in a batch. This trait is behind the newallocfeature flag.ff::BatchInverterstruct, which provides methods for non-allocating batch inversion of field elements contained within slices.
ff::PrimeFieldBits: PrimeFieldtrait, behind abitsfeature flag.
- MSRV is now 1.51.0.
- Bumped
bitvecto 0.22 to enable fixing a performance regression inff 0.9. Thebitvec::view::BitViewre-export has been replaced bybitvec::view::BitViewSized. - The
bitvecdependency and its re-exports have been gated behind thebitsfeature flag.
ff::PrimeField::{ReprBits, char_le_bits, to_le_bits}(replaced byff::PrimeFieldBitstrait).
#[derive(PrimeField)]now works on small moduli (that fit in a singleu64limb).
- Re-export of
bitvec::view::BitView. ff::FieldBits<V>type alias for the return type offf::PrimeField::{char_le_bits, to_le_bits}.
- Bumped
bitvecto 0.20,rand_coreto 0.6.
From<Self>andFrom<&Self>bounds onff::PrimeField::Repr.
ff::PrimeField::{ReprBits, char_le_bits, to_le_bits}, and a public dependency onbitvec 0.18.ff::Field::cubemethod with provided implementation.Send + Syncbounds onff::PrimeField::ReprBits
- MSRV is now 1.44.0.
ff::Field::random<R: RngCore + ?Sized>(rng: &mut R) -> Selfhas been changed toField::random(rng: impl RngCore) -> Self, to aligh withgroup::Group::random.
fmt::Displaybound onff::Field.ff::PrimeField::char(replaced byff::PrimeField::char_le_bits).ff::{BitIterator, Endianness, PrimeField::ReprEndianness(replaced byff::PrimeField::to_le_bits).