Trait mls_rs_crypto_traits::KemType
source · pub trait KemType: Send + Sync {
type Error: IntoAnyError + Send + Sync;
// Required methods
fn kem_id(&self) -> u16;
fn derive(
&self,
ikm: &[u8]
) -> Result<(HpkeSecretKey, HpkePublicKey), Self::Error>;
fn generate(&self) -> Result<(HpkeSecretKey, HpkePublicKey), Self::Error>;
fn public_key_validate(
&self,
key: &HpkePublicKey
) -> Result<(), Self::Error>;
fn encap(
&self,
remote_key: &HpkePublicKey
) -> Result<KemResult, Self::Error>;
fn decap(
&self,
enc: &[u8],
secret_key: &HpkeSecretKey,
local_public: &HpkePublicKey
) -> Result<Vec<u8>, Self::Error>;
}
Expand description
A trait that provides the required KEM functions