Copyright © (C) 2020, Roman Pushkov
Authors: Roman Pushkov (pushkovroman@me.com).
hash() = md5 | sha | sha224 | sha256 | sha384 | sha512
derive/3 | The derivation function. |
derive/4 | |
derive/5 | |
expand/3 | The expansion function. |
expand/4 | |
extract/2 | The extraction function. |
extract/3 |
The derivation function.
Extracts a pseudorandom key from an input keying material and expands it into an output keying material.
See the respective functions for details.derive(Hash, IKM, Info, L) -> OKM
derive(Hash, IKM, Info, Salt, L) -> OKM
The expansion function.
HKDF-Expand(PRK, info, L) -> OKM Options: Hash a hash function; HashLen denotes the length of the hash function output in octets Inputs: PRK a pseudorandom key of at least HashLen octets (usually, the output from the extract step) info optional context and application specific information (can be a zero-length string) L length of output keying material in octets (<= 255*HashLen) Output: OKM output keying material (of L octets) The output OKM is calculated as follows: N = ceil(L/HashLen) T = T(1) | T(2) | T(3) | ... | T(N) OKM = first L octets of T where: T(0) = empty string (zero length) T(1) = HMAC-Hash(PRK, T(0) | info | 0x01) T(2) = HMAC-Hash(PRK, T(1) | info | 0x02) T(3) = HMAC-Hash(PRK, T(2) | info | 0x03) ... (where the constant concatenated to the end of each T(n) is a single octet.)
expand(Hash, PRK, Info, L) -> OKM
The extraction function.
HKDF-Extract(salt, IKM) -> PRK Options: Hash a hash function; HashLen denotes the length of the hash function output in octets Inputs: salt optional salt value (a non-secret random value); if not provided, it is set to a string of HashLen zeros. IKM input keying material Output: PRK a pseudorandom key (of HashLen octets) The output PRK is calculated as follows: PRK = HMAC-Hash(salt, IKM)
Generated by EDoc