Skip to main content

MLKEMPrivateKeyExpanded

Struct MLKEMPrivateKeyExpanded 

Source
pub struct MLKEMPrivateKeyExpanded<const k: usize, PK: MLKEMPublicKeyInternalTrait<k, PK_LEN>, SK: MLKEMPrivateKeyTrait<k, PK, SK_LEN, PK_LEN> + MLKEMPrivateKeyInternalTrait<k, PK, SK_LEN, PK_LEN>, const SK_LEN: usize, const PK_LEN: usize> { /* private fields */ }
Expand description

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

Trait Implementations§

Source§

impl<const k: usize, PK: Clone + MLKEMPublicKeyInternalTrait<k, PK_LEN>, SK: Clone + MLKEMPrivateKeyTrait<k, PK, SK_LEN, PK_LEN> + MLKEMPrivateKeyInternalTrait<k, PK, SK_LEN, PK_LEN>, const SK_LEN: usize, const PK_LEN: usize> Clone for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, PK_LEN>

Source§

fn clone(&self) -> MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, 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>, SK: MLKEMPrivateKeyTrait<k, PK, SK_LEN, PK_LEN> + MLKEMPrivateKeyInternalTrait<k, PK, SK_LEN, PK_LEN>, const SK_LEN: usize, const PK_LEN: usize> Debug for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, 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>, SK: MLKEMPrivateKeyTrait<k, PK, SK_LEN, PK_LEN> + MLKEMPrivateKeyInternalTrait<k, PK, SK_LEN, PK_LEN>, const SK_LEN: usize, const PK_LEN: usize> Display for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, 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>, SK: MLKEMPrivateKeyTrait<k, PK, SK_LEN, PK_LEN> + MLKEMPrivateKeyInternalTrait<k, PK, SK_LEN, PK_LEN>, const SK_LEN: usize, const PK_LEN: usize> Drop for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, PK_LEN>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more
Source§

impl<const k: usize, PK: MLKEMPublicKeyInternalTrait<k, PK_LEN>, SK: MLKEMPrivateKeyTrait<k, PK, SK_LEN, PK_LEN> + MLKEMPrivateKeyInternalTrait<k, PK, SK_LEN, PK_LEN>, const SK_LEN: usize, const PK_LEN: usize> Eq for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, PK_LEN>

Source§

impl<const k: usize, PK: MLKEMPublicKeyInternalTrait<k, PK_LEN>, SK: MLKEMPrivateKeyTrait<k, PK, SK_LEN, PK_LEN> + MLKEMPrivateKeyInternalTrait<k, PK, SK_LEN, PK_LEN>, const SK_LEN: usize, const PK_LEN: usize> From<&SK> for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, PK_LEN>

Source§

fn from(dk: &SK) -> 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>, SK: MLKEMPrivateKeyTrait<k, PK, SK_LEN, PK_LEN> + MLKEMPrivateKeyInternalTrait<k, PK, SK_LEN, PK_LEN>, const SK_LEN: usize, const PK_LEN: usize> KEMPrivateKey<SK_LEN> for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, PK_LEN>

Source§

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

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

fn encode_out(&self, out: &mut [u8; SK_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>, SK: MLKEMPrivateKeyTrait<k, PK, SK_LEN, PK_LEN> + MLKEMPrivateKeyInternalTrait<k, PK, SK_LEN, PK_LEN>, const SK_LEN: usize, const PK_LEN: usize> MLKEMPrivateKeyTrait<k, PK, SK_LEN, PK_LEN> for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, PK_LEN>

Source§

fn seed(&self) -> Option<KeyMaterial<64>>

Get a ref to the seed, if there is one stored with this private key
Source§

fn pk(&self) -> &PK

This is a partial implementation of keygen_internal(), and probably not allowed in FIPS mode.
Source§

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

Get a ref to the stored public key hash.
Source§

fn sk_decode(sk: &[u8; SK_LEN]) -> Result<Self, KEMError>

Decode the private key.
Source§

impl<const k: usize, PK: MLKEMPublicKeyInternalTrait<k, PK_LEN>, SK: MLKEMPrivateKeyTrait<k, PK, SK_LEN, PK_LEN> + MLKEMPrivateKeyInternalTrait<k, PK, SK_LEN, PK_LEN>, const SK_LEN: usize, const PK_LEN: usize> PartialEq for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, 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, PK: MLKEMPublicKeyInternalTrait<k, PK_LEN>, SK: MLKEMPrivateKeyTrait<k, PK, SK_LEN, PK_LEN> + MLKEMPrivateKeyInternalTrait<k, PK, SK_LEN, PK_LEN>, const SK_LEN: usize, const PK_LEN: usize> Secret for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, PK_LEN>

Auto Trait Implementations§

§

impl<const k: usize, PK, SK, const SK_LEN: usize, const PK_LEN: usize> Freeze for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, PK_LEN>
where SK: Freeze,

§

impl<const k: usize, PK, SK, const SK_LEN: usize, const PK_LEN: usize> RefUnwindSafe for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, PK_LEN>

§

impl<const k: usize, PK, SK, const SK_LEN: usize, const PK_LEN: usize> Send for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, PK_LEN>
where SK: Send, PK: Send,

§

impl<const k: usize, PK, SK, const SK_LEN: usize, const PK_LEN: usize> Sync for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, PK_LEN>
where SK: Sync, PK: Sync,

§

impl<const k: usize, PK, SK, const SK_LEN: usize, const PK_LEN: usize> Unpin for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, PK_LEN>
where SK: Unpin, PK: Unpin,

§

impl<const k: usize, PK, SK, const SK_LEN: usize, const PK_LEN: usize> UnsafeUnpin for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, PK_LEN>
where SK: UnsafeUnpin,

§

impl<const k: usize, PK, SK, const SK_LEN: usize, const PK_LEN: usize> UnwindSafe for MLKEMPrivateKeyExpanded<k, PK, SK, SK_LEN, PK_LEN>
where SK: UnwindSafe, 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.