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