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/* 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#ifndef MCUXCLECC_MEMORYCONSUMPTION_H_
20#define MCUXCLECC_MEMORYCONSUMPTION_H_
21
22#include <mcuxClCore_Macros.h>
23
30
36#define MCUXCLKEY_GENERATEKEYPAIR_WEIERECC_WACPU_SIZE 408u
37
38
39#define MCUXCLSIGNATURE_SIGN_ECDSA_WACPU_SIZE 408u
40
41#define MCUXCLSIGNATURE_VERIFY_ECDSA_WACPU_SIZE 416u
42
43#define MCUXCLKEY_AGREEMENT_ECDH_WACPU_SIZE 408u
44
45#define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WACPU_SIZE 88u
46
47#define MCUXCLECC_WEIERECC_DECODEPOINT_WACPU_SIZE 80u
48
49
50#define MCUXCLECC_WEIERECC_PRIVATEKEYVALIDATION_WACPU_SIZE 64u
51#define MCUXCLECC_WEIERECC_PUBLICKEYVALIDATION_WACPU_SIZE 72u
52 /* MCUXCLECC_WACPU_ */
56
62
63#define MCUXCLECC_MONTDH_GENERATEKEYPAIR_CURVE25519_WACPU_SIZE 404u
64#define MCUXCLECC_MONTDH_KEYAGREEMENT_CURVE25519_WACPU_SIZE 88u
65
66#define MCUXCLECC_MONTDH_GENERATEKEYPAIR_CURVE448_WACPU_SIZE 404u
67#define MCUXCLECC_MONTDH_KEYAGREEMENT_CURVE448_WACPU_SIZE 88u
68 /* MCUXCLECC_MONTDH_WACPU_ */
72
78
79#define MCUXCLECC_EDDSA_GENERATEKEYPAIR_ED25519_WACPU_SIZE 1008u
80#define MCUXCLECC_EDDSA_GENERATESIGNATURE_ED25519_WACPU_SIZE 1492u
81#define MCUXCLECC_EDDSA_VERIFYSIGNATURE_ED25519_WACPU_SIZE 552u
82
83 /* MCUXCLECC_EDDSA_WACPU_ */
87
93
97#define MCUXCLECC_PKC_WORDSIZE 8u
98
102#define MCUXCLECC_KEYGEN_WAPKC_SIZE(pByteLen,nByteLen) \
103 (24u * (MCUXCLCORE_ALIGN_TO_WORDSIZE(MCUXCLECC_PKC_WORDSIZE, MCUXCLCORE_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
104
105#define MCUXCLKEY_GENERATEKEYPAIR_WEIERECC_WAPKC_SIZE_128 (576u)
106#define MCUXCLKEY_GENERATEKEYPAIR_WEIERECC_WAPKC_SIZE_256 (960u)
107#define MCUXCLKEY_GENERATEKEYPAIR_WEIERECC_WAPKC_SIZE_384 (1344u)
108#define MCUXCLKEY_GENERATEKEYPAIR_WEIERECC_WAPKC_SIZE_512 (1728u)
109#define MCUXCLKEY_GENERATEKEYPAIR_WEIERECC_WAPKC_SIZE_640 (2112u)
110
111
115#define MCUXCLECC_SIGN_WAPKC_SIZE(pByteLen,nByteLen) \
116 (24u * (MCUXCLCORE_ALIGN_TO_WORDSIZE(MCUXCLECC_PKC_WORDSIZE, MCUXCLCORE_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
117
118#define MCUXCLSIGNATURE_SIGN_ECDSA_WAPKC_SIZE_128 (576u )
119#define MCUXCLSIGNATURE_SIGN_ECDSA_WAPKC_SIZE_256 (960u )
120#define MCUXCLSIGNATURE_SIGN_ECDSA_WAPKC_SIZE_384 (1344u )
121#define MCUXCLSIGNATURE_SIGN_ECDSA_WAPKC_SIZE_512 (1728u )
122#define MCUXCLSIGNATURE_SIGN_ECDSA_WAPKC_SIZE_640 (2112u )
123
127
128#define MCUXCLECC_VERIFY_WAPKC_SIZE(pByteLen,nByteLen) \
129 (28u * (MCUXCLCORE_ALIGN_TO_WORDSIZE(MCUXCLECC_PKC_WORDSIZE, MCUXCLCORE_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
130
131#define MCUXCLSIGNATURE_VERIFY_ECDSA_WAPKC_SIZE_128 (672u)
132#define MCUXCLSIGNATURE_VERIFY_ECDSA_WAPKC_SIZE_256 (1120u)
133#define MCUXCLSIGNATURE_VERIFY_ECDSA_WAPKC_SIZE_384 (1568u)
134#define MCUXCLSIGNATURE_VERIFY_ECDSA_WAPKC_SIZE_512 (2016u)
135#define MCUXCLSIGNATURE_VERIFY_ECDSA_WAPKC_SIZE_640 (2464u)
136
140#define MCUXCLECC_POINTMULT_WAPKC_SIZE(pByteLen,nByteLen) \
141 (24u * (MCUXCLCORE_ALIGN_TO_WORDSIZE(MCUXCLECC_PKC_WORDSIZE, MCUXCLCORE_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
142
143#define MCUXCLKEY_AGREEMENT_ECDH_WAPKC_SIZE_128 (576u )
144#define MCUXCLKEY_AGREEMENT_ECDH_WAPKC_SIZE_256 (960u )
145#define MCUXCLKEY_AGREEMENT_ECDH_WAPKC_SIZE_384 (1344u )
146#define MCUXCLKEY_AGREEMENT_ECDH_WAPKC_SIZE_512 (1728u )
147#define MCUXCLKEY_AGREEMENT_ECDH_WAPKC_SIZE_640 (2112u )
148
152#define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE(pByteLen,nByteLen) \
153 (22u * (MCUXCLCORE_ALIGN_TO_WORDSIZE(MCUXCLECC_PKC_WORDSIZE, MCUXCLCORE_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
154
155#define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_128 (528u )
156#define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_256 (880u )
157#define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_384 (1232u )
158#define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_512 (1584u )
159#define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_640 (1936u )
160
164#define MCUXCLECC_WEIERECC_DECODEPOINT_WAPKC_SIZE_128 (432u)
165#define MCUXCLECC_WEIERECC_DECODEPOINT_WAPKC_SIZE_256 (720u)
166#define MCUXCLECC_WEIERECC_DECODEPOINT_WAPKC_SIZE_384 (1008u)
167#define MCUXCLECC_WEIERECC_DECODEPOINT_WAPKC_SIZE_512 (1296u)
168#define MCUXCLECC_WEIERECC_DECODEPOINT_WAPKC_SIZE_640 (1584u)
169
170
174#define MCUXCLECC_WEIERECC_PRIVATEKEYVALIDATION_WAPKC_SIZE_128 (240u)
175#define MCUXCLECC_WEIERECC_PRIVATEKEYVALIDATION_WAPKC_SIZE_256 (400u)
176#define MCUXCLECC_WEIERECC_PRIVATEKEYVALIDATION_WAPKC_SIZE_384 (560u)
177#define MCUXCLECC_WEIERECC_PRIVATEKEYVALIDATION_WAPKC_SIZE_512 (720u)
178#define MCUXCLECC_WEIERECC_PRIVATEKEYVALIDATION_WAPKC_SIZE_640 (880u)
179
180#define MCUXCLECC_WEIERECC_PUBLICKEYVALIDATION_WAPKC_SIZE_128 (336u)
181#define MCUXCLECC_WEIERECC_PUBLICKEYVALIDATION_WAPKC_SIZE_256 (560u)
182#define MCUXCLECC_WEIERECC_PUBLICKEYVALIDATION_WAPKC_SIZE_384 (784u)
183#define MCUXCLECC_WEIERECC_PUBLICKEYVALIDATION_WAPKC_SIZE_512 (1008u)
184#define MCUXCLECC_WEIERECC_PUBLICKEYVALIDATION_WAPKC_SIZE_640 (1232u)
185 /* MCUXCLECC_WAPKC_ */
189
195
199#define MCUXCLECC_MONTDH_GENERATEKEYPAIR_CURVE25519_WAPKC_SIZE 880u
200#define MCUXCLECC_MONTDH_GENERATEKEYPAIR_CURVE448_WAPKC_SIZE 1408u
201
205#define MCUXCLECC_MONTDH_KEYAGREEMENT_CURVE25519_WAPKC_SIZE 880u
206#define MCUXCLECC_MONTDH_KEYAGREEMENT_CURVE448_WAPKC_SIZE 1408u
207 /* MCUXCLECC_MONTDH_WAPKC_ */
211
217
221#define MCUXCLECC_EDDSA_GENERATEKEYPAIR_ED25519_WAPKC_SIZE 1800u
222
226#define MCUXCLECC_EDDSA_GENERATESIGNATURE_ED25519_WAPKC_SIZE 1800u
227
231#define MCUXCLECC_EDDSA_VERIFYSIGNATURE_ED25519_WAPKC_SIZE 1800u
232 /* MCUXCLECC_EDDSA_WAPKC_ */
236
240#define MCUXCLECC_CUSTOMWEIERECCDOMAINPARAMS_SIZE(byteLenP, byteLenN) \
241 MCUXCLCORE_ALIGN_TO_CPU_WORDSIZE(64u \
242 + 8u * (byteLenP) \
243 + 2u * (byteLenN) )
244
250#define MCUXCLECC_EDDSA_GENERATEKEYPAIR_DESCRIPTOR_SIZE 20u /* MCUXCLECC_EDDSA_GENKEYPAIR_DESC_SIZE_ */
254
260#define MCUXCLECC_EDDSA_SIGNATURE_PROTOCOL_DESCRIPTOR_SIZE 20u
261
262#define MCUXCLECC_EDDSA_ED25519_SIZE_SIGNATURE_PROTOCOL_DESCRIPTOR(contextLen) \
263 (MCUXCLECC_EDDSA_SIGNATURE_PROTOCOL_DESCRIPTOR_SIZE + MCUXCLECC_EDDSA_SIZE_HASH_PREFIX(MCUXCLECC_EDDSA_ED25519_DOMPREFIXLEN, (contextLen)))
264
265 /* MCUXCLECC_EDDSA_SIGNATURE_PROTOCOL_DESC_SIZE_ */
269
275#define MCUXCLECC_EDDSA_SIGNATURE_MODE_SIZE (40u)
276
277#define MCUXCLECC_EDDSA_ED25519_SIZE_SIGNATURE_MODE_DESCRIPTOR(contextLen) \
278 (MCUXCLECC_EDDSA_SIGNATURE_MODE_SIZE + MCUXCLECC_EDDSA_SIZE_HASH_PREFIX(MCUXCLECC_EDDSA_ED25519_DOMPREFIXLEN, (contextLen)))
279
280
281 /* MCUXCLECC_EDDSA_SIGNATURE_MODE_SIZE_ */
285
286
287
288 /* mcuxClEcc_MemoryConsumption */
292
293#endif /* MCUXCLECC_MEMORYCONSUMPTION_H_ */
Definition of macros.