Struct EncapsulationKey
pub struct EncapsulationKey { /* private fields */ }
dep_orion
only.Expand description
A type to represent the public EncapsulationKey
that X-Wing uses.
This type simply holds bytes and performs no checks whatsoever. If a invalid ML-KEM-768 is part of the bytes parsed from this type, the check will first surface when encapsulation is performed.
§Errors:
An error will be returned if:
slice
is not 1216 bytes.
Implementations§
§impl EncapsulationKey
impl EncapsulationKey
pub fn from_slice(slice: &[u8]) -> Result<EncapsulationKey, UnknownCryptoError> ⓘ
pub fn from_slice(slice: &[u8]) -> Result<EncapsulationKey, UnknownCryptoError> ⓘ
Construct from a given byte slice.
Trait Implementations§
§impl AsRef<[u8]> for EncapsulationKey
impl AsRef<[u8]> for EncapsulationKey
§impl Clone for EncapsulationKey
impl Clone for EncapsulationKey
§fn clone(&self) -> EncapsulationKey
fn clone(&self) -> EncapsulationKey
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for EncapsulationKey
impl Debug for EncapsulationKey
§impl<'de> Deserialize<'de> for EncapsulationKey
This type tries to deserialize as a Vec<u8>
would. If it succeeds, the digest
will be built using Self::from_slice
.
impl<'de> Deserialize<'de> for EncapsulationKey
This type tries to deserialize as a Vec<u8>
would. If it succeeds, the digest
will be built using Self::from_slice
.
Note that this allocates once to store the referenced bytes on the heap.
§fn deserialize<D>(
deserializer: D,
) -> Result<EncapsulationKey, <D as Deserializer<'de>>::Error> ⓘwhere
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<EncapsulationKey, <D as Deserializer<'de>>::Error> ⓘwhere
D: Deserializer<'de>,
§impl From<[u8; 1216]> for EncapsulationKey
impl From<[u8; 1216]> for EncapsulationKey
§fn from(bytes: [u8; 1216]) -> EncapsulationKey
fn from(bytes: [u8; 1216]) -> EncapsulationKey
Make an object from a byte array.
§impl PartialEq<&[u8]> for EncapsulationKey
impl PartialEq<&[u8]> for EncapsulationKey
§impl PartialEq for EncapsulationKey
impl PartialEq for EncapsulationKey
§impl Serialize for EncapsulationKey
This type tries to serialize as a &[u8]
would. Note that the serialized
type likely does not have the same protections that Orion provides, such
as constant-time operations. A good rule of thumb is to only serialize
these types for storage. Don’t operate on the serialized types.
impl Serialize for EncapsulationKey
This type tries to serialize as a &[u8]
would. Note that the serialized
type likely does not have the same protections that Orion provides, such
as constant-time operations. A good rule of thumb is to only serialize
these types for storage. Don’t operate on the serialized types.
§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> ⓘwhere
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> ⓘwhere
S: Serializer,
§impl TryFrom<&[u8]> for EncapsulationKey
Delegates to from_slice
implementation
impl TryFrom<&[u8]> for EncapsulationKey
Delegates to from_slice
implementation
§type Error = UnknownCryptoError
type Error = UnknownCryptoError
§fn try_from(
slice: &[u8],
) -> Result<EncapsulationKey, <EncapsulationKey as TryFrom<&[u8]>>::Error> ⓘ
fn try_from( slice: &[u8], ) -> Result<EncapsulationKey, <EncapsulationKey as TryFrom<&[u8]>>::Error> ⓘ
impl Copy for EncapsulationKey
impl Eq for EncapsulationKey
Auto Trait Implementations§
impl Freeze for EncapsulationKey
impl RefUnwindSafe for EncapsulationKey
impl Send for EncapsulationKey
impl Sync for EncapsulationKey
impl Unpin for EncapsulationKey
impl UnwindSafe for EncapsulationKey
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
Source§impl<T> ByteSized for T
impl<T> ByteSized for T
Source§const BYTE_ALIGN: usize = _
const BYTE_ALIGN: usize = _
Source§fn byte_align(&self) -> usize
fn byte_align(&self) -> usize
Source§fn ptr_size_ratio(&self) -> [usize; 2]
fn ptr_size_ratio(&self) -> [usize; 2]
Source§impl<T, R> Chain<R> for Twhere
T: ?Sized,
impl<T, R> Chain<R> for Twhere
T: ?Sized,
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<T> ExtAny for T
impl<T> ExtAny for T
Source§fn type_hash_with<H: Hasher>(&self, hasher: H) -> u64
fn type_hash_with<H: Hasher>(&self, hasher: H) -> u64
TypeId
of Self
using a custom hasher.Source§fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
Source§impl<T> ExtMem for Twhere
T: ?Sized,
impl<T> ExtMem for Twhere
T: ?Sized,
Source§const NEEDS_DROP: bool = _
const NEEDS_DROP: bool = _
Source§fn mem_align_of<T>() -> usize
fn mem_align_of<T>() -> usize
Source§fn mem_align_of_val(&self) -> usize
fn mem_align_of_val(&self) -> usize
Source§fn mem_size_of<T>() -> usize
fn mem_size_of<T>() -> usize
Source§fn mem_size_of_val(&self) -> usize
fn mem_size_of_val(&self) -> usize
Source§fn mem_needs_drop(&self) -> bool
fn mem_needs_drop(&self) -> bool
true
if dropping values of this type matters. Read moreSource§fn mem_forget(self)where
Self: Sized,
fn mem_forget(self)where
Self: Sized,
self
without running its destructor. Read moreSource§fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
Source§unsafe fn mem_zeroed<T>() -> T
unsafe fn mem_zeroed<T>() -> T
unsafe_layout
only.T
represented by the all-zero byte-pattern. Read moreSource§unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe_layout
only.T
represented by the all-zero byte-pattern. Read moreSource§fn mem_as_bytes(&self) -> &[u8] ⓘ
fn mem_as_bytes(&self) -> &[u8] ⓘ
unsafe_slice
only.§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Hook for T
impl<T> Hook for T
§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> ⓘ
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§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<'a, T, N> StringZilla<'a, N> for T
impl<'a, T, N> StringZilla<'a, N> for T
§fn sz_find_char_from(&self, needles: N) -> Option<usize> ⓘ
fn sz_find_char_from(&self, needles: N) -> Option<usize> ⓘ
§fn sz_rfind_char_from(&self, needles: N) -> Option<usize> ⓘ
fn sz_rfind_char_from(&self, needles: N) -> Option<usize> ⓘ
§fn sz_find_char_not_from(&self, needles: N) -> Option<usize> ⓘ
fn sz_find_char_not_from(&self, needles: N) -> Option<usize> ⓘ
§fn sz_rfind_char_not_from(&self, needles: N) -> Option<usize> ⓘ
fn sz_rfind_char_not_from(&self, needles: N) -> Option<usize> ⓘ
§fn sz_edit_distance(&self, other: N) -> usize
fn sz_edit_distance(&self, other: N) -> usize
§fn sz_alignment_score(
&self,
other: N,
matrix: [[i8; 256]; 256],
gap: i8,
) -> isize
fn sz_alignment_score( &self, other: N, matrix: [[i8; 256]; 256], gap: i8, ) -> isize
self
and other
using the specified
substitution matrix and gap penalty. Read more§fn sz_matches(&'a self, needle: &'a N) -> RangeMatches<'a> ⓘ
fn sz_matches(&'a self, needle: &'a N) -> RangeMatches<'a> ⓘ
§fn sz_rmatches(&'a self, needle: &'a N) -> RangeRMatches<'a> ⓘ
fn sz_rmatches(&'a self, needle: &'a N) -> RangeRMatches<'a> ⓘ
needle
in self
, searching from the end. Read more§fn sz_splits(&'a self, needle: &'a N) -> RangeSplits<'a> ⓘ
fn sz_splits(&'a self, needle: &'a N) -> RangeSplits<'a> ⓘ
§fn sz_rsplits(&'a self, needle: &'a N) -> RangeRSplits<'a> ⓘ
fn sz_rsplits(&'a self, needle: &'a N) -> RangeRSplits<'a> ⓘ
self
that are separated by the given needle
, searching from the end. Read more§fn sz_find_first_of(&'a self, needles: &'a N) -> RangeMatches<'a> ⓘ
fn sz_find_first_of(&'a self, needles: &'a N) -> RangeMatches<'a> ⓘ
needles
within self
. Read more§fn sz_find_last_of(&'a self, needles: &'a N) -> RangeRMatches<'a> ⓘ
fn sz_find_last_of(&'a self, needles: &'a N) -> RangeRMatches<'a> ⓘ
needles
within self
, searching from the end. Read more§fn sz_find_first_not_of(&'a self, needles: &'a N) -> RangeMatches<'a> ⓘ
fn sz_find_first_not_of(&'a self, needles: &'a N) -> RangeMatches<'a> ⓘ
needles
within self
. Read more§fn sz_find_last_not_of(&'a self, needles: &'a N) -> RangeRMatches<'a> ⓘ
fn sz_find_last_not_of(&'a self, needles: &'a N) -> RangeRMatches<'a> ⓘ
needles
within self
, searching from the end. Read more