MlDsa65

Struct MlDsa65 

Source
pub struct MlDsa65;
Expand description

MlDsa65 is the parameter set for security category 3.

Trait Implementations§

Source§

impl AssociatedAlgorithmIdentifier for MlDsa65

Source§

const ALGORITHM_IDENTIFIER: AlgorithmIdentifierRef<'static>

AlgorithmIdentifier for this structure.
Source§

type Params = AnyRef<'static>

Algorithm parameters.
Source§

impl Clone for MlDsa65

Source§

fn clone(&self) -> MlDsa65

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 Debug for MlDsa65

Source§

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

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

impl Default for MlDsa65

Source§

fn default() -> MlDsa65

Returns the “default value” for a type. Read more
Source§

impl ParameterSet for MlDsa65

Source§

const TAU: usize = 49usize

Number of nonzero values in the polynomial c
Source§

type K = UInt<UInt<UInt<UTerm, B1>, B1>, B0>

Number of rows in the A matrix
Source§

type L = UInt<UInt<UInt<UTerm, B1>, B0>, B1>

Number of columns in the A matrix
Source§

type Eta = UInt<UInt<UInt<UTerm, B1>, B0>, B0>

Private key range
Source§

type Gamma1 = <UInt<UTerm, B1> as Shl<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B1>>>::Output

Error size bound for y
Source§

type Gamma2 = <<<<<UInt<UTerm, B1> as Shl<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>, B1>>>::Output as Sub<<UInt<UTerm, B1> as Shl<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>>>::Output>>::Output as Add<UInt<UTerm, B1>>>::Output as Sub<UInt<UTerm, B1>>>::Output as Div<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>>>::Output

Low-order rounding range
Source§

type TwoGamma2 = <UInt<UInt<UTerm, B1>, B0> as Mul<<MlDsa65 as ParameterSet>::Gamma2>>::Output

Low-order rounding range (2 * gamma2 in terms of the spec)
Source§

type W1Bits = <<<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0> as Div<UInt<UInt<UTerm, B1>, B0>>>::Output as Sub<UInt<UTerm, B1>>>::Output as Len>::Output

Encoding width of the W1 polynomial, namely bitlen((q - 1) / (2 * gamma2) - 1)
Source§

type Lambda = UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B0>, B0>

Collision strength of c_tilde, in bytes (lambda / 4 in the spec)
Source§

type Omega = UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B1>, B1>

Max number of true values in the hint
Source§

const BETA: u32 = _

Beta = Tau * Eta
Source§

impl PartialEq for MlDsa65

Source§

fn eq(&self, other: &MlDsa65) -> 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 StructuralPartialEq for MlDsa65

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> DynAssociatedAlgorithmIdentifier for T

Source§

fn algorithm_identifier(&self) -> Result<AlgorithmIdentifier<Any>, Error>

AlgorithmIdentifier for this structure.
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<P> KeyGen for P
where P: MlDsaParams,

Source§

fn key_gen<R>(rng: &mut R) -> KeyPair<P>
where R: RngCore + CryptoRng + ?Sized,

Generate a signing key pair from the specified RNG

Source§

fn key_gen_internal( xi: &Array<u8, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>>, ) -> KeyPair<P>
where P: MlDsaParams,

Deterministically generate a signing key pair from the specified seed

Source§

type KeyPair = KeyPair<P>

