This module defines the API that supports HMAC Key derivation function as defined by RFC5869.
More...
|
#define | CRYS_HKDF_MAX_HASH_KEY_SIZE_IN_BYTES 512 |
|
#define | CRYS_HKDF_MAX_HASH_DIGEST_SIZE_IN_BYTES CRYS_HASH_SHA512_DIGEST_SIZE_IN_BYTES |
|
|
enum | CRYS_HKDF_HASH_OpMode_t {
CRYS_HKDF_HASH_SHA1_mode = 0,
CRYS_HKDF_HASH_SHA224_mode = 1,
CRYS_HKDF_HASH_SHA256_mode = 2,
CRYS_HKDF_HASH_SHA384_mode = 3,
CRYS_HKDF_HASH_SHA512_mode = 4,
CRYS_HKDF_HASH_NumOfModes,
CRYS_HKDF_HASH_OpModeLast = 0x7FFFFFFF
} |
|
|
CRYSError_t | CRYS_HKDF_KeyDerivFunc (CRYS_HKDF_HASH_OpMode_t HKDFhashMode, uint8_t *Salt_ptr, size_t SaltLen, uint8_t *Ikm_ptr, uint32_t IkmLen, uint8_t *Info, uint32_t InfoLen, uint8_t *Okm, uint32_t OkmLen, SaSiBool IsStrongKey) |
| CRYS_HKDF_KeyDerivFunc performs the HMAC-based key derivation, according to RFC5869. More...
|
|
This module defines the API that supports HMAC Key derivation function as defined by RFC5869.
CRYSError_t CRYS_HKDF_KeyDerivFunc |
( |
CRYS_HKDF_HASH_OpMode_t |
HKDFhashMode, |
|
|
uint8_t * |
Salt_ptr, |
|
|
size_t |
SaltLen, |
|
|
uint8_t * |
Ikm_ptr, |
|
|
uint32_t |
IkmLen, |
|
|
uint8_t * |
Info, |
|
|
uint32_t |
InfoLen, |
|
|
uint8_t * |
Okm, |
|
|
uint32_t |
OkmLen, |
|
|
SaSiBool |
IsStrongKey |
|
) |
| |
CRYS_HKDF_KeyDerivFunc performs the HMAC-based key derivation, according to RFC5869.
- Returns
- CRYSError_t - On success the value CRYS_OK is returned, and on failure an ERROR as defined in CRYS_KDF_error.h: CRYS_HKDF_INVALID_ARGUMENT_POINTER_ERROR CRYS_HKDF_INVALID_ARGUMENT_SIZE_ERROR CRYS_HKDF_INVALID_ARGUMENT_HASH_MODE_ERROR
- Parameters
-
[in] | HKDFhashMode | The HKDF identifier of hash function to be used. |
[in] | Salt_ptr | A pointer to a non secret random value. can be NULL. |
[in] | SaltLen | The size of the salt_ptr. |
[in] | Ikm_ptr | A pointer to a input key message. |
[in] | IkmLen | The size of the input key message |
[in] | Info | A pointer to an optional context and application specific information. can be NULL |
[in] | InfoLen | The size of the info. |
[in] | Okm | A pointer to a output key material. |
[in] | OkmLen | The size of the output key material. |
[in] | IsStrongKey | if TRUE , then no need to perform the extraction phase. |