Struct ring::hkdf::Okm

source ·
pub struct Okm<'a, L: KeyType> {
    prk: &'a Prk,
    info: &'a [&'a [u8]],
    len: L,
    len_cached: usize,
}
Expand description

An HKDF OKM (Output Keying Material)

Intentionally not Clone or Copy as an OKM is generally only safe to use once.

Fields§

§prk: &'a Prk§info: &'a [&'a [u8]]§len: L§len_cached: usize

Implementations§

source§

impl<L: KeyType> Okm<'_, L>

source

pub fn len(&self) -> &L

The OkmLength given to Prk::expand().

source

pub fn fill(self, out: &mut [u8]) -> Result<(), Unspecified>

Fills out with the output of the HKDF-Expand operation for the given inputs.

Fails if (and only if) the requested output length is larger than 255 times the size of the digest algorithm’s output. (This is the limit imposed by the HKDF specification due to the way HKDF’s counter is constructed.)

Trait Implementations§

source§

impl<'a, L: Debug + KeyType> Debug for Okm<'a, L>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Okm<'_, &'static Algorithm>> for HeaderProtectionKey

source§

fn from(okm: Okm<'_, &'static Algorithm>) -> Self

Converts to this type from the input type.
source§

impl From<Okm<'_, &'static Algorithm>> for UnboundKey

source§

fn from(okm: Okm<'_, &'static Algorithm>) -> Self

Converts to this type from the input type.
source§

impl From<Okm<'_, Algorithm>> for Key

source§

fn from(okm: Okm<'_, Algorithm>) -> Self

Converts to this type from the input type.
source§

impl From<Okm<'_, Algorithm>> for Prk

source§

fn from(okm: Okm<'_, Algorithm>) -> Self

Converts to this type from the input type.
source§

impl From<Okm<'_, Algorithm>> for Salt

source§

fn from(okm: Okm<'_, Algorithm>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a, L> RefUnwindSafe for Okm<'a, L>where L: RefUnwindSafe,

§

impl<'a, L> Send for Okm<'a, L>where L: Send,

§

impl<'a, L> Sync for Okm<'a, L>where L: Sync,

§

impl<'a, L> Unpin for Okm<'a, L>where L: Unpin,

§

impl<'a, L> UnwindSafe for Okm<'a, L>where L: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.