- Bumped dependencies to
bls12_381 0.8
,ff 0.13
,group 0.13
.
- Bumped MSRV to
1.56.0
- Bumped dependencies to
bls12_381 0.7
,ff 0.12
,group 0.12
,bitvec 1.0
.
jubjub::Base
, as an alias forjubjub::Fq
.jubjub::AffinePoint::batch_from_bytes
, which enables the inversion insidejubjub::AffinePoint::from_bytes
to be batched.
- Bumped dependencies to
bls12_381 0.6
,ff 0.11
,group 0.11
.
- A bug in the
jubjub::{AffinePoint, ExtendedPoint, SubgroupPoint}::from_bytes
APIs (and theirgroup::GroupEncoding
implementations) has been fixed. The APIs were documented as rejecting non-canonical points, but were accidentally accepting two specific non-canonical encodings. This could potentially cause a problem in consensus-critical protocols that expect encodings to be round-trip compatible (i.e.AffinePoint::from_bytes(b).unwrap().to_bytes() == b
). See ZIP 216 for more details.- A new API
jubjub::AffinePoint::from_bytes_pre_zip216_compatibility
preserves the previous behaviour, for use where consensus compatibility is required.
- A new API
- Bumped dependencies to
bitvec 0.22
,bls12_381 0.5
,ff 0.10
,group 0.10
. - MSRV is now 1.51.0.
- Bumped dependencies to
bitvec 0.20
,bls12_381 0.4
,ff 0.9
,group 0.9
,rand_core 0.6
. - MSRV is now 1.47.0.
- The crate now compiles for non-64-bit targets, such as the
wasm32-*
targets.
This upgrade bumps our dependencies bls12_381
, group
and ff
, while making
corresponding changes to the APIs. This release now only supports Rust compilers
version 1.44.0 or later.
This release adds implementations of the ff
and group
traits. Additional trait
implementations (for standard traits) have been added where the ff
and group
trait
bounds require them.
jubjub::SubgroupPoint
, which represents an element of Jubjub's prime-order subgroup. It implements the following traits:group::{Group, GroupEncoding}
group::prime::PrimeGroup
- New trait implementations for
jubjub::ExtendedPoint
:group::{Curve, Group, GroupEncoding, WnafGroup}
group::cofactor::{CofactorCurve, CofactorGroup}
- New trait implementations for
jubjub::AffinePoint
:group::GroupEncoding
group::cofactor::CofactorCurveAffine
- New trait implementations for
jubjub::Fr
:ff::{Field, PrimeField}
jubjub::AffinePoint::is_identity
jubjub::AffinePoint::to_extended
jubjub::Scalar
, as an alias forjubjub::Fr
.
- We've migrated to
bls12_381 0.2
. rand_core
is now a regular dependency.- We depend on the
byteorder
crate again, as it is part of theff::PrimeField
trait. - The benchmarks are now implemented using
criterion
.
This release now depends on the bls12_381
crate, which exposes the Fq
field type that we re-export.
- The
Fq
andFr
field types now have better constant function support for various operations and constructors. - We no longer depend on the
byteorder
crate. - We've bumped our
rand_core
dev-dependency up to 0.5. - We've removed the
std
andnightly
features. - We've bumped our dependency of
subtle
up to^2.2.1
.
This release switches to subtle 2.1
to bring in the CtOption
type, and also makes a few useful API changes.
- Implemented
Mul<Fr>
forAffineNielsPoint
andExtendedNielsPoint
- Changed
AffinePoint::to_niels()
to be aconst
function so that constant curve points can be constructed without statics. - Implemented
multiply_bits
forAffineNielsPoint
,ExtendedNielsPoint
- Removed
CtOption
and replaced it withCtOption
fromsubtle
crate. - Modified receivers of some methods to reduce stack usage
- Changed various
into_bytes
methods intoto_bytes
Initial release.