ring::hkdf

Struct Okm

Source
pub struct Okm<'a, L: KeyType> { /* private fields */ }
Expand description

An HKDF OKM (Output Keying Material)

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

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> Freeze for Okm<'a, L>
where L: Freeze,

§

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 T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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 T
where 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 T
where U: Into<T>,

Source§

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 T
where U: TryFrom<T>,

Source§

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.

Layout§

Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.