|
mbed TLS v2.16.3
|
This file contains the HKDF interface. More...

Go to the source code of this file.
HKDF Error codes | |
| #define | MBEDTLS_ERR_HKDF_BAD_INPUT_DATA -0x5F80 |
| int | mbedtls_hkdf (const mbedtls_md_info_t *md, const unsigned char *salt, size_t salt_len, const unsigned char *ikm, size_t ikm_len, const unsigned char *info, size_t info_len, unsigned char *okm, size_t okm_len) |
| This is the HMAC-based Extract-and-Expand Key Derivation Function (HKDF). More... | |
| int | mbedtls_hkdf_extract (const mbedtls_md_info_t *md, const unsigned char *salt, size_t salt_len, const unsigned char *ikm, size_t ikm_len, unsigned char *prk) |
Take the input keying material ikm and extract from it a fixed-length pseudorandom key prk. More... | |
| int | mbedtls_hkdf_expand (const mbedtls_md_info_t *md, const unsigned char *prk, size_t prk_len, const unsigned char *info, size_t info_len, unsigned char *okm, size_t okm_len) |
Expand the supplied prk into several additional pseudorandom keys, which is the output of the HKDF. More... | |
This file contains the HKDF interface.
The HMAC-based Extract-and-Expand Key Derivation Function (HKDF) is
specified by RFC 5869.
Definition in file hkdf.h.
| #define MBEDTLS_ERR_HKDF_BAD_INPUT_DATA -0x5F80 |
| int mbedtls_hkdf | ( | const mbedtls_md_info_t * | md, |
| const unsigned char * | salt, | ||
| size_t | salt_len, | ||
| const unsigned char * | ikm, | ||
| size_t | ikm_len, | ||
| const unsigned char * | info, | ||
| size_t | info_len, | ||
| unsigned char * | okm, | ||
| size_t | okm_len | ||
| ) |
This is the HMAC-based Extract-and-Expand Key Derivation Function (HKDF).
| md | A hash function; md.size denotes the length of the hash function output in bytes. |
| salt | An optional salt value (a non-secret random value); if the salt is not provided, a string of all zeros of md.size length is used as the salt. |
| salt_len | The length in bytes of the optional salt. |
| ikm | The input keying material. |
| ikm_len | The length in bytes of ikm. |
| info | An optional context and application specific information string. This can be a zero-length string. |
| info_len | The length of info in bytes. |
| okm | The output keying material of okm_len bytes. |
| okm_len | The length of the output keying material in bytes. This must be less than or equal to 255 * md.size bytes. |
| int mbedtls_hkdf_expand | ( | const mbedtls_md_info_t * | md, |
| const unsigned char * | prk, | ||
| size_t | prk_len, | ||
| const unsigned char * | info, | ||
| size_t | info_len, | ||
| unsigned char * | okm, | ||
| size_t | okm_len | ||
| ) |
Expand the supplied prk into several additional pseudorandom keys, which is the output of the HKDF.
mbedtls_hkdf instead.| md | A hash function; md.size denotes the length of the hash function output in bytes. |
| prk | A pseudorandom key of at least md.size bytes. prk is usually the output from the HKDF extract step. |
| prk_len | The length in bytes of prk. |
| info | An optional context and application specific information string. This can be a zero-length string. |
| info_len | The length of info in bytes. |
| okm | The output keying material of okm_len bytes. |
| okm_len | The length of the output keying material in bytes. This must be less than or equal to 255 * md.size bytes. |
| int mbedtls_hkdf_extract | ( | const mbedtls_md_info_t * | md, |
| const unsigned char * | salt, | ||
| size_t | salt_len, | ||
| const unsigned char * | ikm, | ||
| size_t | ikm_len, | ||
| unsigned char * | prk | ||
| ) |
Take the input keying material ikm and extract from it a fixed-length pseudorandom key prk.
mbedtls_hkdf instead.| md | A hash function; md.size denotes the length of the hash function output in bytes. | |
| salt | An optional salt value (a non-secret random value); if the salt is not provided, a string of all zeros of md.size length is used as the salt. | |
| salt_len | The length in bytes of the optional salt. | |
| ikm | The input keying material. | |
| ikm_len | The length in bytes of ikm. | |
| [out] | prk | A pseudorandom key of at least md.size bytes. |
1.8.16