Trait franklin_crypto::jubjub::JubjubParams

source ·
pub trait JubjubParams<E: JubjubEngine>: Sized {
    // Required methods
    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,
        base: FixedGenerators,
    ) -> &[Vec<(E::Fr, E::Fr)>];
    fn pedersen_hash_exp_window_size(&self) -> u32;
}
Expand description

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

Required Methods§

source

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

The d constant of the twisted Edwards curve.

source

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

The A constant of the birationally equivalent Montgomery curve.

source

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

The A constant, doubled.

source

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

The scaling factor used for conversion from the Montgomery form.

source

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

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

source

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

Returns the exp table for Pedersen hashes.

source

fn pedersen_hash_chunks_per_generator(&self) -> usize

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

source

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.

source

fn fixed_base_chunks_per_generator(&self) -> usize

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

source

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

Returns a fixed generator.

source

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

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

source

fn pedersen_hash_exp_window_size(&self) -> u32

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

Object Safety§

This trait is not object safe.

Implementors§