MCUX CLNS
MCUX Crypto Library Normal Secure
mcuxClEls_Kdf.h File Reference

ELS header for key derivation. More...

#include <mcuxClConfig.h>
#include <mcuxClEls_Common.h>

Go to the source code of this file.

Data Structures

union  mcuxClEls_CkdfOption_t
 Internal command option bit field for CKDF functions. More...
 
union  mcuxClEls_HkdfOption_t
 Command option bit field for mcuxClEls_Hkdf_Rfc5869_Async. More...
 
union  mcuxClEls_TlsOption_t
 Internal command option bit field for mcuxClEls_TlsGenerateMasterKeyFromPreMasterKey_Async, and mcuxClEls_TlsGenerateMasterKeyFromPreMasterKey_Async. More...
 

Macros

#define MCUXCLELS_CKDF_DERIVATIONDATA_SIZE
 Size of CKDF SP800-108 derivation data. More...
 
#define MCUXCLELS_CKDF_ALGO_SP800108
 Use SP800-108 algorithm. More...
 
#define MCUXCLELS_HKDF_RFC5869_DERIVATIONDATA_SIZE
 Size of HKDF derivation data. More...
 
#define MCUXCLELS_HKDF_SP80056C_TARGETKEY_SIZE
 Size of HKDF SP800-56C derived key. More...
 
#define MCUXCLELS_HKDF_VALUE_RTF_DERIV
 Use RTF as derivation input. More...
 
#define MCUXCLELS_HKDF_VALUE_MEMORY_DERIV
 Use derivation input from system memory. More...
 
#define MCUXCLELS_HKDF_ALGO_RFC5869
 Use RFC5869 algorithm. More...
 
#define MCUXCLELS_HKDF_ALGO_SP80056C
 Use SP800-56C algorithm. More...
 
#define MCUXCLELS_HKDF_RTF_DERIV
 Use RTF as derivation input. More...
 
#define MCUXCLELS_HKDF_SYSTEM_MEMORY_DERIV
 Use derivation input from system memory. More...
 
#define MCUXCLELS_TLS_DERIVATIONDATA_SIZE
 Size of TLS derivation data. More...
 
#define MCUXCLELS_TLS_RANDOM_SIZE
 Size of random bytes for TLS. More...
 
#define MCUXCLELS_TLS_INIT
 Perform master key generation. More...
 
#define MCUXCLELS_TLS_FINALIZE
 Perform session key generation. More...
 

Functions

MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Hkdf_Rfc5869_Async (mcuxClEls_HkdfOption_t options, mcuxClEls_KeyIndex_t derivationKeyIdx, mcuxClEls_KeyIndex_t targetKeyIdx, mcuxClEls_KeyProp_t targetKeyProperties, uint8_t const *pDerivationData)
 Derives a key using the HKDF (HMAC-based key derivation function) according to RFC5869. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Hkdf_Sp80056c_Async (mcuxClEls_KeyIndex_t derivationKeyIdx, uint8_t *pTagetKey, uint8_t const *pDerivationData, size_t derivationDataLength)
 Derives a key using the HKDF (HMAC-based key derivation function) according to SP800-56C one-step approach with Sha2-256. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Ckdf_Sp800108_Async (mcuxClEls_KeyIndex_t derivationKeyIdx, mcuxClEls_KeyIndex_t targetKeyIdx, mcuxClEls_KeyProp_t targetKeyProperties, uint8_t const *pDerivationData)
 Derives a key using the NIST SP 800-108 CMAC-based Extract-and-Expand Key Derivation Function. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_TlsGenerateMasterKeyFromPreMasterKey_Async (uint8_t const *pDerivationData, mcuxClEls_KeyProp_t keyProperties, mcuxClEls_KeyIndex_t keyIdx)
 Generates a TLS master key based on a pre-master key and derivation data, according to the TLS 1.2 specification. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_TlsGenerateSessionKeysFromMasterKey_Async (uint8_t const *pDerivationData, mcuxClEls_KeyProp_t keyProperties, mcuxClEls_KeyIndex_t keyIdx)
 Generates TLS session keys based on a master key and derivation data, according to the TLS 1.2 specification. More...
 

Detailed Description

ELS header for key derivation.

This header exposes functions that enable using the ELS for various key derivation commands. The supported key derivation algorithms are CKDF, HKDF, TLS