26 #ifndef MCUXCLCSS_ECC_H_ 27 #define MCUXCLCSS_ECC_H_ 56 #define MCUXCLCSS_ECC_VALUE_HASHED ((uint32_t) 0u<< 0u) 57 #define MCUXCLCSS_ECC_VALUE_NOT_HASHED ((uint32_t) 1u<< 0u) 58 #define MCUXCLCSS_ECC_VALUE_RTF ((uint32_t) 1u<< 1u) 59 #define MCUXCLCSS_ECC_VALUE_NO_RTF ((uint32_t) 0u<< 1u) 70 #define MCUXCLCSS_KEYGEN_VALUE_SIGN_PUBLICKEY ((uint32_t) 1u<< 0u) 71 #define MCUXCLCSS_KEYGEN_VALUE_TYPE_SIGN ((uint32_t) 0u<< 1u) 72 #define MCUXCLCSS_KEYGEN_VALUE_TYPE_KEYEXCHANGE ((uint32_t) 1u<< 1u) 73 #define MCUXCLCSS_KEYGEN_VALUE_DETERMINISTIC ((uint32_t) 0u<< 2u) 74 #define MCUXCLCSS_KEYGEN_VALUE_RANDOM ((uint32_t) 1u<< 2u) 75 #define NXFCLCSS_KEYGEN_VALUE_GEN_PUB_KEY ((uint32_t) 0u<< 3u) 76 #define NXFCLCSS_KEYGEN_VALUE_NO_PUB_KEY ((uint32_t) 1u<< 3u) 77 #define MCUXCLCSS_KEYGEN_VALUE_NO_RANDOM_DATA ((uint32_t) 0u<< 5u) 78 #define MCUXCLCSS_KEYGEN_VALUE_USE_RANDOM_DATA ((uint32_t) 1u<< 5u) 89 #define MCUXCLCSS_ECC_HASHED 0U 90 #define MCUXCLCSS_ECC_NOT_HASHED 1U 92 #define MCUXCLCSS_ECC_RTF 1U 93 #define MCUXCLCSS_ECC_NO_RTF 0U 104 #define MCUXCLCSS_ECC_PUBLICKEY_SIGN_ENABLE 1U 105 #define MCUXCLCSS_ECC_PUBLICKEY_SIGN_DISABLE 0U 107 #define MCUXCLCSS_ECC_OUTPUTKEY_SIGN 0U 108 #define MCUXCLCSS_ECC_OUTPUTKEY_KEYEXCHANGE 1U 110 #define MCUXCLCSS_ECC_OUTPUTKEY_DETERMINISTIC 0U 111 #define MCUXCLCSS_ECC_OUTPUTKEY_RANDOM 1U 113 #define MCUXCLCSS_ECC_GEN_PUBLIC_KEY 0U 114 #define MCUXCLCSS_ECC_SKIP_PUBLIC_KEY 1U 117 #define MCUXCLCSS_ECC_NO_RANDOM_DATA 0U 118 #define MCUXCLCSS_ECC_INCLUDE_RANDOM_DATA 1U 130 #define MCUXCLCSS_ECC_PUBLICKEY_SIZE ((size_t) 64U) 131 #define MCUXCLCSS_ECC_SIGNATURE_SIZE ((size_t) 64U) 132 #define MCUXCLCSS_ECC_SIGNATURE_R_SIZE ((size_t) 32U) 278 uint8_t
const * pRandomData,
316 uint8_t
const * pPublicKey,
370 uint8_t
const * pInputHash,
371 uint8_t
const * pInputMessage,
372 size_t inputMessageLength,
431 uint8_t
const * pInputHash,
432 uint8_t
const * pInputMessage,
433 size_t inputMessageLength,
434 uint8_t
const * pSignatureAndPubKey,
uint32_t kgsign_rnd
Define if using user provided random data for the signature.
Definition: mcuxClCss_Ecc.h:214
#define MCUXCLCSS_API
Marks a function as a public API function of the mcuxClCss component.
Definition: mcuxClCss_Common.h:40
Type for CSS key store key properties.
Definition: mcuxClCss_Types.h:196
uint32_t echashchl
Define type of input, plain message or hash of message.
Definition: mcuxClCss_Ecc.h:190
uint8_t mcuxClCss_KeyIndex_t
Type for CSS keystore indices.
Definition: mcuxClCss_Types.h:193
uint32_t revf
This field is managed internally.
Definition: mcuxClCss_Ecc.h:173
MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_EccKeyExchange_Async(mcuxClCss_KeyIndex_t privateKeyIdx, uint8_t const *pPublicKey, mcuxClCss_KeyIndex_t sharedSecretIdx, mcuxClCss_KeyProp_t sharedSecretProperties)
Performs a Diffie-Hellman key exchange with an internal ECC private key and an external ECC public ke...
CSSv2 header for common functionality.
Command option bit field for mcuxClCss_EccKeyGen_Async Bit field to configure mcuxClCss_EccKeyGenOpti...
Definition: mcuxClCss_Ecc.h:201
uint32_t value
Access the bit field as a full word; initialize with a combination of constants from MCUXCLCSS_ECC (S...
Definition: mcuxClCss_Ecc.h:166
uint32_t kgtypedh
Define the usage of the output key.
Definition: mcuxClCss_Ecc.h:210
MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_EccKeyGen_Async(mcuxClCss_EccKeyGenOption_t options, mcuxClCss_KeyIndex_t signingKeyIdx, mcuxClCss_KeyIndex_t privateKeyIdx, mcuxClCss_KeyProp_t generatedKeyProperties, uint8_t const *pRandomData, uint8_t *pPublicKey)
Generates an ECC key pair on the NIST P-256 curve.
uint32_t skip_pbk
Define if generating a public key.
Definition: mcuxClCss_Ecc.h:212
uint32_t value
Accesses the bit field as a full word; initialize with a combination of constants from MCUXCLCSS_KEYG...
Definition: mcuxClCss_Ecc.h:205
uint8_t mcuxClCss_EccByte_t
Data type for ECC parameters in CSS format.
Definition: mcuxClCss_Ecc.h:156
uint32_t kgsrc
Define if the output key is deterministic or random.
Definition: mcuxClCss_Ecc.h:211
uint32_t value
Access the bit field as a full word; initialize with a combination of constants from MCUXCLCSS_ECC (S...
Definition: mcuxClCss_Ecc.h:186
MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_EccVerify_Async(mcuxClCss_EccVerifyOption_t options, uint8_t const *pInputHash, uint8_t const *pInputMessage, size_t inputMessageLength, uint8_t const *pSignatureAndPubKey, uint8_t *pOutput)
Verifies an ECDSA signature of a given message.
uint32_t kgsign
Define if signing the output public key.
Definition: mcuxClCss_Ecc.h:209
Command option bit field for mcuxClCss_EccVerify_Async Bit field to configure mcuxClCss_EccVerifyOpti...
Definition: mcuxClCss_Ecc.h:182
uint32_t revf
This field is managed internally.
Definition: mcuxClCss_Ecc.h:213
uint32_t revf
This field is managed internally.
Definition: mcuxClCss_Ecc.h:192
uint32_t signrtf
Define if signing the Run-Time Fingerprint.
Definition: mcuxClCss_Ecc.h:171
Command option bit field for mcuxClCss_EccSign_Async Bit field to configure mcuxClCss_EccSign_Async.
Definition: mcuxClCss_Ecc.h:162
uint32_t echashchl
Define type of input, plain message or hash of message.
Definition: mcuxClCss_Ecc.h:170
MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_EccSign_Async(mcuxClCss_EccSignOption_t options, mcuxClCss_KeyIndex_t keyIdx, uint8_t const *pInputHash, uint8_t const *pInputMessage, size_t inputMessageLength, uint8_t *pOutput)
Generates an ECDSA signature of a given message.
#define MCUX_CSSL_FP_FUNCTION_DECL(id)
Declaration of a flow protected function.
Definition: mcuxCsslFlowProtection.h:119
uint64_t mcuxClCss_Status_Protected_t
Type for CSS driver protected status codes.
Definition: mcuxClCss_Types.h:183