KemCore

Trait KemCore 

Source
pub trait KemCore: Clone {
    type SharedKeySize: ArraySize;
    type CiphertextSize: ArraySize;
    type DecapsulationKey: Decapsulate<Ciphertext<Self>, SharedKey<Self>> + EncodedSizeUser + Debug + PartialEq;
    type EncapsulationKey: Encapsulate<Ciphertext<Self>, SharedKey<Self>> + EncodedSizeUser + Clone + Debug + PartialEq;

    // Required methods
    fn generate<R: CryptoRng + ?Sized>(
        rng: &mut R,
    ) -> (Self::DecapsulationKey, Self::EncapsulationKey);
    fn from_seed(seed: Seed) -> (Self::DecapsulationKey, Self::EncapsulationKey);
}
Expand description

A generic interface to a Key Encapsulation Method

Required Associated Types§

Source

type SharedKeySize: ArraySize

The size of a shared key generated by this KEM

Source

type CiphertextSize: ArraySize

The size of a ciphertext encapsulating a shared key

Source

type DecapsulationKey: Decapsulate<Ciphertext<Self>, SharedKey<Self>> + EncodedSizeUser + Debug + PartialEq

A decapsulation key for this KEM

Source

type EncapsulationKey: Encapsulate<Ciphertext<Self>, SharedKey<Self>> + EncodedSizeUser + Clone + Debug + PartialEq

An encapsulation key for this KEM

Required Methods§

Source

fn generate<R: CryptoRng + ?Sized>( rng: &mut R, ) -> (Self::DecapsulationKey, Self::EncapsulationKey)

Generate a new (decapsulation, encapsulation) key pair.

Source

fn from_seed(seed: Seed) -> (Self::DecapsulationKey, Self::EncapsulationKey)

Generate a new (decapsulation, encapsulation) key pair deterministically from the given uniformly random seed value.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<P> KemCore for Kem<P>
where P: KemParams,