jubjub
Implementation of the Jubjub elliptic curve group
0.10.0
4.1M downloads/mo
#4978 most downloaded on crates.io
zkcrypto/jubjub
What this package is like to depend on
Last release 3 years ago
no release in 18 months
Ships fairly regularly
a new release about every 5 months
Most releases are documented
notes for 10 of 12 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
12 releases · first in 2018
0 releases in the last 12 months
see the full history below
Release timeline
12 releases · Aug 2018 to Feb 2023Releases
latest 12-
0.10.028 Feb 2023 -
0.9.004 May 2022Release notes
Open source →Changed
- Bumped MSRV to
1.56.0 - Bumped dependencies to
bls12_381 0.7,ff 0.12,group 0.12,bitvec 1.0.
- Bumped MSRV to
-
0.8.002 Sep 2021Release notes
Open source →Added
jubjub::Base, as an alias forjubjub::Fq.jubjub::AffinePoint::batch_from_bytes, which enables the inversion insidejubjub::AffinePoint::from_bytesto be batched.
Changed
- Bumped dependencies to
bls12_381 0.6,ff 0.11,group 0.11.
-
0.7.003 Jun 2021Release notes
Open source →Security
- A bug in the
jubjub::{AffinePoint, ExtendedPoint, SubgroupPoint}::from_bytesAPIs (and theirgroup::GroupEncodingimplementations) 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_compatibilitypreserves the previous behaviour, for use where consensus compatibility is required.
- A new API
Changed
- Bumped dependencies to
bitvec 0.22,bls12_381 0.5,ff 0.10,group 0.10. - MSRV is now 1.51.0.
- A bug in the
-
0.6.026 Jan 2021Release notes
Open source →Changed
- 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.
- Bumped dependencies to
-
0.5.109 Sep 2020Nothing published for this version
-
0.5.008 Sep 2020Release notes
Open source →This upgrade bumps our dependencies
bls12_381,groupandff, while making corresponding changes to the APIs. This release now only supports Rust compilers version 1.44.0 or later. -
0.4.024 Aug 2020Release notes
Open source →This release adds implementations of the
ffandgrouptraits. Additional trait implementations (for standard traits) have been added where theffandgrouptrait bounds require them.Added
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::GroupEncodinggroup::cofactor::CofactorCurveAffine
- New trait implementations for
jubjub::Fr:ff::{Field, PrimeField}
jubjub::AffinePoint::is_identityjubjub::AffinePoint::to_extendedjubjub::Scalar, as an alias forjubjub::Fr.
Changed
- We've migrated to
bls12_381 0.2. rand_coreis now a regular dependency.- We depend on the
byteordercrate again, as it is part of theff::PrimeFieldtrait. - The benchmarks are now implemented using
criterion.
-
0.3.004 Dec 2019Release notes
Open source →This release now depends on the
bls12_381crate, which exposes theFqfield type that we re-export.- The
FqandFrfield types now have better constant function support for various operations and constructors. - We no longer depend on the
byteordercrate. - We've bumped our
rand_coredev-dependency up to 0.5. - We've removed the
stdandnightlyfeatures. - We've bumped our dependency of
subtleup to^2.2.1.
- The
-
0.2.003 Jun 2019Release notes
Open source →This release switches to
subtle 2.1to bring in theCtOptiontype, and also makes a few useful API changes.- Implemented
Mul<Fr>forAffineNielsPointandExtendedNielsPoint - Changed
AffinePoint::to_niels()to be aconstfunction so that constant curve points can be constructed without statics. - Implemented
multiply_bitsforAffineNielsPoint,ExtendedNielsPoint - Removed
CtOptionand replaced it withCtOptionfromsubtlecrate. - Modified receivers of some methods to reduce stack usage
- Changed various
into_bytesmethods intoto_bytes
- Implemented
-
0.1.001 Apr 2019 -
0.0.029 Aug 2018Nothing published for this version