Skip to main content

BoxedMontyParams

Struct BoxedMontyParams 

Source
pub struct BoxedMontyParams(Arc<MontyParams<BoxedUint>>);
Expand description

Parameters to efficiently go to/from the Montgomery form for an odd modulus whose size and value are both chosen at runtime.

Tuple Fields§

§0: Arc<MontyParams<BoxedUint>>

Implementations§

Source§

impl BoxedMontyParams

Source

pub fn new(modulus: Odd<BoxedUint>) -> Self

Instantiates a new set of BoxedMontyParams representing the given modulus.

TODO(tarcieri): DRY out with MontyParams::new?

Source

pub fn new_vartime(modulus: Odd<BoxedUint>) -> Self

Instantiates a new set of BoxedMontyParams representing the given modulus. This version operates in variable-time with respect to the modulus.

TODO(tarcieri): DRY out with MontyParams::new_vartime?

Source

pub fn modulus(&self) -> &Odd<BoxedUint>

Modulus value.

Source

pub fn bits_precision(&self) -> u32

Bits of precision in the modulus.

Source

pub(crate) fn r2(&self) -> &BoxedUint

Source

pub(crate) fn one(&self) -> &BoxedUint

Source

pub(crate) fn mod_inv(&self) -> U64

Source

pub(crate) fn mod_neg_inv(&self) -> Limb

Source

pub(crate) fn mod_leading_zeros(&self) -> u32

Source§

impl BoxedMontyParams

Source

fn inverter(&self) -> BoxedSafeGcdInverter

Compute the inverter for these params.

Trait Implementations§

Source§

impl AsRef<MontyParams<BoxedUint>> for BoxedMontyParams

Source§

fn as_ref(&self) -> &MontyParams<BoxedUint>

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Clone for BoxedMontyParams

Source§

fn clone(&self) -> BoxedMontyParams

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl CtAssign for BoxedMontyParams

Source§

fn ct_assign(&mut self, other: &Self, choice: Choice)

Conditionally assign src to self if choice is Choice::TRUE.
Source§

impl CtEq for BoxedMontyParams

Source§

fn ct_eq(&self, other: &Self) -> Choice

Determine if self is equal to other in constant-time.
Source§

fn ct_ne(&self, other: &Rhs) -> Choice

Determine if self is NOT equal to other in constant-time.
Source§

impl CtEqSlice for BoxedMontyParams

Source§

fn ct_eq_slice(a: &[Self], b: &[Self]) -> Choice

Determine if a is equal to b in constant-time.
Source§

fn ct_ne_slice(a: &[Self], b: &[Self]) -> Choice

Determine if a is NOT equal to b in constant-time.
Source§

impl CtSelect for BoxedMontyParams

Source§

fn ct_select(&self, other: &Self, choice: Choice) -> Self

Select between self and other based on choice, returning a copy of the value. Read more
Source§

fn ct_swap(&mut self, other: &mut Self, choice: Choice)

Conditionally swap self and other if choice is Choice::TRUE.
Source§

impl Debug for BoxedMontyParams

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> From<&'a BoxedMontyParams> for BoxedMontyMultiplier<'a>

Source§

fn from(params: &'a BoxedMontyParams) -> BoxedMontyMultiplier<'a>

Converts to this type from the input type.
Source§

impl<const LIMBS: usize> From<&MontyParams<Uint<LIMBS>>> for BoxedMontyParams

Source§

fn from(params: &FixedMontyParams<LIMBS>) -> Self

Converts to this type from the input type.
Source§

impl From<MontyParams<BoxedUint>> for BoxedMontyParams

Source§

fn from(params: MontyParams<BoxedUint>) -> Self

Converts to this type from the input type.
Source§

impl<const LIMBS: usize> From<MontyParams<Uint<LIMBS>>> for BoxedMontyParams

Source§

fn from(params: FixedMontyParams<LIMBS>) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for BoxedMontyParams

Source§

fn eq(&self, other: &BoxedMontyParams) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for BoxedMontyParams

Source§

impl StructuralPartialEq for BoxedMontyParams

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.