Struct DecapsulationKey
pub struct DecapsulationKey<Id = AlgorithmId>where
Id: AlgorithmIdentifier,{ /* private fields */ }Expand description
A serializable decapulsation key usable with KEMs. This can be randomly generated with DecapsulationKey::generate.
Implementations§
§impl<Id> DecapsulationKey<Id>where
Id: AlgorithmIdentifier,
impl<Id> DecapsulationKey<Id>where
Id: AlgorithmIdentifier,
pub fn generate(
alg: &'static Algorithm<Id>,
) -> Result<DecapsulationKey<Id>, Unspecified>
pub fn generate( alg: &'static Algorithm<Id>, ) -> Result<DecapsulationKey<Id>, Unspecified>
Generate a new KEM decapsulation key for the given algorithm.
§Errors
error::Unspecified when operation fails due to internal error.
pub fn algorithm(&self) -> &'static Algorithm<Id>
pub fn algorithm(&self) -> &'static Algorithm<Id>
Return the algorithm associated with the given KEM decapsulation key.
pub fn encapsulation_key(&self) -> Result<EncapsulationKey<Id>, Unspecified>
pub fn encapsulation_key(&self) -> Result<EncapsulationKey<Id>, Unspecified>
Computes the KEM encapsulation key from the KEM decapsulation key.
§Errors
error::Unspecified when operation fails due to internal error.
pub fn decapsulate(
&self,
ciphertext: Ciphertext<'_>,
) -> Result<SharedSecret, Unspecified>
pub fn decapsulate( &self, ciphertext: Ciphertext<'_>, ) -> Result<SharedSecret, Unspecified>
Performs the decapsulate operation using this KEM decapsulation key on the given ciphertext.
ciphertext is the ciphertext generated by the encapsulate operation using the KEM encapsulation key
associated with this KEM decapsulation key.
§Errors
Unspecified when operation fails due to internal error.
Trait Implementations§
§impl<Id> Debug for DecapsulationKey<Id>where
Id: AlgorithmIdentifier,
impl<Id> Debug for DecapsulationKey<Id>where
Id: AlgorithmIdentifier,
impl<Id> Send for DecapsulationKey<Id>where
Id: AlgorithmIdentifier,
impl<Id> Sync for DecapsulationKey<Id>where
Id: AlgorithmIdentifier,
Auto Trait Implementations§
impl<Id> Freeze for DecapsulationKey<Id>
impl<Id> RefUnwindSafe for DecapsulationKey<Id>where
Id: RefUnwindSafe,
impl<Id> Unpin for DecapsulationKey<Id>
impl<Id> UnwindSafe for DecapsulationKey<Id>where
Id: RefUnwindSafe,
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Create a new
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more