The type that is returned by key generation
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<P> SignatureParams for P
where <<<P as ParameterSet>::W1Bits as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::K>>::Output: Rem<<P as ParameterSet>::K, Output = UTerm> + ArraySize + Div<<P as ParameterSet>::K, Output = <<P as ParameterSet>::W1Bits as EncodingSize>::EncodedPolynomialSize>, P: ParameterSet, <P as ParameterSet>::Gamma1: Sub<UInt<UTerm, B1>>, (<<P as ParameterSet>::Gamma1 as Sub<UInt<UTerm, B1>>>::Output, <P as ParameterSet>::Gamma1): RangeEncodingSize, <<(<<P as ParameterSet>::Gamma1 as Sub<UInt<UTerm, B1>>>::Output, <P as ParameterSet>::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize: Mul<<P as ParameterSet>::L>, <<<(<<P as ParameterSet>::Gamma1 as Sub<UInt<UTerm, B1>>>::Output, <P as ParameterSet>::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::L>>::Output: ArraySize + Div<<P as ParameterSet>::L, Output = <<(<<P as ParameterSet>::Gamma1 as Sub<UInt<UTerm, B1>>>::Output, <P as ParameterSet>::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize> + Rem<<P as ParameterSet>::L, Output = UTerm>, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>: Mul<<P as ParameterSet>::W1Bits>, <<P as ParameterSet>::W1Bits as EncodingSize>::EncodedPolynomialSize: Mul<<P as ParameterSet>::K>, <P as ParameterSet>::Omega: Add<<P as ParameterSet>::K>, <<P as ParameterSet>::Omega as Add<<P as ParameterSet>::K>>::Output: ArraySize + Sub<<P as ParameterSet>::Omega, Output = <P as ParameterSet>::K>, <P as ParameterSet>::Lambda: Add<<<<(<<P as ParameterSet>::Gamma1 as Sub<UInt<UTerm, B1>>>::Output, <P as ParameterSet>::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::L>>::Output>, <<P as ParameterSet>::Lambda as Add<<<<(<<P as ParameterSet>::Gamma1 as Sub<UInt<UTerm, B1>>>::Output, <P as ParameterSet>::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::L>>::Output>>::Output: ArraySize + Add<<<P as ParameterSet>::Omega as Add<<P as ParameterSet>::K>>::Output> + Sub<<P as ParameterSet>::Lambda, Output = <<<(<<P as ParameterSet>::Gamma1 as Sub<UInt<UTerm, B1>>>::Output, <P as ParameterSet>::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::L>>::Output>, <<<P as ParameterSet>::Lambda as Add<<<<(<<P as ParameterSet>::Gamma1 as Sub<UInt<UTerm, B1>>>::Output, <P as ParameterSet>::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::L>>::Output>>::Output as Add<<<P as ParameterSet>::Omega as Add<<P as ParameterSet>::K>>::Output>>::Output: ArraySize + Sub<<<P as ParameterSet>::Lambda as Add<<<<(<<P as ParameterSet>::Gamma1 as Sub<UInt<UTerm, B1>>>::Output, <P as ParameterSet>::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::L>>::Output>>::Output, Output = <<P as ParameterSet>::Omega as Add<<P as ParameterSet>::K>>::Output>,

Source§

const GAMMA1_MINUS_BETA: u32 = const GAMMA1_MINUS_BETA: u32 = <P::Gamma1>::U32 - P::BETA;

Source§

const GAMMA2_MINUS_BETA: u32 = const GAMMA2_MINUS_BETA: u32 = <P::Gamma2>::U32 - P::BETA;

Source§

type W1Size = <<P as ParameterSet>::W1Bits as VectorEncodingSize<<P as ParameterSet>::K>>::EncodedVectorSize

Source§

type ZSize = <<(<<P as ParameterSet>::Gamma1 as Sub<UInt<UTerm, B1>>>::Output, <P as ParameterSet>::Gamma1) as RangeEncodingSize>::EncodingSize as VectorEncodingSize<<P as ParameterSet>::L>>::EncodedVectorSize

Source§

type HintSize = <<P as ParameterSet>::Omega as Add<<P as ParameterSet>::K>>::Output

Source§

type SignatureSize = <<<P as ParameterSet>::Lambda as Add<<P as SignatureParams>::ZSize>>::Output as Add<<P as SignatureParams>::HintSize>>::Output

Source§

fn split_hint( y: &Array<u8, <P as SignatureParams>::HintSize>, ) -> (&Array<u8, <P as ParameterSet>::Omega>, &Array<u8, <P as ParameterSet>::K>)

Source§

fn encode_w1( w1: &Vector<BaseField, <P as ParameterSet>::K>, ) -> Array<u8, <P as SignatureParams>::W1Size>

Source§

fn decode_w1( enc: &Array<u8, <P as SignatureParams>::W1Size>, ) -> Vector<BaseField, <P as ParameterSet>::K>

Source§

fn encode_z( z: &Vector<BaseField, <P as ParameterSet>::L>, ) -> Array<u8, <P as SignatureParams>::ZSize>

Source§

fn decode_z( enc: &Array<u8, <P as SignatureParams>::ZSize>, ) -> Vector<BaseField, <P as ParameterSet>::L>

Source§

fn concat_sig( c_tilde: Array<u8, <P as ParameterSet>::Lambda>, z: Array<u8, <P as SignatureParams>::ZSize>, h: Array<u8, <P as SignatureParams>::HintSize>, ) -> Array<u8, <P as SignatureParams>::SignatureSize>

Source§

fn split_sig( enc: &Array<u8, <P as SignatureParams>::SignatureSize>, ) -> (&Array<u8, <P as ParameterSet>::Lambda>, &Array<u8, <P as SignatureParams>::ZSize>, &Array<u8, <P as SignatureParams>::HintSize>)

Source§

impl<P> SigningKeyParams for P
where <<<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::L>>::Output: Rem<<P as ParameterSet>::L, Output = UTerm> + ArraySize + Div<<P as ParameterSet>::L, Output = <<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize>, P: ParameterSet, <<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize: Mul<<P as ParameterSet>::K> + Mul<<P as ParameterSet>::L>, <<<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::K>>::Output: ArraySize + Div<<P as ParameterSet>::K, Output = <<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize> + Rem<<P as ParameterSet>::K, Output = UTerm>, <P as ParameterSet>::Eta: Add, <<P as ParameterSet>::Eta as Add>::Output: Len, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B0>, B0>, B0>, B0>, B0>: Mul<<P as ParameterSet>::K>, <UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B0>, B0>, B0>, B0>, B0> as Mul<<P as ParameterSet>::K>>::Output: ArraySize + Div<<P as ParameterSet>::K, Output = UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B0>, B0>, B0>, B0>, B0>> + Rem<<P as ParameterSet>::K, Output = UTerm>, <<<P as ParameterSet>::Eta as Add>::Output as Len>::Output: EncodingSize, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>: Add<<<<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::L>>::Output>, <UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0> as Add<<<<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::L>>::Output>>::Output: ArraySize + Add<<<<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::K>>::Output> + Sub<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, Output = <<<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::L>>::Output>, <<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0> as Add<<<<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::L>>::Output>>::Output as Add<<<<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::K>>::Output>>::Output: ArraySize + Add<<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B0>, B0>, B0>, B0>, B0> as Mul<<P as ParameterSet>::K>>::Output> + Sub<<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0> as Add<<<<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::L>>::Output>>::Output, Output = <<<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::K>>::Output>, <<<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0> as Add<<<<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::L>>::Output>>::Output as Add<<<<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::K>>::Output>>::Output as Add<<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B0>, B0>, B0>, B0>, B0> as Mul<<P as ParameterSet>::K>>::Output>>::Output: ArraySize + Sub<<<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0> as Add<<<<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::L>>::Output>>::Output as Add<<<<<<P as ParameterSet>::Eta as Add>::Output as Len>::Output as EncodingSize>::EncodedPolynomialSize as Mul<<P as ParameterSet>::K>>::Output>>::Output, Output = <UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B0>, B0>, B0>, B0>, B0> as Mul<<P as ParameterSet>::K>>::Output>,

Source§

type S1Size = <<(<P as ParameterSet>::Eta, <P as ParameterSet>::Eta) as RangeEncodingSize>::EncodingSize as VectorEncodingSize<<P as ParameterSet>::L>>::EncodedVectorSize

Source§

type S2Size = <<(<P as ParameterSet>::Eta, <P as ParameterSet>::Eta) as RangeEncodingSize>::EncodingSize as VectorEncodingSize<<P as ParameterSet>::K>>::EncodedVectorSize

Source§

type T0Size = <<(<<UInt<UTerm, B1> as Shl<<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1> as Sub<UInt<UTerm, B1>>>::Output>>::Output as Sub<UInt<UTerm, B1>>>::Output, <UInt<UTerm, B1> as Shl<<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1> as Sub<UInt<UTerm, B1>>>::Output>>::Output) as RangeEncodingSize>::EncodingSize as VectorEncodingSize<<P as ParameterSet>::K>>::EncodedVectorSize

Source§

type SigningKeySize = <<<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0> as Add<<<(<P as ParameterSet>::Eta, <P as ParameterSet>::Eta) as RangeEncodingSize>::EncodingSize as VectorEncodingSize<<P as ParameterSet>::L>>::EncodedVectorSize>>::Output as Add<<<(<P as ParameterSet>::Eta, <P as ParameterSet>::Eta) as RangeEncodingSize>::EncodingSize as VectorEncodingSize<<P as ParameterSet>::K>>::EncodedVectorSize>>::Output as Add<<<(<<UInt<UTerm, B1> as Shl<<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1> as Sub<UInt<UTerm, B1>>>::Output>>::Output as Sub<UInt<UTerm, B1>>>::Output, <UInt<UTerm, B1> as Shl<<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1> as Sub<UInt<UTerm, B1>>>::Output>>::Output) as RangeEncodingSize>::EncodingSize as VectorEncodingSize<<P as ParameterSet>::K>>::EncodedVectorSize>>::Output

Source§

fn encode_s1( s1: &Vector<BaseField, <P as ParameterSet>::L>, ) -> Array<u8, <P as SigningKeyParams>::S1Size>

Source§

fn decode_s1( enc: &Array<u8, <P as SigningKeyParams>::S1Size>, ) -> Vector<BaseField, <P as ParameterSet>::L>

Source§

fn encode_s2( s2: &Vector<BaseField, <P as ParameterSet>::K>, ) -> Array<u8, <P as SigningKeyParams>::S2Size>

Source§

fn decode_s2( enc: &Array<u8, <P as SigningKeyParams>::S2Size>, ) -> Vector<BaseField, <P as ParameterSet>::K>

Source§

fn encode_t0( t0: &Vector<BaseField, <P as ParameterSet>::K>, ) -> Array<u8, <P as SigningKeyParams>::T0Size>

Source§

fn decode_t0( enc: &Array<u8, <P as SigningKeyParams>::T0Size>, ) -> Vector<BaseField, <P as ParameterSet>::K>

Source§

fn concat_sk( rho: Array<u8, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>>, K: Array<u8, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>>, tr: Array<u8, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>>, s1: Array<u8, <P as SigningKeyParams>::S1Size>, s2: Array<u8, <P as SigningKeyParams>::S2Size>, t0: Array<u8, <P as SigningKeyParams>::T0Size>, ) -> Array<u8, <P as SigningKeyParams>::SigningKeySize>

Source§

fn split_sk( enc: &Array<u8, <P as SigningKeyParams>::SigningKeySize>, ) -> (&Array<u8, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>>, &Array<u8, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>>, &Array<u8, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>>, &Array<u8, <P as SigningKeyParams>::S1Size>, &Array<u8, <P as SigningKeyParams>::S2Size>, &Array<u8, <P as SigningKeyParams>::T0Size>)

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.
Source§

impl<P> VerifyingKeyParams for P
where <UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, B0>, B0>, B0>, B0> as Mul<<P as ParameterSet>::K>>::Output: ArraySize + Div<<P as ParameterSet>::K, Output = UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, B0>, B0>, B0>, B0>> + Rem<<P as ParameterSet>::K, Output = UTerm>, P: ParameterSet, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>: Add<<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, B0>, B0>, B0>, B0> as Mul<<P as ParameterSet>::K>>::Output>, <UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0> as Add>::Output: ArraySize, <UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0> as Add<<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, B0>, B0>, B0>, B0> as Mul<<P as ParameterSet>::K>>::Output>>::Output: ArraySize + Sub<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, Output = <UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, B0>, B0>, B0>, B0> as Mul<<P as ParameterSet>::K>>::Output>, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, B0>, B0>, B0>, B0>: Mul<<P as ParameterSet>::K>,

Source§

impl<T> MlDsaParams for T