Trait Encapsulator

Source
pub trait Encapsulator<EK: EncappedKey> {
    // Required method
    fn try_encap<R: CryptoRng + RngCore>(
        &self,
        csprng: &mut R,
        recip_pubkey: &EK::RecipientPublicKey,
    ) -> Result<(EK, SharedSecret<EK>), Error>;
}
Expand description

Represents the functionality of a key encapsulator. For unauthenticated encapsulation, Self can be an empty struct. For authenticated encapsulation, Self is a private key.

Required Methods§

Source

fn try_encap<R: CryptoRng + RngCore>( &self, csprng: &mut R, recip_pubkey: &EK::RecipientPublicKey, ) -> Result<(EK, SharedSecret<EK>), Error>

Attempts to encapsulate a fresh shared secret with the given recipient. The resulting shared secret is bound to the identity encoded in Self (i.e., authenticated wrt Self). If Self is empty, then this is equivalent to unauthenticated encapsulation. Returns the shared secret and encapsulated key on success, or an error if something went wrong.

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§