franklin_crypto::jubjub

Trait 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

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§