Skip to main content

expand

Function expand 

Source
pub fn expand<H: Hasher>(
    okm: &mut [u8],
    prk: &[u8],
    info: &[u8],
) -> Result<(), HkdfError>
Expand description

HKDF expand step: OKM = T(1) || T(2) || ..., where T(i) = HMAC-Hash(PRK, T(i-1) || info || i).

The output is written into okm. The length of the output is determined by okm.len().

§Example

use crypto::hkdf;
use crypto::sha2::Sha256;

let prk = hkdf::extract::<Sha256>(Some(b"salt"), b"input key material");
let mut okm = [0u8; 32];
hkdf::expand::<Sha256>(&mut okm, &prk, b"context info").unwrap();

§Error

Returns an error if okm.len() > 255 * H::OUTPUT_SIZE or if prk.len() < H::OUTPUT_SIZE.