pub struct KemKeyPair { /* private fields */ }Expand description
A KEM key pair for HPKE seal/open. Signing key pairs use KeyPair.
A value tagged with the CryptoKind of the cryptosystem it belongs to.
Ordering compares the kind first (by cryptosystem preference) then the value.
Parses and displays as kind:value; a bare value with no kind: prefix decodes against the best available kind.
Implementations§
Source§impl KemKeyPair
impl KemKeyPair
Sourcepub fn into_split(self) -> (EncapsulationKey, DecapsulationKey)
pub fn into_split(self) -> (EncapsulationKey, DecapsulationKey)
Consumes the pair, returning the kinded encapsulation and decapsulation keys.
Sourcepub fn ref_bare_secret(&self) -> &BareDecapsulationKey
pub fn ref_bare_secret(&self) -> &BareDecapsulationKey
Returns a reference to the kindless decapsulation key.
Source§impl KemKeyPair
impl KemKeyPair
Sourcepub fn new_from_parts(
key: EncapsulationKey,
bare_secret: BareDecapsulationKey,
) -> Self
pub fn new_from_parts( key: EncapsulationKey, bare_secret: BareDecapsulationKey, ) -> Self
Builds a KEM key pair, taking the cryptosystem kind from the encapsulation key.
Sourcepub fn key(&self) -> EncapsulationKey
pub fn key(&self) -> EncapsulationKey
Returns the kinded encapsulation key.
Sourcepub fn secret(&self) -> DecapsulationKey
pub fn secret(&self) -> DecapsulationKey
Returns the kinded decapsulation key.
Sourcepub fn bare_secret(&self) -> BareDecapsulationKey
pub fn bare_secret(&self) -> BareDecapsulationKey
Returns the kindless decapsulation key.
Source§impl KemKeyPair
impl KemKeyPair
Sourcepub fn new(kind: CryptoKind, value: BareKemKeyPair) -> Self
pub fn new(kind: CryptoKind, value: BareKemKeyPair) -> Self
Pairs a value with the CryptoKind it belongs to.
Sourcepub fn ref_value(&self) -> &BareKemKeyPair
pub fn ref_value(&self) -> &BareKemKeyPair
Borrows the untagged value.
Sourcepub fn into_value(self) -> BareKemKeyPair
pub fn into_value(self) -> BareKemKeyPair
Consumes the wrapper and returns the untagged value.
Source§impl KemKeyPair
impl KemKeyPair
Sourcepub fn kind(&self) -> CryptoKind
pub fn kind(&self) -> CryptoKind
The cryptosystem this value belongs to.
Sourcepub fn value(&self) -> BareKemKeyPair
pub fn value(&self) -> BareKemKeyPair
A clone of the untagged value.
Trait Implementations§
Source§impl Clone for KemKeyPair
impl Clone for KemKeyPair
Source§fn clone(&self) -> KemKeyPair
fn clone(&self) -> KemKeyPair
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for KemKeyPair
impl Debug for KemKeyPair
Source§impl<'de> Deserialize<'de> for KemKeyPair
impl<'de> Deserialize<'de> for KemKeyPair
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl Display for KemKeyPair
impl Display for KemKeyPair
impl Eq for KemKeyPair
Source§impl From<KemKeyPair> for KemKeyPairGroup
impl From<KemKeyPair> for KemKeyPairGroup
Source§fn from(x: KemKeyPair) -> Self
fn from(x: KemKeyPair) -> Self
Source§impl FromStr for KemKeyPair
impl FromStr for KemKeyPair
Source§impl GetSize for KemKeyPair
impl GetSize for KemKeyPair
Source§fn get_heap_size(&self) -> usize
fn get_heap_size(&self) -> usize
Source§fn get_heap_size_with_tracker<TRACKER: GetSizeTracker>(
&self,
tracker: TRACKER,
) -> (usize, TRACKER)
fn get_heap_size_with_tracker<TRACKER: GetSizeTracker>( &self, tracker: TRACKER, ) -> (usize, TRACKER)
tracker. Read moreSource§fn get_stack_size() -> usize
fn get_stack_size() -> usize
Source§fn get_size_with_tracker<T>(&self, tracker: T) -> (usize, T)where
T: GetSizeTracker,
fn get_size_with_tracker<T>(&self, tracker: T) -> (usize, T)where
T: GetSizeTracker,
tracker. Read moreSource§impl Hash for KemKeyPair
impl Hash for KemKeyPair
Source§impl Ord for KemKeyPair
impl Ord for KemKeyPair
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for KemKeyPair
impl PartialEq for KemKeyPair
Source§impl PartialOrd for KemKeyPair
impl PartialOrd for KemKeyPair
Source§impl Serialize for KemKeyPair
impl Serialize for KemKeyPair
impl StructuralPartialEq for KemKeyPair
Source§impl TryFrom<&str> for KemKeyPair
impl TryFrom<&str> for KemKeyPair
Auto Trait Implementations§
impl !Freeze for KemKeyPair
impl RefUnwindSafe for KemKeyPair
impl Send for KemKeyPair
impl Sync for KemKeyPair
impl Unpin for KemKeyPair
impl UnsafeUnpin for KemKeyPair
impl UnwindSafe for KemKeyPair
Blanket Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CmpAssign for Twhere
T: Ord,
impl<T> CmpAssign for Twhere
T: Ord,
Source§fn min_assign(&mut self, other: T)
fn min_assign(&mut self, other: T)
self with other if other is smaller.Source§fn max_assign(&mut self, other: T)
fn max_assign(&mut self, other: T)
self with other if other is larger.Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
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>
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