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

CSSv2 header for key derivation. More...

#include <mcuxClCss_Common.h>

Go to the source code of this file.

Data Structures

union  mcuxClCss_CkdfOption_t
 Internal command option bit field for CKDF functions. More...
 
union  mcuxClCss_HkdfOption_t
 Command option bit field for mcuxClCss_Hkdf_Rfc5869_Async. More...
 
union  mcuxClCss_TlsOption_t
 Internal command option bit field for mcuxClCss_TlsGenerateMasterKeyFromPreMasterKey_Async, and mcuxClCss_TlsGenerateMasterKeyFromPreMasterKey_Async. More...
 

Macros

#define MCUXCLCSS_HKDF_VALUE_RTF_DERIV
 Use RTF as derivation input. More...
 
#define MCUXCLCSS_HKDF_VALUE_MEMORY_DERIV
 Use derivation input from system memory. More...
 
#define MCUXCLCSS_CKDF_RTF_DERIV
 Use RTF as derivation input. More...
 
#define MCUXCLCSS_CKDF_SYSTEM_MEMORY_DERIV
 Use derivation input from system memory. More...
 
#define MCUXCLCSS_CKDF_DERIVATIONDATA_SIZE
 Size of CKDF derivation data. More...
 
#define MCUXCLCSS_CKDF_ALGO_SP800108
 Use SP800-108 algorithm. More...
 
#define MCUXCLCSS_HKDF_RFC5869_DERIVATIONDATA_SIZE
 Size of HKDF derivation data. More...
 
#define MCUXCLCSS_HKDF_SP80056C_TARGETKEY_SIZE
 Size of HKDF SP800-56C derived key. More...
 
#define MCUXCLCSS_HKDF_ALGO_RFC5869
 Use RFC5869 algorithm. More...
 
#define MCUXCLCSS_HKDF_ALGO_SP80056C
 Use SP800-56C algorithm. More...
 
#define MCUXCLCSS_TLS_DERIVATIONDATA_SIZE
 Size of TLS derivation data. More...
 
#define MCUXCLCSS_TLS_RANDOM_SIZE
 Size of random bytes for TLS. More...
 
#define MCUXCLCSS_TLS_INIT
 Perform master key generation. More...
 
#define MCUXCLCSS_TLS_FINALIZE
 Perform session key generation. More...
 

Functions

MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_Hkdf_Rfc5869_Async (mcuxClCss_HkdfOption_t options, mcuxClCss_KeyIndex_t derivationKeyIdx, mcuxClCss_KeyIndex_t targetKeyIdx, mcuxClCss_KeyProp_t targetKeyProperties, uint8_t const *pDerivationData)
 Derives a key using the HKDF (HMAC-based key derivation function) according to RFC5869. More...
 
MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_Hkdf_Sp80056c_Async (mcuxClCss_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...
 
MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_Ckdf_Sp800108_Async (mcuxClCss_KeyIndex_t derivationKeyIdx, mcuxClCss_KeyIndex_t targetKeyIdx, mcuxClCss_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...
 
MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_TlsGenerateMasterKeyFromPreMasterKey_Async (uint8_t const *pDerivationData, mcuxClCss_KeyProp_t keyProperties, mcuxClCss_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...
 
MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_TlsGenerateSessionKeysFromMasterKey_Async (uint8_t const *pDerivationData, mcuxClCss_KeyProp_t keyProperties, mcuxClCss_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

CSSv2 header for key derivation.

This header exposes functions that enable using the CSSv2 for various key derivation commands. The supported key derivation algorithms are:

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