37 #ifndef MCUXCLELS_KDF_H_ 38 #define MCUXCLELS_KDF_H_ 40 #include <mcuxClConfig.h> 64 #define MCUXCLELS_CKDF_DERIVATIONDATA_SIZE 12u 65 #define MCUXCLELS_CKDF_ALGO_SP800108 0x0u 70 #define MCUXCLELS_HKDF_RFC5869_DERIVATIONDATA_SIZE 32u 71 #define MCUXCLELS_HKDF_SP80056C_TARGETKEY_SIZE 32u 73 #define MCUXCLELS_HKDF_VALUE_RTF_DERIV ((uint32_t) 1u<< 0u) 74 #define MCUXCLELS_HKDF_VALUE_MEMORY_DERIV ((uint32_t) 0u<< 0u) 76 #define MCUXCLELS_HKDF_ALGO_RFC5869 0x0u 77 #define MCUXCLELS_HKDF_ALGO_SP80056C 0x1u 79 #define MCUXCLELS_HKDF_RTF_DERIV 1U 80 #define MCUXCLELS_HKDF_SYSTEM_MEMORY_DERIV 0U 82 #define MCUXCLELS_TLS_DERIVATIONDATA_SIZE ((size_t) 80u) 83 #define MCUXCLELS_TLS_RANDOM_SIZE ((size_t) 32u) 85 #define MCUXCLELS_TLS_INIT 0u 86 #define MCUXCLELS_TLS_FINALIZE 1u 201 uint8_t
const * pDerivationData
228 uint8_t
const * pDerivationData,
229 size_t derivationDataLength
259 uint8_t
const * pDerivationData
286 uint8_t
const * pDerivationData,
321 uint8_t
const * pDerivationData,
uint32_t mcuxClEls_Status_t
Type for ELS driver status codes.
Definition: mcuxClEls_Types.h:211
uint32_t value
Accesses the bit field as a full word; initialize with a combination of constants from MCUXCLELS_HKDF...
Definition: mcuxClEls_Kdf.h:124
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....
Internal command option bit field for mcuxClEls_TlsGenerateMasterKeyFromPreMasterKey_Async,...
Definition: mcuxClEls_Kdf.h:137
Command option bit field for mcuxClEls_Hkdf_Rfc5869_Async.
Definition: mcuxClEls_Kdf.h:120
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....
uint32_t value
Accesses the bit field as a full word; initialize with a combination of constants from MCUXCLELS_HKDF...
Definition: mcuxClEls_Kdf.h:141
uint32_t mode
Defines which phase of the key generation is performed.
Definition: mcuxClEls_Kdf.h:146
Type for ELS key store key properties.
Definition: mcuxClEls_Types.h:224
uint32_t rtfdrvdat
MCUXCLELS_HKDF_SYSTEM_MEMORY_DERIV=use derivation input from system memory, MCUXCLELS_HKDF_RTF_DERIV=...
Definition: mcuxClEls_Kdf.h:128
uint32_t ckdf_algo
Defines which algorithm and mode shall be used.
Definition: mcuxClEls_Kdf.h:113
Internal command option bit field for CKDF functions.
Definition: mcuxClEls_Kdf.h:104
ELS header for common functionality.
#define MCUXCLELS_API
Marks a function as a public API function of the mcuxClEls component.
Definition: mcuxClEls_Common.h:47
uint32_t value
Accesses the bit field as a full word; initialize with a combination of constants from MCUXCLELS_HKDF...
Definition: mcuxClEls_Kdf.h:108
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.
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 app...
#define MCUX_CSSL_FP_FUNCTION_DECL(...)
Declaration of a flow protected function.
Definition: mcuxCsslFlowProtection.h:125
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.
uint32_t hkdf_algo
Defines which algorithm shall be used.
Definition: mcuxClEls_Kdf.h:129
uint32_t mcuxClEls_KeyIndex_t
Type for ELS keystore indices.
Definition: mcuxClEls_Types.h:221
#define MCUX_CSSL_FP_PROTECTED_TYPE(resultType)
Based on a given base type, builds a return type with flow protection.
Definition: mcuxCsslFlowProtection.h:81