[−][src]Crate jubjub
This crate provides an implementation of the Jubjub elliptic curve and its associated
field arithmetic. See README.md
for more details about Jubjub.
API
AffinePoint
/ExtendedPoint
which are implementations of Jubjub group arithmeticAffineNielsPoint
/ExtendedNielsPoint
which are pre-processed Jubjub pointsFq
, which is the base field of JubjubFr
, which is the scalar field of Jubjubbatch_normalize
for converting manyExtendedPoint
s intoAffinePoint
s efficiently.
Constant Time
All operations are constant time unless explicitly noted; these functions will contain "vartime" in their name and they will be documented as variable time.
This crate relies on the subtle
crate for achieving constant time arithmetic. It is
recommended to enable the nightly
feature on this crate (which enables the nightly
feature in the subtle
crate) to defend against compiler optimizations that may
compromise constant time arithmetic. However, this requires use of the nightly version
of the Rust compiler.
Features
nightly
: This enablessubtle/nightly
which attempts to prevent the compiler from performing optimizations that could compromise constant time arithmetic. It is recommended to enable this if you are able to use a nightly version of the Rust compiler.
Structs
AffineNielsPoint | This is a pre-processed version of an affine point |
AffinePoint | This represents a Jubjub point in the affine |
ExtendedNielsPoint | This is a pre-processed version of an extended point |
ExtendedPoint | This represents an extended point |
Fq | Represents an element of |
Fr | Represents an element of |
Functions
batch_normalize | This takes a mutable slice of |