MCUX CLNS
MCUX Crypto Library Normal Secure
Loading...
Searching...
No Matches
mcuxClEcc_Types.h
Go to the documentation of this file.
1/*--------------------------------------------------------------------------*/
2/* Copyright 2020-2025 NXP */
3/* */
4/* NXP Confidential and Proprietary. This software is owned or controlled */
5/* by NXP and may only be used strictly in accordance with the applicable */
6/* license terms. By expressly accepting such terms or by downloading, */
7/* installing, activating and/or otherwise using the software, you are */
8/* agreeing that you have read, and that you agree to comply with and are */
9/* bound by, such license terms. If you do not agree to be bound by the */
10/* applicable license terms, then you may not retain, install, activate or */
11/* otherwise use the software. */
12/*--------------------------------------------------------------------------*/
13
18
19
20#ifndef MCUXCLECC_TYPES_H_
21#define MCUXCLECC_TYPES_H_
22
23
24#include <mcuxClCore_Platform.h>
26#include <mcuxClEcc_Constants.h>
27#include <mcuxCsslAnalysis.h>
28#include <mcuxClBuffer.h>
29
30#include <mcuxClSignature_Types.h>
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
42
46typedef uint32_t mcuxClEcc_Status_t;
47
52
53
55typedef struct mcuxClEcc_MontDH_DomainParams mcuxClEcc_MontDH_DomainParams_t;
56
57
59typedef struct mcuxClEcc_EdDSA_DomainParams mcuxClEcc_EdDSA_DomainParams_t;
60
64struct mcuxClEcc_EdDSA_GenerateKeyPairDescriptor;
65
69typedef struct mcuxClEcc_EdDSA_GenerateKeyPairDescriptor mcuxClEcc_EdDSA_GenerateKeyPairDescriptor_t;
70
74struct mcuxClEcc_EdDSA_SignatureProtocolDescriptor;
75
79typedef struct mcuxClEcc_EdDSA_SignatureProtocolDescriptor mcuxClEcc_EdDSA_SignatureProtocolDescriptor_t;
80
81
83typedef struct mcuxClEcc_Weier_DomainParams mcuxClEcc_Weier_DomainParams_t;
84
88struct mcuxClEcc_WeierECC_PointEncDescriptor;
89
93typedef struct mcuxClEcc_WeierECC_PointEncDescriptor mcuxClEcc_WeierECC_PointEncDescriptor_t;
94
99
103struct mcuxClEcc_ECDSA_SignatureProtocolDescriptor;
104
108typedef struct mcuxClEcc_ECDSA_SignatureProtocolDescriptor mcuxClEcc_ECDSA_SignatureProtocolDescriptor_t;
109
110/**********************************************************/
111/* Parameter structure of mcuxClEcc APIs */
112/**********************************************************/
113
114
116typedef struct {
118 uint32_t pLen;
123 uint32_t nLen;
125
126 /* mcuxClEcc_Types */
130
131
132/**********************************************************/
133/* Descriptors of mcuxClEcc APIs */
134/**********************************************************/
141
142
146
147/**********************************************************/
148/* Signature ProtocolDescriptors and ModeDescriptors */
149/**********************************************************/
150
155
156MCUX_CSSL_ANALYSIS_START_PATTERN_URL_IN_COMMENTS()
172MCUX_CSSL_ANALYSIS_STOP_PATTERN_URL_IN_COMMENTS()
173MCUX_CSSL_ANALYSIS_START_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED("Consumed by mcuxClSignature component. Hence, it is declared but never referenced.")
176MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED()
177
178 /* mcuxClEcc_EdDsaDescriptors */
180
181
182
186
187
204
210MCUX_CSSL_ANALYSIS_START_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED("Consumed by mcuxClSignature component. Hence, it is declared but never referenced.")
213MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED()
214 /* mcuxClEcc_ECDSADescriptors */
216 /* mcuxClEcc_Descriptors */
220
227
242
257
272
287
303#define mcuxClEcc_Weier_DomainParams_NIST_P192 mcuxClEcc_Weier_DomainParams_secp192r1
304#define mcuxClEcc_Weier_DomainParams_ansix9p192r1 mcuxClEcc_Weier_DomainParams_secp192r1
305
321#define mcuxClEcc_Weier_DomainParams_NIST_P224 mcuxClEcc_Weier_DomainParams_secp224r1
322#define mcuxClEcc_Weier_DomainParams_ansix9p224r1 mcuxClEcc_Weier_DomainParams_secp224r1
323
335#define mcuxClEcc_Weier_DomainParams_NIST_P256 mcuxClEcc_Weier_DomainParams_secp256r1
336#define mcuxClEcc_Weier_DomainParams_ansix9p256r1 mcuxClEcc_Weier_DomainParams_secp256r1
337
349#define mcuxClEcc_Weier_DomainParams_NIST_P384 mcuxClEcc_Weier_DomainParams_secp384r1
350#define mcuxClEcc_Weier_DomainParams_ansix9p384r1 mcuxClEcc_Weier_DomainParams_secp384r1
351
367#define mcuxClEcc_Weier_DomainParams_NIST_P521 mcuxClEcc_Weier_DomainParams_secp521r1
368#define mcuxClEcc_Weier_DomainParams_ansix9p521r1 mcuxClEcc_Weier_DomainParams_secp521r1
369
384
399
414
429
444
459
474
489
504
519
534
549
564
579
580
581/* Ed25519 domain parameters */
582extern const mcuxClEcc_EdDSA_DomainParams_t mcuxClEcc_EdDSA_DomainParams_Ed25519;
583 /* mcuxClEcc_DomainParamsDescriptor */
587
594
595
596/*********************************************************/
597/* Encoding types related to point encoding specified in */
598/* SEC 1: Elliptic Curve Cryptography */
599/*********************************************************/
600
606
625MCUX_CSSL_ANALYSIS_START_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED("Consumed by user / customer. Hence, it is declared but never referenced.")
627MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_DECLARED_BUT_NEVER_REFERENCED()
628 /* mcuxClEcc_WeierECC_PointEncDescriptors */
632
633
640
641
642
643
644
645
646
647 /* mcuxClEcc_ArithmeticOperation */
649
650
651#ifdef __cplusplus
652} /* extern "C" */
653#endif
654
655#endif /* MCUXCLECC_TYPES_H_ */
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:38
struct mcuxClEcc_WeierECC_PointEncDescriptor mcuxClEcc_WeierECC_PointEncDescriptor_t
Weierstrass point encoding variant descriptor type.
Definition mcuxClEcc_Types.h:93
struct mcuxClEcc_EdDSA_DomainParams mcuxClEcc_EdDSA_DomainParams_t
Type for EdDSA domain parameters.
Definition mcuxClEcc_Types.h:59
mcuxClEcc_Status_t mcuxClEcc_Status_Protected_t
Deprecated type for mcuxClEcc component return codes.
Definition mcuxClEcc_Types.h:51
struct mcuxClEcc_MontDH_DomainParams mcuxClEcc_MontDH_DomainParams_t
Type for MontDH domain parameters.
Definition mcuxClEcc_Types.h:55
const mcuxClEcc_WeierECC_PointEncDescriptor_t * mcuxClEcc_WeierECC_PointEncType_t
Weierstrass point encoding variant type.
Definition mcuxClEcc_Types.h:98
struct mcuxClEcc_ECDSA_SignatureProtocolDescriptor mcuxClEcc_ECDSA_SignatureProtocolDescriptor_t
ECDSA SignatureProtocol variant descriptor type.
Definition mcuxClEcc_Types.h:108
struct mcuxClEcc_EdDSA_GenerateKeyPairDescriptor mcuxClEcc_EdDSA_GenerateKeyPairDescriptor_t
EdDSA GenerateKeyPair variant descriptor type.
Definition mcuxClEcc_Types.h:69
struct mcuxClEcc_EdDSA_SignatureProtocolDescriptor mcuxClEcc_EdDSA_SignatureProtocolDescriptor_t
EdDSA SignatureProtocol variant descriptor type.
Definition mcuxClEcc_Types.h:79
uint32_t mcuxClEcc_Status_t
Type for mcuxClEcc component return codes.
Definition mcuxClEcc_Types.h:46
struct mcuxClEcc_Weier_DomainParams mcuxClEcc_Weier_DomainParams_t
Type for Weierstrass ECC domain parameters.
Definition mcuxClEcc_Types.h:83
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_secp224r1
secp224r1 (nistp224r1, ansix9p224r1) domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_brainpoolP192t1
brainpoolP192t1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_brainpoolP320t1
brainpoolP320t1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_brainpoolP192r1
brainpoolP192r1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_brainpoolP320r1
brainpoolP320r1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_brainpoolP256t1
brainpoolP256t1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_brainpoolP160t1
brainpoolP160t1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_brainpoolP160r1
brainpoolP160r1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_secp160k1
secp160k1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_brainpoolP384t1
brainpoolP384t1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_secp192k1
secp192k1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_secp384r1
secp384r1 (nistp384r1, ansix9p384r1) domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_brainpoolP384r1
brainpoolP384r1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_brainpoolP512t1
brainpoolP512t1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_brainpoolP224r1
brainpoolP224r1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_brainpoolP224t1
brainpoolP224t1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_secp192r1
secp192r1 (nistp192r1, ansix9p192r1) domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_brainpoolP256r1
brainpoolP256r1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_brainpoolP512r1
brainpoolP512r1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_secp224k1
secp224k1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_secp256k1
secp256k1 domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_secp256r1
secp256r1 (nistp256r1, ansix9p256r1) domain parameters
const mcuxClEcc_Weier_DomainParams_t mcuxClEcc_Weier_DomainParams_secp521r1
secp521r1 (nistp521r1, ansix9p521r1) domain parameters
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:626
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:52
struct mcuxClSignature_ModeDescriptor mcuxClSignature_ModeDescriptor_t
Signature mode/algorithm descriptor type.
Definition mcuxClSignature_Types.h:45
#define MCUX_CSSL_FP_PROTECTED_TYPE(resultType)
Based on a given base type, builds a return type with flow protection.
Definition mcuxCsslFlowProtection.h:138
const mcuxClSignature_ModeDescriptor_t mcuxClSignature_ModeDescriptor_Ed25519
Ed25519 Signature mode descriptor.
static mcuxClSignature_Mode_t mcuxClSignature_Mode_Ed25519
Ed25519 Signature mode.
Definition mcuxClEcc_Types.h:174
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:211
Structure to define basic custom domain parameters for (short) Weierstrass curves with cofactor 1.
Definition mcuxClEcc_Types.h:116