[][src]Trait sapling_crypto_ce::babyjubjub::JubjubParams

pub trait JubjubParams<E: JubjubEngine>: Sized {
    fn edwards_a(&self) -> &E::Fr;
fn edwards_d(&self) -> &E::Fr;
fn montgomery_a(&self) -> &E::Fr;
fn montgomery_2a(&self) -> &E::Fr;
fn scale(&self) -> &E::Fr;
fn pedersen_hash_generators(&self) -> &[Point<E, PrimeOrder>];
fn pedersen_hash_exp_table(&self) -> &[Vec<Vec<Point<E, PrimeOrder>>>];
fn pedersen_hash_chunks_per_generator(&self) -> usize;
fn pedersen_circuit_generators(&self) -> &[Vec<Vec<(E::Fr, E::Fr)>>];
fn fixed_base_chunks_per_generator(&self) -> usize;
fn generator(&self, base: FixedGenerators) -> &Point<E, PrimeOrder>;
fn circuit_generators(&self, _: FixedGenerators) -> &[Vec<(E::Fr, E::Fr)>];
fn pedersen_hash_exp_window_size() -> u32; }

The pre-computed parameters for Jubjub, including curve constants and various limits and window tables.

Required methods

fn edwards_a(&self) -> &E::Fr

The a constant of the twisted Edwards curve.

fn edwards_d(&self) -> &E::Fr

The d constant of the twisted Edwards curve.

fn montgomery_a(&self) -> &E::Fr

The A constant of the birationally equivalent Montgomery curve.

fn montgomery_2a(&self) -> &E::Fr

The A constant, doubled.

fn scale(&self) -> &E::Fr

The scaling factor used for conversion from the Montgomery form.

fn pedersen_hash_generators(&self) -> &[Point<E, PrimeOrder>]

Returns the generators (for each segment) used in all Pedersen commitments.

fn pedersen_hash_exp_table(&self) -> &[Vec<Vec<Point<E, PrimeOrder>>>]

Returns the exp table for Pedersen hashes.

fn pedersen_hash_chunks_per_generator(&self) -> usize

Returns the maximum number of chunks per segment of the Pedersen hash.

fn pedersen_circuit_generators(&self) -> &[Vec<Vec<(E::Fr, E::Fr)>>]

Returns the pre-computed window tables [-4, 3, 2, 1, 1, 2, 3, 4] of different magnitudes of the Pedersen hash segment generators.

fn fixed_base_chunks_per_generator(&self) -> usize

Returns the number of chunks needed to represent a full scalar during fixed-base exponentiation.

fn generator(&self, base: FixedGenerators) -> &Point<E, PrimeOrder>

Returns a fixed generator.

fn circuit_generators(&self, _: FixedGenerators) -> &[Vec<(E::Fr, E::Fr)>]

Returns a window table [0, 1, ..., 8] for different magnitudes of some fixed generator.

fn pedersen_hash_exp_window_size() -> u32

Returns the window size for exponentiation of Pedersen hash generators outside the circuit

Loading content...

Implementors

Loading content...