40#ifndef MCUXCLECC_TYPES_H_
41#define MCUXCLECC_TYPES_H_
44#include <mcuxClCore_Platform.h>
47#include <mcuxCsslAnalysis.h>
50#include <mcuxClSignature_Types.h>
74#ifdef MCUXCL_FEATURE_ECC_MONTDH
76typedef struct mcuxClEcc_MontDH_DomainParams mcuxClEcc_MontDH_DomainParams_t;
79#ifdef MCUXCL_FEATURE_ECC_EDDSA
82typedef struct mcuxClEcc_EdDSA_DomainParams mcuxClEcc_EdDSA_DomainParams_t;
87struct mcuxClEcc_EdDSA_GenerateKeyPairDescriptor;
92typedef struct mcuxClEcc_EdDSA_GenerateKeyPairDescriptor mcuxClEcc_EdDSA_GenerateKeyPairDescriptor_t;
97struct mcuxClEcc_EdDSA_SignatureProtocolDescriptor;
102typedef struct mcuxClEcc_EdDSA_SignatureProtocolDescriptor mcuxClEcc_EdDSA_SignatureProtocolDescriptor_t;
105#ifdef MCUXCL_FEATURE_ECC_ARITHMETICOPERATION
109struct mcuxClEcc_ArithmeticOperationDescriptor;
114typedef struct mcuxClEcc_ArithmeticOperationDescriptor mcuxClEcc_ArithmeticOperationDescriptor_t;
119typedef const mcuxClEcc_ArithmeticOperationDescriptor_t * mcuxClEcc_ArithmeticOperation_t;
128struct mcuxClEcc_WeierECC_PointEncDescriptor;
143struct mcuxClEcc_ECDSA_SignatureProtocolDescriptor;
182#ifdef MCUXCL_FEATURE_ECC_EDDSA
197MCUX_CSSL_ANALYSIS_START_PATTERN_URL_IN_COMMENTS()
213MCUX_CSSL_ANALYSIS_STOP_PATTERN_URL_IN_COMMENTS()
214MCUX_CSSL_ANALYSIS_START_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED(
"Consumed by mcuxClSignature component. Hence, it is declared but never referenced.")
216 &mcuxClSignature_ModeDescriptor_Ed25519;
217MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED()
243MCUX_CSSL_ANALYSIS_START_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED(
"Consumed by mcuxClSignature component. Hence, it is declared but never referenced.")
246MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED()
260#ifdef MCUXCL_FEATURE_ECC_SECPK1_CURVES
322#if defined(MCUXCL_FEATURE_ECC_SECPR1_CURVES) || defined(MCUXCL_FEATURE_ECC_NISTPR1_CURVES) || defined(MCUXCL_FEATURE_ECC_ANSIX9P_CURVES)
339#define mcuxClEcc_Weier_DomainParams_NIST_P192 mcuxClEcc_Weier_DomainParams_secp192r1
340#define mcuxClEcc_Weier_DomainParams_ansix9p192r1 mcuxClEcc_Weier_DomainParams_secp192r1
357#define mcuxClEcc_Weier_DomainParams_NIST_P224 mcuxClEcc_Weier_DomainParams_secp224r1
358#define mcuxClEcc_Weier_DomainParams_ansix9p224r1 mcuxClEcc_Weier_DomainParams_secp224r1
371#define mcuxClEcc_Weier_DomainParams_NIST_P256 mcuxClEcc_Weier_DomainParams_secp256r1
372#define mcuxClEcc_Weier_DomainParams_ansix9p256r1 mcuxClEcc_Weier_DomainParams_secp256r1
385#define mcuxClEcc_Weier_DomainParams_NIST_P384 mcuxClEcc_Weier_DomainParams_secp384r1
386#define mcuxClEcc_Weier_DomainParams_ansix9p384r1 mcuxClEcc_Weier_DomainParams_secp384r1
403#define mcuxClEcc_Weier_DomainParams_NIST_P521 mcuxClEcc_Weier_DomainParams_secp521r1
404#define mcuxClEcc_Weier_DomainParams_ansix9p521r1 mcuxClEcc_Weier_DomainParams_secp521r1
406#ifdef MCUXCL_FEATURE_ECC_BRAINPOOLR1_CURVES
513#ifdef MCUXCL_FEATURE_ECC_BRAINPOOLT1_CURVES
623extern const mcuxClEcc_EdDSA_DomainParams_t mcuxClEcc_EdDSA_DomainParams_Ed25519;
666MCUX_CSSL_ANALYSIS_START_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED(
"Consumed by user / customer. Hence, it is declared but never referenced.")
668MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED()
682#ifdef MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_POINTADD
686extern const mcuxClEcc_ArithmeticOperationDescriptor_t mcuxClEcc_ArithOpDesc_PointAdd;
715MCUX_CSSL_ANALYSIS_START_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED(
"Consumed by user / customer. Hence, it is declared but never referenced.")
716static mcuxClEcc_ArithmeticOperation_t mcuxClEcc_ArithmeticOperation_PointAdd =
717 &mcuxClEcc_ArithOpDesc_PointAdd;
718MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED()
722#ifdef MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_POINTSUB
726extern const mcuxClEcc_ArithmeticOperationDescriptor_t mcuxClEcc_ArithOpDesc_PointSub;
755MCUX_CSSL_ANALYSIS_START_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED(
"Consumed by user / customer. Hence, it is declared but never referenced.")
756static mcuxClEcc_ArithmeticOperation_t mcuxClEcc_ArithmeticOperation_PointSub =
757 &mcuxClEcc_ArithOpDesc_PointSub;
758MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED()
762#ifdef MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_SCALARMULT
766extern const mcuxClEcc_ArithmeticOperationDescriptor_t mcuxClEcc_ArithOpDesc_ScalarMult;
795MCUX_CSSL_ANALYSIS_START_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED(
"Consumed by user / customer. Hence, it is declared but never referenced.")
796static mcuxClEcc_ArithmeticOperation_t mcuxClEcc_ArithmeticOperation_ScalarMult =
797 &mcuxClEcc_ArithOpDesc_ScalarMult;
798MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED()
802#ifdef MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_SECURESCALARMULT
806extern const mcuxClEcc_ArithmeticOperationDescriptor_t mcuxClEcc_ArithOpDesc_SecureScalarMult;
835MCUX_CSSL_ANALYSIS_START_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED(
"Consumed by user / customer. Hence, it is declared but never referenced.")
836static mcuxClEcc_ArithmeticOperation_t mcuxClEcc_ArithmeticOperation_SecureScalarMult =
837 &mcuxClEcc_ArithOpDesc_SecureScalarMult;
838MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED()
Top-level include file for the mcuxClBuffer component.
Constant definitions of mcuxClEcc component.
Provides the API for the CSSL flow protection mechanism.
const uint8_t * mcuxCl_InputBuffer_t
Input buffer type.
Definition mcuxClBuffer_Pointer.h:58
struct mcuxClEcc_WeierECC_PointEncDescriptor mcuxClEcc_WeierECC_PointEncDescriptor_t
Weierstrass point encoding variant descriptor type.
Definition mcuxClEcc_Types.h:133
mcuxClEcc_Status_t mcuxClEcc_Status_Protected_t
Deprecated type for mcuxClEcc component return codes.
Definition mcuxClEcc_Types.h:71
const mcuxClEcc_WeierECC_PointEncDescriptor_t * mcuxClEcc_WeierECC_PointEncType_t
Weierstrass point encoding variant type.
Definition mcuxClEcc_Types.h:138
struct mcuxClEcc_ECDSA_SignatureProtocolDescriptor mcuxClEcc_ECDSA_SignatureProtocolDescriptor_t
ECDSA SignatureProtocol variant descriptor type.
Definition mcuxClEcc_Types.h:148
uint32_t mcuxClEcc_Status_t
Type for mcuxClEcc component return codes.
Definition mcuxClEcc_Types.h:66
struct mcuxClEcc_Weier_DomainParams mcuxClEcc_Weier_DomainParams_t
Type for Weierstrass ECC domain parameters.
Definition mcuxClEcc_Types.h:123
static const mcuxClEcc_WeierECC_PointEncType_t mcuxClEcc_WeierECC_PointEncType_SEC
Point encoding type to be used for Weierstrass curve points as specified in SEC 1: Elliptic Curve Cry...
Definition mcuxClEcc_Types.h:667
const mcuxClEcc_WeierECC_PointEncDescriptor_t mcuxClEcc_WeierECC_PointEncDescriptor_SEC
Point encoding variant descriptor to be used for Weierstrass curve points as specified in SEC 1: Elli...
const mcuxClSignature_ModeDescriptor_t *const mcuxClSignature_Mode_t
Signature mode/algorithm type.
Definition mcuxClSignature_Types.h:72
struct mcuxClSignature_ModeDescriptor mcuxClSignature_ModeDescriptor_t
Signature mode/algorithm descriptor type.
Definition mcuxClSignature_Types.h:65
#define MCUX_CSSL_FP_PROTECTED_TYPE(resultType)
Based on a given base type, builds a return type with flow protection.
Definition mcuxCsslFlowProtection.h:158
const mcuxClSignature_ModeDescriptor_t mcuxClSignature_ModeDescriptor_ECDSA
ECDSA Signature mode descriptor.
static mcuxClSignature_Mode_t mcuxClSignature_Mode_ECDSA
ECDSA Signature mode.
Definition mcuxClEcc_Types.h:244
Structure to define basic custom domain parameters for (short) Weierstrass curves with cofactor 1.
Definition mcuxClEcc_Types.h:156