Skip to main content

MLKEMPublicKeyExpanded

Struct MLKEMPublicKeyExpanded 

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

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

Trait Implementations§

Source§

impl<const k: usize, PK: Clone + MLKEMPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> Clone for MLKEMPublicKeyExpanded<k, PK, PK_LEN>

Source§

fn clone(&self) -> MLKEMPublicKeyExpanded<k, 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, PK: MLKEMPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> Debug for MLKEMPublicKeyExpanded<k, 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, PK: MLKEMPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> Display for MLKEMPublicKeyExpanded<k, 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, PK: MLKEMPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> Eq for MLKEMPublicKeyExpanded<k, PK, PK_LEN>

Source§

impl<const k: usize, PK: MLKEMPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> From<&PK> for MLKEMPublicKeyExpanded<k, PK, PK_LEN>

Source§

fn from(ek: &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, PK: MLKEMPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> KEMPublicKey<PK_LEN> for MLKEMPublicKeyExpanded<k, 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, KEMError>

Read it in from bytes in its standard encoding.
Source§

impl<const k: usize, PK: MLKEMPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> MLKEMPublicKeyTrait<k, PK_LEN> for MLKEMPublicKeyExpanded<k, PK, PK_LEN>

Source§

fn pk_decode(pk: &[u8; PK_LEN]) -> Result<Self, KEMError>

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, k>

Get a copy of the expanded public matrix A_hat
Source§

fn compute_hash(&self) -> [u8; 32]

Get the hash of the public key
Source§

impl<const k: usize, PK: MLKEMPublicKeyInternalTrait<k, PK_LEN>, const PK_LEN: usize> PartialEq for MLKEMPublicKeyExpanded<k, 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.

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<const k: usize, PK, const PK_LEN: usize> UnwindSafe for MLKEMPublicKeyExpanded<k, 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.