MCUX CLNS
MCUX Crypto Library Normal Secure
Loading...
Searching...
No Matches
mcuxClEcc_MemoryConsumption.h
Go to the documentation of this file.
1
/*--------------------------------------------------------------------------*/
2
/* Copyright 2021-2025 NXP */
3
/* */
4
/* SPDX-License-Identifier: BSD-3-Clause */
5
/* */
6
/* Redistribution and use in source and binary forms, with or without */
7
/* modification, are permitted provided that the following conditions are */
8
/* met: */
9
/* */
10
/* 1. Redistributions of source code must retain the above copyright */
11
/* notice, this list of conditions and the following disclaimer. */
12
/* */
13
/* 2. Redistributions in binary form must reproduce the above copyright */
14
/* notice, this list of conditions and the following disclaimer in the */
15
/* documentation and/or other materials provided with the distribution. */
16
/* */
17
/* 3. Neither the name of the copyright holder nor the names of its */
18
/* contributors may be used to endorse or promote products derived from */
19
/* this software without specific prior written permission. */
20
/* */
21
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS */
22
/* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED */
23
/* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A */
24
/* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */
25
/* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
26
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */
27
/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR */
28
/* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
29
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
30
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */
31
/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
32
/*--------------------------------------------------------------------------*/
33
38
39
#ifndef MCUXCLECC_MEMORYCONSUMPTION_H_
40
#define MCUXCLECC_MEMORYCONSUMPTION_H_
41
42
#include <
mcuxClCore_Macros.h
>
43
50
56
#define MCUXCLKEY_GENERATEKEYPAIR_WEIERECC_WACPU_SIZE 472u
57
58
59
#define MCUXCLSIGNATURE_SIGN_ECDSA_WACPU_SIZE 472u
60
61
#define MCUXCLSIGNATURE_VERIFY_ECDSA_WACPU_SIZE 480u
62
63
#define MCUXCLKEY_AGREEMENT_ECDH_WACPU_SIZE 472u
64
65
#define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WACPU_SIZE 156u
66
67
#define MCUXCLECC_WEIERECC_DECODEPOINT_WACPU_SIZE 148u
68
69
#ifdef MCUXCL_FEATURE_ECC_ARITHMETICOPERATION
70
#ifdef MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_SCALARMULT
71
#define MCUXCLECC_ARITHMETICOPERATION_SCALARMULT_WACPU_SIZE $(mcuxClEcc_ArithmeticOperation_ScalarMult_WaCPU_SIZE)u
72
#endif
/* MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_SCALARMULT */
73
74
#ifdef MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_SECURESCALARMULT
75
#define MCUXCLECC_ARITHMETICOPERATION_SECURESCALARMULT_WACPU_SIZE $(mcuxClEcc_ArithmeticOperation_SecureScalarMult_WaCPU_SIZE)u
76
#endif
/* MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_SECURESCALARMULT */
77
78
#ifdef MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_POINTADD
79
#define MCUXCLECC_ARITHMETICOPERATION_POINTADD_WACPU_SIZE $(mcuxClEcc_ArithmeticOperation_PointAdd_WaCPU_SIZE)u
80
#endif
/* MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_POINTADD */
81
82
#ifdef MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_POINTSUB
83
#define MCUXCLECC_ARITHMETICOPERATION_POINTSUB_WACPU_SIZE $(mcuxClEcc_ArithmeticOperation_PointSub_WaCPU_SIZE)u
84
#endif
/* MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_POINTSUB */
85
#endif
/* MCUXCL_FEATURE_ECC_ARITHMETICOPERATION */
86
87
#define MCUXCLECC_WEIERECC_PRIVATEKEYVALIDATION_WACPU_SIZE 132u
88
#define MCUXCLECC_WEIERECC_PUBLICKEYVALIDATION_WACPU_SIZE 140u
89
/* MCUXCLECC_WACPU_ */
93
94
#ifdef MCUXCL_FEATURE_ECC_MONTDH
100
101
#ifdef MCUXCL_FEATURE_ECC_CURVE25519
102
#define MCUXCLECC_MONTDH_GENERATEKEYPAIR_CURVE25519_WACPU_SIZE 472u
103
#define MCUXCLECC_MONTDH_KEYAGREEMENT_CURVE25519_WACPU_SIZE 156u
104
#endif
/* MCUXCL_FEATURE_ECC_CURVE25519 */
105
106
#ifdef MCUXCL_FEATURE_ECC_CURVE448
107
#define MCUXCLECC_MONTDH_GENERATEKEYPAIR_CURVE448_WACPU_SIZE 472u
108
#define MCUXCLECC_MONTDH_KEYAGREEMENT_CURVE448_WACPU_SIZE 156u
109
#endif
/* MCUXCL_FEATURE_ECC_CURVE448 */
110
/* MCUXCLECC_MONTDH_WACPU_ */
114
#endif
/* MCUXCL_FEATURE_ECC_MONTDH */
115
116
#ifdef MCUXCL_FEATURE_ECC_EDDSA
122
123
#define MCUXCLECC_EDDSA_GENERATEKEYPAIR_ED25519_WACPU_SIZE 1076u
124
#define MCUXCLECC_EDDSA_GENERATESIGNATURE_ED25519_WACPU_SIZE 1560u
125
#define MCUXCLECC_EDDSA_VERIFYSIGNATURE_ED25519_WACPU_SIZE 620u
126
127
/* MCUXCLECC_EDDSA_WACPU_ */
131
#endif
/* MCUXCL_FEATURE_ECC_EDDSA */
132
138
142
#define MCUXCLECC_PKC_WORDSIZE 8u
143
147
#define MCUXCLECC_KEYGEN_WAPKC_SIZE(pByteLen,nByteLen) \
148
(1u + \
149
(24u * (MCUXCLPKC_ALIGN_TO_PKC_WORDSIZE(MCUXCLCORE_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE)))
150
151
#define MCUXCLKEY_GENERATEKEYPAIR_WEIERECC_WAPKC_SIZE_128 (576u)
152
#define MCUXCLKEY_GENERATEKEYPAIR_WEIERECC_WAPKC_SIZE_256 (960u)
153
#define MCUXCLKEY_GENERATEKEYPAIR_WEIERECC_WAPKC_SIZE_384 (1344u)
154
#define MCUXCLKEY_GENERATEKEYPAIR_WEIERECC_WAPKC_SIZE_512 (1728u)
155
#define MCUXCLKEY_GENERATEKEYPAIR_WEIERECC_WAPKC_SIZE_640 (2112u)
156
157
161
#define MCUXCLECC_SIGN_WAPKC_SIZE(pByteLen,nByteLen) \
162
(1u + \
163
(24u * (MCUXCLPKC_ALIGN_TO_PKC_WORDSIZE(MCUXCLCORE_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE)))
164
165
#define MCUXCLSIGNATURE_SIGN_ECDSA_WAPKC_SIZE_128 (576u )
166
#define MCUXCLSIGNATURE_SIGN_ECDSA_WAPKC_SIZE_256 (960u )
167
#define MCUXCLSIGNATURE_SIGN_ECDSA_WAPKC_SIZE_384 (1344u )
168
#define MCUXCLSIGNATURE_SIGN_ECDSA_WAPKC_SIZE_512 (1728u )
169
#define MCUXCLSIGNATURE_SIGN_ECDSA_WAPKC_SIZE_640 (2112u )
170
174
175
#define MCUXCLECC_VERIFY_WAPKC_SIZE(pByteLen,nByteLen) \
176
(1u + \
177
(28u * (MCUXCLPKC_ALIGN_TO_PKC_WORDSIZE(MCUXCLCORE_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE)))
178
179
#define MCUXCLSIGNATURE_VERIFY_ECDSA_WAPKC_SIZE_128 (672u)
180
#define MCUXCLSIGNATURE_VERIFY_ECDSA_WAPKC_SIZE_256 (1120u)
181
#define MCUXCLSIGNATURE_VERIFY_ECDSA_WAPKC_SIZE_384 (1568u)
182
#define MCUXCLSIGNATURE_VERIFY_ECDSA_WAPKC_SIZE_512 (2016u)
183
#define MCUXCLSIGNATURE_VERIFY_ECDSA_WAPKC_SIZE_640 (2464u)
184
188
#define MCUXCLECC_POINTMULT_WAPKC_SIZE(pByteLen,nByteLen) \
189
(1u + \
190
(24u * (MCUXCLPKC_ALIGN_TO_PKC_WORDSIZE(MCUXCLCORE_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE)))
191
192
#define MCUXCLKEY_AGREEMENT_ECDH_WAPKC_SIZE_128 (576u )
193
#define MCUXCLKEY_AGREEMENT_ECDH_WAPKC_SIZE_256 (960u )
194
#define MCUXCLKEY_AGREEMENT_ECDH_WAPKC_SIZE_384 (1344u )
195
#define MCUXCLKEY_AGREEMENT_ECDH_WAPKC_SIZE_512 (1728u )
196
#define MCUXCLKEY_AGREEMENT_ECDH_WAPKC_SIZE_640 (2112u )
197
201
#define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE(pByteLen,nByteLen) \
202
(1u + \
203
(22u * (MCUXCLPKC_ALIGN_TO_PKC_WORDSIZE(MCUXCLCORE_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE)))
204
205
#define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_128 (528u )
206
#define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_256 (880u )
207
#define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_384 (1232u )
208
#define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_512 (1584u )
209
#define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_640 (1936u )
210
214
#define MCUXCLECC_WEIERECC_DECODEPOINT_WAPKC_SIZE_128 (432u)
215
#define MCUXCLECC_WEIERECC_DECODEPOINT_WAPKC_SIZE_256 (720u)
216
#define MCUXCLECC_WEIERECC_DECODEPOINT_WAPKC_SIZE_384 (1008u)
217
#define MCUXCLECC_WEIERECC_DECODEPOINT_WAPKC_SIZE_512 (1296u)
218
#define MCUXCLECC_WEIERECC_DECODEPOINT_WAPKC_SIZE_640 (1584u)
219
220
#ifdef MCUXCL_FEATURE_ECC_ARITHMETICOPERATION
221
#ifdef MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_SCALARMULT
225
#define MCUXCLECC_ARITHMETICOPERATION_SCALARMULT_WAPKC_SIZE_128 $(mcuxClEcc_ArithmeticOperation_ScalarMult_WaPKC_Size_128)u
226
#define MCUXCLECC_ARITHMETICOPERATION_SCALARMULT_WAPKC_SIZE_256 $(mcuxClEcc_ArithmeticOperation_ScalarMult_WaPKC_Size_256)u
227
#define MCUXCLECC_ARITHMETICOPERATION_SCALARMULT_WAPKC_SIZE_384 $(mcuxClEcc_ArithmeticOperation_ScalarMult_WaPKC_Size_384)u
228
#define MCUXCLECC_ARITHMETICOPERATION_SCALARMULT_WAPKC_SIZE_512 $(mcuxClEcc_ArithmeticOperation_ScalarMult_WaPKC_Size_512)u
229
#define MCUXCLECC_ARITHMETICOPERATION_SCALARMULT_WAPKC_SIZE_640 $(mcuxClEcc_ArithmeticOperation_ScalarMult_WaPKC_Size_640)u
230
#endif
/* MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_SCALARMULT */
231
232
#ifdef MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_SECURESCALARMULT
236
#define MCUXCLECC_ARITHMETICOPERATION_SECURESCALARMULT_WAPKC_SIZE_128 $(mcuxClEcc_ArithmeticOperation_SecureScalarMult_WaPKC_Size_128)u
237
#define MCUXCLECC_ARITHMETICOPERATION_SECURESCALARMULT_WAPKC_SIZE_256 $(mcuxClEcc_ArithmeticOperation_SecureScalarMult_WaPKC_Size_256)u
238
#define MCUXCLECC_ARITHMETICOPERATION_SECURESCALARMULT_WAPKC_SIZE_384 $(mcuxClEcc_ArithmeticOperation_SecureScalarMult_WaPKC_Size_384)u
239
#define MCUXCLECC_ARITHMETICOPERATION_SECURESCALARMULT_WAPKC_SIZE_512 $(mcuxClEcc_ArithmeticOperation_SecureScalarMult_WaPKC_Size_512)u
240
#define MCUXCLECC_ARITHMETICOPERATION_SECURESCALARMULT_WAPKC_SIZE_640 $(mcuxClEcc_ArithmeticOperation_SecureScalarMult_WaPKC_Size_640)u
241
#endif
/* MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_SECURESCALARMULT */
242
243
#ifdef MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_POINTADD
247
#define MCUXCLECC_ARITHMETICOPERATION_POINTADD_WAPKC_SIZE_128 ($(mcuxClEcc_ArithmeticOperation_PointAdd_WaPKC_Size_128)u)
248
#define MCUXCLECC_ARITHMETICOPERATION_POINTADD_WAPKC_SIZE_256 ($(mcuxClEcc_ArithmeticOperation_PointAdd_WaPKC_Size_256)u)
249
#define MCUXCLECC_ARITHMETICOPERATION_POINTADD_WAPKC_SIZE_384 ($(mcuxClEcc_ArithmeticOperation_PointAdd_WaPKC_Size_384)u)
250
#define MCUXCLECC_ARITHMETICOPERATION_POINTADD_WAPKC_SIZE_512 ($(mcuxClEcc_ArithmeticOperation_PointAdd_WaPKC_Size_512)u)
251
#define MCUXCLECC_ARITHMETICOPERATION_POINTADD_WAPKC_SIZE_640 ($(mcuxClEcc_ArithmeticOperation_PointAdd_WaPKC_Size_640)u)
252
253
#endif
/* MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_POINTADD */
254
255
#ifdef MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_POINTSUB
259
#define MCUXCLECC_ARITHMETICOPERATION_POINTSUB_WAPKC_SIZE_128 ($(mcuxClEcc_ArithmeticOperation_PointSub_WaPKC_Size_128)u)
260
#define MCUXCLECC_ARITHMETICOPERATION_POINTSUB_WAPKC_SIZE_256 ($(mcuxClEcc_ArithmeticOperation_PointSub_WaPKC_Size_256)u)
261
#define MCUXCLECC_ARITHMETICOPERATION_POINTSUB_WAPKC_SIZE_384 ($(mcuxClEcc_ArithmeticOperation_PointSub_WaPKC_Size_384)u)
262
#define MCUXCLECC_ARITHMETICOPERATION_POINTSUB_WAPKC_SIZE_512 ($(mcuxClEcc_ArithmeticOperation_PointSub_WaPKC_Size_512)u)
263
#define MCUXCLECC_ARITHMETICOPERATION_POINTSUB_WAPKC_SIZE_640 ($(mcuxClEcc_ArithmeticOperation_PointSub_WaPKC_Size_640)u)
264
265
#endif
/* MCUXCL_FEATURE_ECC_ARITHMETICOPERATION_POINTSUB */
266
#endif
/* MCUXCL_FEATURE_ECC_ARITHMETICOPERATION */
267
271
#define MCUXCLECC_WEIERECC_PRIVATEKEYVALIDATION_WAPKC_SIZE_128 (240u)
272
#define MCUXCLECC_WEIERECC_PRIVATEKEYVALIDATION_WAPKC_SIZE_256 (400u)
273
#define MCUXCLECC_WEIERECC_PRIVATEKEYVALIDATION_WAPKC_SIZE_384 (560u)
274
#define MCUXCLECC_WEIERECC_PRIVATEKEYVALIDATION_WAPKC_SIZE_512 (720u)
275
#define MCUXCLECC_WEIERECC_PRIVATEKEYVALIDATION_WAPKC_SIZE_640 (880u)
276
277
#define MCUXCLECC_WEIERECC_PUBLICKEYVALIDATION_WAPKC_SIZE_128 (336u)
278
#define MCUXCLECC_WEIERECC_PUBLICKEYVALIDATION_WAPKC_SIZE_256 (560u)
279
#define MCUXCLECC_WEIERECC_PUBLICKEYVALIDATION_WAPKC_SIZE_384 (784u)
280
#define MCUXCLECC_WEIERECC_PUBLICKEYVALIDATION_WAPKC_SIZE_512 (1008u)
281
#define MCUXCLECC_WEIERECC_PUBLICKEYVALIDATION_WAPKC_SIZE_640 (1232u)
282
/* MCUXCLECC_WAPKC_ */
286
287
#if defined(MCUXCL_FEATURE_ECC_MONTDH)
293
297
#ifdef MCUXCL_FEATURE_ECC_CURVE25519
298
#define MCUXCLECC_MONTDH_GENERATEKEYPAIR_CURVE25519_WAPKC_SIZE 880u
299
#endif
/* MCUXCL_FEATURE_ECC_CURVE25519 */
300
#ifdef MCUXCL_FEATURE_ECC_CURVE448
301
#define MCUXCLECC_MONTDH_GENERATEKEYPAIR_CURVE448_WAPKC_SIZE 1408u
302
#endif
/* MCUXCL_FEATURE_ECC_CURVE448 */
303
307
#ifdef MCUXCL_FEATURE_ECC_CURVE25519
308
#define MCUXCLECC_MONTDH_KEYAGREEMENT_CURVE25519_WAPKC_SIZE 880u
309
#endif
/* MCUXCL_FEATURE_ECC_CURVE25519 */
310
#ifdef MCUXCL_FEATURE_ECC_CURVE448
311
#define MCUXCLECC_MONTDH_KEYAGREEMENT_CURVE448_WAPKC_SIZE 1408u
312
#endif
/* MCUXCL_FEATURE_ECC_CURVE448 */
313
/* MCUXCLECC_MONTDH_WAPKC_ */
317
#endif
/* defined(MCUXCL_FEATURE_ECC_MONTDH) && defined(MCUXCL_FEATURE_PKC) */
318
319
#if defined(MCUXCL_FEATURE_ECC_EDDSA)
325
329
#define MCUXCLECC_EDDSA_GENERATEKEYPAIR_ED25519_WAPKC_SIZE 1800u
330
334
#define MCUXCLECC_EDDSA_GENERATESIGNATURE_ED25519_WAPKC_SIZE 1800u
335
339
#define MCUXCLECC_EDDSA_VERIFYSIGNATURE_ED25519_WAPKC_SIZE 1800u
340
/* MCUXCLECC_EDDSA_WAPKC_ */
344
#endif
/* defined(MCUXCL_FEATURE_ECC_EDDSA) && defined(MCUXCL_FEATURE_PKC) */
345
349
#define MCUXCLECC_CUSTOMWEIERECCDOMAINPARAMS_SIZE(byteLenP, byteLenN) \
350
MCUXCLCORE_ALIGN_TO_CPU_WORDSIZE(64u \
351
+ 8u * (byteLenP) \
352
+ 2u * (byteLenN) )
353
354
#ifdef MCUXCL_FEATURE_ECC_EDDSA
360
#define MCUXCLECC_EDDSA_GENERATEKEYPAIR_DESCRIPTOR_SIZE 20u
/* MCUXCLECC_EDDSA_GENKEYPAIR_DESC_SIZE_ */
364
370
#define MCUXCLECC_EDDSA_SIGNATURE_PROTOCOL_DESCRIPTOR_SIZE 20u
371
372
#define MCUXCLECC_EDDSA_ED25519_SIZE_SIGNATURE_PROTOCOL_DESCRIPTOR(contextLen) \
373
(MCUXCLECC_EDDSA_SIGNATURE_PROTOCOL_DESCRIPTOR_SIZE + MCUXCLECC_EDDSA_SIZE_HASH_PREFIX(MCUXCLECC_EDDSA_ED25519_DOMPREFIXLEN, (contextLen)))
374
375
/* MCUXCLECC_EDDSA_SIGNATURE_PROTOCOL_DESC_SIZE_ */
379
385
#define MCUXCLECC_EDDSA_SIGNATURE_MODE_SIZE (40u)
386
387
#define MCUXCLECC_EDDSA_ED25519_SIZE_SIGNATURE_MODE_DESCRIPTOR(contextLen) \
388
(MCUXCLECC_EDDSA_SIGNATURE_MODE_SIZE + MCUXCLECC_EDDSA_SIZE_HASH_PREFIX(MCUXCLECC_EDDSA_ED25519_DOMPREFIXLEN, (contextLen)))
389
390
391
/* MCUXCLECC_EDDSA_SIGNATURE_MODE_SIZE_ */
395
396
#endif
/* MCUXCL_FEATURE_ECC_EDDSA */
397
398
399
/* mcuxClEcc_MemoryConsumption */
403
404
#endif
/* MCUXCLECC_MEMORYCONSUMPTION_H_ */
mcuxClCore_Macros.h
Definition of macros.
platform
mcxa2xx
mcuxClEcc_MemoryConsumption.h
Generated by
1.16.1