Trait crypto_bigint::Monty
source · pub trait Monty: 'static + Clone + Debug + Eq + Sized + Send + Sync + Add<Output = Self> + for<'a> Add<&'a Self, Output = Self> + AddAssign + for<'a> AddAssign<&'a Self> + Sub<Output = Self> + for<'a> Sub<&'a Self, Output = Self> + SubAssign + for<'a> SubAssign<&'a Self> + Mul<Output = Self> + for<'a> Mul<&'a Self, Output = Self> + MulAssign + for<'a> MulAssign<&'a Self> + Neg<Output = Self> + PowBoundedExp<Self::Integer> + Square + SquareAssign {
type Integer: Integer<Monty = Self>;
type Params: 'static + Clone + Debug + Eq + Sized + Send + Sync;
// Required methods
fn new_params_vartime(modulus: Odd<Self::Integer>) -> Self::Params;
fn new(value: Self::Integer, params: Self::Params) -> Self;
fn zero(params: Self::Params) -> Self;
fn one(params: Self::Params) -> Self;
fn params(&self) -> &Self::Params;
fn as_montgomery(&self) -> &Self::Integer;
fn div_by_2(&self) -> Self;
}
Expand description
A representation of an integer optimized for the performance of modular operations.
Required Associated Types§
Required Methods§
sourcefn new_params_vartime(modulus: Odd<Self::Integer>) -> Self::Params
fn new_params_vartime(modulus: Odd<Self::Integer>) -> Self::Params
Create the precomputed data for Montgomery representation of integers modulo modulus
,
variable time in modulus
.
sourcefn new(value: Self::Integer, params: Self::Params) -> Self
fn new(value: Self::Integer, params: Self::Params) -> Self
Convert the value into the representation using precomputed data.
sourcefn as_montgomery(&self) -> &Self::Integer
fn as_montgomery(&self) -> &Self::Integer
Access the value in Montgomery form.
Object Safety§
This trait is not object safe.