pub struct Hkdf<Variant, Prk, const PRK_LENGTH: usize>{ /* private fields */ }Expand description
HKDF expander for a specific HkdfVariant.
Implementations§
Source§impl<Variant, Prk, const PRK_LENGTH: usize> Hkdf<Variant, Prk, PRK_LENGTH>
impl<Variant, Prk, const PRK_LENGTH: usize> Hkdf<Variant, Prk, PRK_LENGTH>
Sourcepub fn extract<Ikm: Bytes + ?Sized>(salt: Option<&[u8]>, ikm: &Ikm) -> Self
pub fn extract<Ikm: Bytes + ?Sized>(salt: Option<&[u8]>, ikm: &Ikm) -> Self
Extracts a PRK from input keying material and optional salt.
Sourcepub fn extract_and_expand<const OUTPUT_LENGTH: usize, Output: NewByteArray<OUTPUT_LENGTH>, Ikm: Bytes + ?Sized, Context: Bytes + ?Sized>(
salt: Option<&[u8]>,
ikm: &Ikm,
context: &Context,
) -> Result<Output, Error>
pub fn extract_and_expand<const OUTPUT_LENGTH: usize, Output: NewByteArray<OUTPUT_LENGTH>, Ikm: Bytes + ?Sized, Context: Bytes + ?Sized>( salt: Option<&[u8]>, ikm: &Ikm, context: &Context, ) -> Result<Output, Error>
One-shot HKDF extract-and-expand into a fixed-size output type.
§Errors
Returns an error if OUTPUT_LENGTH is outside the range supported by
the selected HKDF variant.
Sourcepub fn extract_and_expand_to_vec<Ikm: Bytes + ?Sized, Context: Bytes + ?Sized>(
salt: Option<&[u8]>,
ikm: &Ikm,
context: &Context,
output_len: usize,
) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
pub fn extract_and_expand_to_vec<Ikm: Bytes + ?Sized, Context: Bytes + ?Sized>( salt: Option<&[u8]>, ikm: &Ikm, context: &Context, output_len: usize, ) -> Result<Vec<u8>, Error>
alloc only.Sourcepub fn extract_and_expand_to_bytes<Output: NewBytes + ResizableBytes, Ikm: Bytes + ?Sized, Context: Bytes + ?Sized>(
salt: Option<&[u8]>,
ikm: &Ikm,
context: &Context,
output_len: usize,
) -> Result<Output, Error>
pub fn extract_and_expand_to_bytes<Output: NewBytes + ResizableBytes, Ikm: Bytes + ?Sized, Context: Bytes + ?Sized>( salt: Option<&[u8]>, ikm: &Ikm, context: &Context, output_len: usize, ) -> Result<Output, Error>
One-shot HKDF extract-and-expand into a runtime-sized byte container
of output_len bytes, such as protected memory.
§Errors
Returns an error if output_len is outside the range supported by the
selected HKDF variant.
Source§impl<Variant, Prk, const PRK_LENGTH: usize> Hkdf<Variant, Prk, PRK_LENGTH>
impl<Variant, Prk, const PRK_LENGTH: usize> Hkdf<Variant, Prk, PRK_LENGTH>
Sourcepub fn expand<const OUTPUT_LENGTH: usize, Output, Context: Bytes + ?Sized>(
&self,
context: &Context,
) -> Result<Output, Error>where
Output: NewByteArray<OUTPUT_LENGTH>,
pub fn expand<const OUTPUT_LENGTH: usize, Output, Context: Bytes + ?Sized>(
&self,
context: &Context,
) -> Result<Output, Error>where
Output: NewByteArray<OUTPUT_LENGTH>,
Expands this PRK into a fixed-size output type.
§Errors
Returns an error if OUTPUT_LENGTH is outside the range supported by
the selected HKDF variant.
Sourcepub fn expand_to_vec<Context: Bytes + ?Sized>(
&self,
context: &Context,
output_len: usize,
) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
pub fn expand_to_vec<Context: Bytes + ?Sized>( &self, context: &Context, output_len: usize, ) -> Result<Vec<u8>, Error>
alloc only.Sourcepub fn expand_to_bytes<Output: NewBytes + ResizableBytes, Context: Bytes + ?Sized>(
&self,
context: &Context,
output_len: usize,
) -> Result<Output, Error>
pub fn expand_to_bytes<Output: NewBytes + ResizableBytes, Context: Bytes + ?Sized>( &self, context: &Context, output_len: usize, ) -> Result<Output, Error>
Expands this PRK into a runtime-sized byte container of output_len
bytes, such as protected memory.
§Errors
Returns an error if output_len is outside the range supported by the
selected HKDF variant.
Trait Implementations§
Source§impl<Variant, Prk, const PRK_LENGTH: usize> Clone for Hkdf<Variant, Prk, PRK_LENGTH>where
Variant: HkdfVariant<PRK_LENGTH> + Clone,
Prk: ByteArray<PRK_LENGTH> + Zeroize + ZeroizeOnDrop + Clone,
impl<Variant, Prk, const PRK_LENGTH: usize> Clone for Hkdf<Variant, Prk, PRK_LENGTH>where
Variant: HkdfVariant<PRK_LENGTH> + Clone,
Prk: ByteArray<PRK_LENGTH> + Zeroize + ZeroizeOnDrop + Clone,
Source§impl<Variant, Prk, const PRK_LENGTH: usize> Debug for Hkdf<Variant, Prk, PRK_LENGTH>where
Variant: HkdfVariant<PRK_LENGTH> + Debug,
Prk: ByteArray<PRK_LENGTH> + Zeroize + ZeroizeOnDrop + Debug,
impl<Variant, Prk, const PRK_LENGTH: usize> Debug for Hkdf<Variant, Prk, PRK_LENGTH>where
Variant: HkdfVariant<PRK_LENGTH> + Debug,
Prk: ByteArray<PRK_LENGTH> + Zeroize + ZeroizeOnDrop + Debug,
Source§impl<'de, Variant, Prk, const PRK_LENGTH: usize> Deserialize<'de> for Hkdf<Variant, Prk, PRK_LENGTH>where
Variant: HkdfVariant<PRK_LENGTH>,
Prk: ByteArray<PRK_LENGTH> + Zeroize + ZeroizeOnDrop + Deserialize<'de>,
Available on crate feature serde only.
impl<'de, Variant, Prk, const PRK_LENGTH: usize> Deserialize<'de> for Hkdf<Variant, Prk, PRK_LENGTH>where
Variant: HkdfVariant<PRK_LENGTH>,
Prk: ByteArray<PRK_LENGTH> + Zeroize + ZeroizeOnDrop + Deserialize<'de>,
serde only.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<Variant, Prk, const PRK_LENGTH: usize> Serialize for Hkdf<Variant, Prk, PRK_LENGTH>where
Variant: HkdfVariant<PRK_LENGTH>,
Prk: ByteArray<PRK_LENGTH> + Zeroize + ZeroizeOnDrop + Serialize,
Available on crate feature serde only.
impl<Variant, Prk, const PRK_LENGTH: usize> Serialize for Hkdf<Variant, Prk, PRK_LENGTH>where
Variant: HkdfVariant<PRK_LENGTH>,
Prk: ByteArray<PRK_LENGTH> + Zeroize + ZeroizeOnDrop + Serialize,
serde only.