- Added invert to Gt
- Added From<Vec> and TryFrom<Vec> for types
- Added debug_asserts to check lengths
- Fixed issue with 32-bit builds
- Add LowerHex and UpperHex impls for G1Affine, G1Projective, G2Affine, G2Projective, Gt, Scalar
- Add from hex methods for G1Affine, G1Projective, G2Affine, G2Projective, Gt, Scalar
- Removed heapless dependency
- Fix a bug in hash to g1
- Fix a serialization issue where is_torsion_free was not working for valid points
- Bumped dependencies to
ff 0.13
,group 0.13
,pairing 0.23
,elliptic-curve 0.13
- Change hash2curve to use elliptic-curve traits where possible.
Mul
implementations for{G1Affine, G1Projective, G2Affine, G2Projective}
withScalar
on the left-hand side. These enable code to be written matching equations that use the additive notation[a] P
.- Zeroization support for
Gt
.
- MSRV bumped to
1.56.0
- Bumped dependencies to
ff 0.12
,group 0.12
,pairing 0.22
.
- G2 arithmetic is now 25-30% faster across the board.
- Pairings are now 10-15% faster.
bls12_381::Gt::default()
now returnsGt::identity()
instead of a nonsensical value.
- Zeroization support for most public types, behind the
zeroize
feature flag. bls12_381::MillerLoopResult
trait implementations:Default
AddAssign<MillerLoopResult>
AddAssign<&MillerLoopResult>
- Bumped dependencies to
ff 0.11
,group 0.11
,pairing 0.21
.
- The deprecated
endo
feature flag.
bits
feature flag (on by default) that exposes anff::PrimeFieldBits
implementation onbls12_381::Scalar
.experimental
feature flag, for features have no backwards-compatibility guarantees and may change at any time.- Hashing to curves (Internet Draft v11),
behind the
experimental
feature flag.
- Bumped dependencies to
ff 0.10
,group 0.10
,pairing 0.20
. - MSRV is now 1.51.0.
- Bumped dependencies to
ff 0.9
,group 0.9
,pairing 0.19
,rand_core 0.6
. - The
endo
feature is on by default. Theendo
feature flag itself is deprecated, and will be removed in a future minor release. - MSRV is now 1.47.0.
- The crate now compiles for non-64-bit targets, such as the
wasm32-*
targets.
- Migrated to
ff 0.8
,group 0.8
, andpairing 0.18
. - MSRV is now 1.44.0.
- Switched to complete addition formulas for G1/G2.
This release adds implementations of the ff
, group
, and pairing
traits (with the
latter two being gated by the groups
and pairings
feature flags respectively).
Additional trait implementations (for standard traits) have been added where the ff
,
group
, and pairing
trait bounds require them.
bls12_381::Bls12
, apairing::Engine
for BLS12-381 pairing operations. It implements the following traits:pairing::{Engine, MultiMillerLoop}
- New trait implementations for
bls12_381::G1Projective
:group::{Curve, Group, GroupEncoding, WnafGroup}
group::prime::{PrimeCurve, PrimeGroup}
- New trait implementations for
bls12_381::G1Affine
:group::{GroupEncoding, UncompressedEncoding}
group::prime::PrimeCurveAffine
pairing::PairingCurveAffine
- New trait implementations for
bls12_381::G2Projective
:group::{Curve, Group, GroupEncoding, WnafGroup}
group::prime::{PrimeCurve, PrimeGroup}
- New trait implementations for
bls12_381::G2Affine
:group::{GroupEncoding, UncompressedEncoding}
group::prime::PrimeCurveAffine
pairing::PairingCurveAffine
- New trait implementations for
bls12_381::Gt
:group::Group
- New trait implementations for
bls12_381::MillerLoopResult
:pairing::MillerLoopResult
- New trait implementations for
bls12_381::Scalar
:ff::{Field, PrimeField}
Added clear_cofactor
methods to G1Projective
and G2Projective
. If the crate feature endo
is enabled the G2 cofactor clearing will use the curve endomorphism technique described by
Budroni-Pintore. If the crate feature endo
is not enabled then
the code will simulate the effects of the Budroni-Pintore cofactor clearing in order to keep
the API consistent. In September 2020, when patents US7110538B2 and US7995752B2 expire, the
endo feature will be made default. However, for now it must be explicitly enabled.
Initial release.