Skip to main content

MLDSAPublicKeyExpanded

Struct MLDSAPublicKeyExpanded 

Source
pub struct MLDSAPublicKeyExpanded<const k: usize, const l: usize, PK: MLDSAPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> { /* private fields */ }
Expand description

A fully expanded ML-DSA public key that includes the intermediate values needed for performing multiple verification operations against the same public key, which causes the public key struct to take up more memory, but results in more efficient repeated verify() operations.

Trait Implementations§

Source§

impl<const k: usize, const l: usize, PK: Clone + MLDSAPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> Clone for MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>

Source§

fn clone(&self) -> MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<const k: usize, const l: usize, PK: MLDSAPublicKeyTrait<k, l, PK_LEN> + MLDSAPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> Debug for MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>

Source§

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

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

impl<const k: usize, const l: usize, PK: MLDSAPublicKeyTrait<k, l, PK_LEN> + MLDSAPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> Display for MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>

Source§

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

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

impl<const k: usize, const l: usize, PK: MLDSAPublicKeyTrait<k, l, PK_LEN> + MLDSAPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> Eq for MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>

Source§

impl<const k: usize, const l: usize, PK: MLDSAPublicKeyTrait<k, l, PK_LEN> + MLDSAPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> From<&PK> for MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>

Source§

fn from(pk: &PK) -> Self

Fully expands the intermediate values needed for performing multiple encaps operations against the same public key, which causes the MLKEMPublicKey struct to take up

Source§

impl<const k: usize, const l: usize, PK: MLDSAPublicKeyTrait<k, l, PK_LEN> + MLDSAPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> MLDSAPublicKeyTrait<k, l, PK_LEN> for MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>

Source§

fn pk_decode(pk: &[u8; PK_LEN]) -> Self

Algorithm 23 pkDecode(𝑝𝑘) Reverses the procedure pkEncode. Input: Public key 𝑝𝑘 ∈ 𝔹32+32𝑘(bitlen (𝑞−1)−𝑑). Output: 𝜌 ∈ 𝔹32, 𝐭1 ∈ 𝑅𝑘 with coefficients in [0, 2bitlen (𝑞−1)−𝑑 − 1].
Source§

fn A_hat(&self) -> Matrix<k, l>

Get a copy of the expanded public matrix A_hat
Source§

fn compute_tr(&self) -> [u8; 64]

Compute the public key hash (tr) from the public key. Read more
Source§

impl<const k: usize, const l: usize, PK: MLDSAPublicKeyTrait<k, l, PK_LEN> + MLDSAPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> PartialEq for MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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<const k: usize, const l: usize, PK: MLDSAPublicKeyTrait<k, l, PK_LEN> + MLDSAPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> SignaturePublicKey<PK_LEN> for MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>

Source§

fn encode(&self) -> [u8; PK_LEN]

Write it out to bytes in its standard encoding.
Source§

fn encode_out(&self, out: &mut [u8; PK_LEN]) -> usize

Write it out to bytes in its standard encoding.
Source§

fn from_bytes(bytes: &[u8]) -> Result<Self, SignatureError>

Read it in from bytes in its standard encoding.

Auto Trait Implementations§

§

impl<const k: usize, const l: usize, PK, const PK_LEN: usize> Freeze for MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>
where PK: Freeze,

§

impl<const k: usize, const l: usize, PK, const PK_LEN: usize> RefUnwindSafe for MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>
where PK: RefUnwindSafe,

§

impl<const k: usize, const l: usize, PK, const PK_LEN: usize> Send for MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>
where PK: Send,

§

impl<const k: usize, const l: usize, PK, const PK_LEN: usize> Sync for MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>
where PK: Sync,

§

impl<const k: usize, const l: usize, PK, const PK_LEN: usize> Unpin for MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>
where PK: Unpin,

§

impl<const k: usize, const l: usize, PK, const PK_LEN: usize> UnsafeUnpin for MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>
where PK: UnsafeUnpin,

§

impl<const k: usize, const l: usize, PK, const PK_LEN: usize> UnwindSafe for MLDSAPublicKeyExpanded<k, l, PK, PK_LEN>
where PK: UnwindSafe,

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.