Macros |
|
| #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 |
Enumerations |
|
| 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 } |
Functions |
|
| 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...
|
|
Detailed Description
Macro Definition Documentation
| #define CRYS_HKDF_MAX_HASH_DIGEST_SIZE_IN_BYTES CRYS_HASH_SHA512_DIGEST_SIZE_IN_BYTES |
HKDF maximal HASH digest size in bytes.
| #define CRYS_HKDF_MAX_HASH_KEY_SIZE_IN_BYTES 512 |
HKDF maximal key size in words.
Enumeration Type Documentation
Enum defining HKDF HASH available modes.
Function Documentation
| 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
- CRYS_OK on success.
- A non-zero value on failure as defined crys_kdf_error.h, crys_hash_error or crys_hmac_error.h
- 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.