36#ifndef MCUXCLELS_KEYMANAGEMENT_H_
37#define MCUXCLELS_KEYMANAGEMENT_H_
39#include <mcuxClConfig.h>
64#define MCUXCLELS_KEYIMPORT_VALUE_KFMT_UDF ((uint32_t) 0u<< 6u)
65#define MCUXCLELS_KEYIMPORT_VALUE_KFMT_RFC3394 ((uint32_t) 1u<< 6u)
66#define MCUXCLELS_KEYIMPORT_VALUE_KFMT_PUF ((uint32_t) 2u<< 6u)
67#ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL
68#define MCUXCLELS_KEYIMPORT_VALUE_KFMT_PBK ((uint32_t) 3u<< 6u)
82#define MCUXCLELS_KEYIMPORT_KFMT_UDF (0x00u)
83#define MCUXCLELS_KEYIMPORT_KFMT_RFC3394 (0x01u)
84#define MCUXCLELS_KEYIMPORT_KFMT_PUF (0x02u)
85#ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL
86#define MCUXCLELS_KEYIMPORT_KFMT_PBK (0x03u)
89#ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL
90#define MCUXCLELS_KEYIMPORT_REVERSEFETCH_ENABLE (0x01U)
91#define MCUXCLELS_KEYIMPORT_REVERSEFETCH_DISABLE (0x00U)
94#define MCUXCLELS_RFC3394_OVERHEAD ((size_t) 16u)
106#define MCUXCLELS_RFC3394_CONTAINER_SIZE_128 ((size_t) 256u/8u)
107#define MCUXCLELS_RFC3394_CONTAINER_SIZE_256 ((size_t) 384u/8u)
108#ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL
109#define MCUXCLELS_RFC3394_CONTAINER_SIZE_P256 ((size_t) 640u/8u)
230 uint8_t const * pImportKey,
231 size_t importKeyLength,
236#ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL
262 uint8_t
const * pCertificate,
263 size_t certificateLength,
264 size_t publicKeyOffset,
265 uint8_t
const * pSignature,
ELS header for common functionality.
#define MCUXCLELS_API
Marks a function as a public API function of the mcuxClEls component.
Definition mcuxClEls_Common.h:46
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_KeyDelete_Async(mcuxClEls_KeyIndex_t keyIdx)
Deletes a key from keystore at the given index.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_GetKeyProperties(mcuxClEls_KeyIndex_t keyIdx, mcuxClEls_KeyProp_t *pKeyProp)
Exports the properties of the keys stored in the ELS internal keystore.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_KeyExport_Async(mcuxClEls_KeyIndex_t wrappingKeyIdx, mcuxClEls_KeyIndex_t exportKeyIdx, uint8_t *pOutput)
Exports a key from an internal key register to external storage, using a wrapping key.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_KeyImport_Async(mcuxClEls_KeyImportOption_t options, uint8_t const *pImportKey, size_t importKeyLength, mcuxClEls_KeyIndex_t wrappingKeyIdx, mcuxClEls_KeyIndex_t targetKeyIdx)
Imports a key from external storage to an internal key register.
uint32_t mcuxClEls_Status_t
Type for ELS driver status codes.
Definition mcuxClEls_Types.h:212
uint32_t mcuxClEls_KeyIndex_t
Type for ELS keystore indices.
Definition mcuxClEls_Types.h:222
#define MCUX_CSSL_FP_FUNCTION_DECL(...)
Declaration of a flow protected function.
Definition mcuxCsslFlowProtection.h:125
#define MCUX_CSSL_FP_PROTECTED_TYPE(resultType)
Based on a given base type, builds a return type with flow protection.
Definition mcuxCsslFlowProtection.h:81
Command option bit field for mcuxClEls_KeyImport_Async.
Definition mcuxClEls_KeyManagement.h:137
uint32_t revf
This field is managed internally.
Definition mcuxClEls_KeyManagement.h:145
uint32_t value
Accesses the bit field as a full word; initialize with a combination of constants from MCUXCLELS_KEYI...
Definition mcuxClEls_KeyManagement.h:140
uint32_t kfmt
Defines the key import format, one of MCUXCLELS_KEYIMPORT_KFMT_.
Definition mcuxClEls_KeyManagement.h:147
Type for ELS key store key properties.
Definition mcuxClEls_Types.h:226