crypto_bigint::modular::constant_mod

Trait ResidueParams

Source
pub trait ResidueParams<const LIMBS: usize>:
    Copy
    + Debug
    + Default
    + Eq
    + Send
    + Sync
    + 'static {
    const LIMBS: usize;
    const MODULUS: Uint<LIMBS>;
    const R: Uint<LIMBS>;
    const R2: Uint<LIMBS>;
    const R3: Uint<LIMBS>;
    const MOD_NEG_INV: Limb;
}
Expand description

The parameters to efficiently go to and from the Montgomery form for a given odd modulus. An easy way to generate these parameters is using the impl_modulus! macro. These parameters are constant, so they cannot be set at runtime.

Unfortunately, LIMBS must be generic for now until const generics are stabilized.

Required Associated Constants§

Source

const LIMBS: usize

Number of limbs required to encode a residue

Source

const MODULUS: Uint<LIMBS>

The constant modulus

Source

const R: Uint<LIMBS>

Parameter used in Montgomery reduction

Source

const R2: Uint<LIMBS>

R^2, used to move into Montgomery form

Source

const R3: Uint<LIMBS>

R^3, used to perform a multiplicative inverse

Source

const MOD_NEG_INV: Limb

The lowest limbs of -(MODULUS^-1) mod R

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§