MCUX CLNS
MCUX Crypto Library Normal Secure
 
Loading...
Searching...
No Matches
mcuxClRsa_MemoryConsumption.h
Go to the documentation of this file.
1/*--------------------------------------------------------------------------*/
2/* Copyright 2020-2023 NXP */
3/* */
4/* NXP Proprietary. This software is owned or controlled by NXP and may */
5/* only be used strictly in accordance with the applicable license terms. */
6/* By expressly accepting such terms or by downloading, installing, */
7/* activating and/or otherwise using the software, you are agreeing that */
8/* you have read, and that you agree to comply with and are bound by, such */
9/* license terms. If you do not agree to be bound by the applicable */
10/* license terms, then you may not retain, install, activate or otherwise */
11/* use the software. */
12/*--------------------------------------------------------------------------*/
13
19#ifndef MCUXCLRSA_MEMORYCONSUMPTION_H_
20#define MCUXCLRSA_MEMORYCONSUMPTION_H_
21
22#if defined(MCUXCL_FEATURE_CIPHER_RSA_ENCRYPT) || defined(MCUXCL_FEATURE_CIPHER_RSA_DECRYPT)
23#define MCUXCLRSA_CIPHER_MODE_SIZE ($(mcuxClRsa_Cipher_AlgorithmMode_Descriptors_Size)u)
24#define MCUXCLRSA_CIPHER_MODE_SIZE_IN_WORD MCUXCLCORE_NUM_OF_CPUWORDS_CEIL(MCUXCLRSA_CIPHER_MODE_SIZE)
25#endif /* defined(MCUXCL_FEATURE_CIPHER_RSA_ENCRYPT) || defined(MCUXCL_FEATURE_CIPHER_RSA_DECRYPT) */
26
27
28#ifdef MCUXCL_FEATURE_CIPHER_RSA_ENCRYPT
29/****************************************************************************/
30/* Definitions of workarea sizes for the RSA encryption. */
31/****************************************************************************/
32
39#define MCUXCLRSA_ENCRYPT_1024_WACPU_SIZE ($(mcuxClRsa_Util_Encrypt_1024_WaCPU)u)
40#define MCUXCLRSA_ENCRYPT_2048_WACPU_SIZE ($(mcuxClRsa_Util_Encrypt_2048_WaCPU)u)
41#define MCUXCLRSA_ENCRYPT_3072_WACPU_SIZE ($(mcuxClRsa_Util_Encrypt_3072_WaCPU)u)
42#define MCUXCLRSA_ENCRYPT_4096_WACPU_SIZE ($(mcuxClRsa_Util_Encrypt_4096_WaCPU)u)
43#define MCUXCLRSA_ENCRYPT_WACPU_SIZE(keyBitLength) \
44 ((3072u < (keyBitLength)) ? MCUXCLRSA_ENCRYPT_4096_WACPU_SIZE : \
45 ((2048u < (keyBitLength)) ? MCUXCLRSA_ENCRYPT_3072_WACPU_SIZE : \
46 ((1024u < (keyBitLength)) ? MCUXCLRSA_ENCRYPT_2048_WACPU_SIZE : \
47 MCUXCLRSA_ENCRYPT_1024_WACPU_SIZE)))
48
49#define MCUXCLRSA_ENCRYPT_1024_WAPKC_SIZE ($(mcuxClRsa_Util_Encrypt_1024_WaPKC)u)
50#define MCUXCLRSA_ENCRYPT_2048_WAPKC_SIZE ($(mcuxClRsa_Util_Encrypt_2048_WaPKC)u)
51#define MCUXCLRSA_ENCRYPT_3072_WAPKC_SIZE ($(mcuxClRsa_Util_Encrypt_3072_WaPKC)u)
52#define MCUXCLRSA_ENCRYPT_4096_WAPKC_SIZE ($(mcuxClRsa_Util_Encrypt_4096_WaPKC)u)
53#define MCUXCLRSA_ENCRYPT_WAPKC_SIZE(keyBitLength) \
54 ((3072u < (keyBitLength)) ? MCUXCLRSA_ENCRYPT_4096_WAPKC_SIZE : \
55 ((2048u < (keyBitLength)) ? MCUXCLRSA_ENCRYPT_3072_WAPKC_SIZE : \
56 ((1024u < (keyBitLength)) ? MCUXCLRSA_ENCRYPT_2048_WAPKC_SIZE : \
57 MCUXCLRSA_ENCRYPT_1024_WAPKC_SIZE)))
58
60#endif /* MCUXCL_FEATURE_CIPHER_RSA_ENCRYPT */
61#ifdef MCUXCL_FEATURE_CIPHER_RSA_DECRYPT
62/****************************************************************************/
63/* Definitions of workarea sizes for the RSA decryption. */
64/****************************************************************************/
65
72#define MCUXCLRSA_DECRYPT_1024_WACPU_SIZE ($(mcuxClRsa_Util_Decrypt_1024_WaCPU)u)
73#define MCUXCLRSA_DECRYPT_2048_WACPU_SIZE ($(mcuxClRsa_Util_Decrypt_2048_WaCPU)u)
74#define MCUXCLRSA_DECRYPT_3072_WACPU_SIZE ($(mcuxClRsa_Util_Decrypt_3072_WaCPU)u)
75#define MCUXCLRSA_DECRYPT_4096_WACPU_SIZE ($(mcuxClRsa_Util_Decrypt_4096_WaCPU)u)
76#define MCUXCLRSA_DECRYPT_WACPU_SIZE(keyBitLength) \
77 ((3072u < (keyBitLength)) ? MCUXCLRSA_DECRYPT_4096_WACPU_SIZE : \
78 ((2048u < (keyBitLength)) ? MCUXCLRSA_DECRYPT_3072_WACPU_SIZE : \
79 ((1024u < (keyBitLength)) ? MCUXCLRSA_DECRYPT_2048_WACPU_SIZE : \
80 MCUXCLRSA_DECRYPT_1024_WACPU_SIZE)))
81
82#define MCUXCLRSA_DECRYPT_1024_WAPKC_SIZE ($(mcuxClRsa_Util_Decrypt_1024_WaPKC)u)
83#define MCUXCLRSA_DECRYPT_2048_WAPKC_SIZE ($(mcuxClRsa_Util_Decrypt_2048_WaPKC)u)
84#define MCUXCLRSA_DECRYPT_3072_WAPKC_SIZE ($(mcuxClRsa_Util_Decrypt_3072_WaPKC)u)
85#define MCUXCLRSA_DECRYPT_4096_WAPKC_SIZE ($(mcuxClRsa_Util_Decrypt_4096_WaPKC)u)
86#define MCUXCLRSA_DECRYPT_WAPKC_SIZE(keyBitLength) \
87 ((3072u < (keyBitLength)) ? MCUXCLRSA_DECRYPT_4096_WAPKC_SIZE : \
88 ((2048u < (keyBitLength)) ? MCUXCLRSA_DECRYPT_3072_WAPKC_SIZE : \
89 ((1024u < (keyBitLength)) ? MCUXCLRSA_DECRYPT_2048_WAPKC_SIZE : \
90 MCUXCLRSA_DECRYPT_1024_WAPKC_SIZE)))
91
93#endif /* MCUXCL_FEATURE_CIPHER_RSA_DECRYPT */
94/****************************************************************************/
95/* Definitions of workarea sizes for the mcuxClRsa Sign */
96/****************************************************************************/
97
104#define MCUXCLRSA_SIGN_PLAIN_NOENCODE_1024_WACPU_SIZE (152u)
105#define MCUXCLRSA_SIGN_PLAIN_NOENCODE_2048_WACPU_SIZE (280u)
106#define MCUXCLRSA_SIGN_PLAIN_NOENCODE_3072_WACPU_SIZE (408u)
107#define MCUXCLRSA_SIGN_PLAIN_NOENCODE_4096_WACPU_SIZE (536u)
108
109#define MCUXCLRSA_SIGN_PLAIN_NOENCODE_WACPU_SIZE(keyBitLength) \
110 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_NOENCODE_4096_WACPU_SIZE : \
111 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_NOENCODE_3072_WACPU_SIZE : \
112 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_NOENCODE_2048_WACPU_SIZE : \
113 MCUXCLRSA_SIGN_PLAIN_NOENCODE_1024_WACPU_SIZE)))
114
115#define MCUXCLRSA_SIGN_PLAIN_PSSENCODE_1024_WACPU_SIZE (196u)
116#define MCUXCLRSA_SIGN_PLAIN_PSSENCODE_2048_WACPU_SIZE (280u)
117#define MCUXCLRSA_SIGN_PLAIN_PSSENCODE_3072_WACPU_SIZE (408u)
118#define MCUXCLRSA_SIGN_PLAIN_PSSENCODE_4096_WACPU_SIZE (536u)
119#define MCUXCLRSA_SIGN_PLAIN_PSSENCODE_WACPU_SIZE(keyBitLength) \
120 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PSSENCODE_4096_WACPU_SIZE : \
121 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PSSENCODE_3072_WACPU_SIZE : \
122 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PSSENCODE_2048_WACPU_SIZE : \
123 MCUXCLRSA_SIGN_PLAIN_PSSENCODE_1024_WACPU_SIZE)))
124
125#define MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_1024_WACPU_SIZE (196u)
126#define MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_2048_WACPU_SIZE (280u)
127#define MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_3072_WACPU_SIZE (408u)
128#define MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_4096_WACPU_SIZE (536u)
129#define MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_WACPU_SIZE(keyBitLength) \
130 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_4096_WACPU_SIZE : \
131 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_3072_WACPU_SIZE : \
132 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_2048_WACPU_SIZE : \
133 MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_1024_WACPU_SIZE)))
135#define MCUXCLRSA_SIGN_PLAIN_1024_WAPKC_SIZE (1064u)
136#define MCUXCLRSA_SIGN_PLAIN_2048_WAPKC_SIZE (1960u)
137#define MCUXCLRSA_SIGN_PLAIN_3072_WAPKC_SIZE (2856u)
138#define MCUXCLRSA_SIGN_PLAIN_4096_WAPKC_SIZE (3752u)
139#define MCUXCLRSA_SIGN_PLAIN_WAPKC_SIZE(keyBitLength) \
140 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_4096_WAPKC_SIZE : \
141 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_3072_WAPKC_SIZE : \
142 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_2048_WAPKC_SIZE : \
143 MCUXCLRSA_SIGN_PLAIN_1024_WAPKC_SIZE)))
144
145#define MCUXCLRSA_SIGN_CRT_NOENCODE_1024_WACPU_SIZE (104u)
146#define MCUXCLRSA_SIGN_CRT_NOENCODE_2048_WACPU_SIZE (168u)
147#define MCUXCLRSA_SIGN_CRT_NOENCODE_3072_WACPU_SIZE (232u)
148#define MCUXCLRSA_SIGN_CRT_NOENCODE_4096_WACPU_SIZE (296u)
150#define MCUXCLRSA_SIGN_CRT_NOENCODE_WACPU_SIZE(keyBitLength) \
151 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_NOENCODE_4096_WACPU_SIZE : \
152 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_NOENCODE_3072_WACPU_SIZE : \
153 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_NOENCODE_2048_WACPU_SIZE : \
154 MCUXCLRSA_SIGN_CRT_NOENCODE_1024_WACPU_SIZE)))
155
156#define MCUXCLRSA_SIGN_CRT_PSSENCODE_1024_WACPU_SIZE (196u)
157#define MCUXCLRSA_SIGN_CRT_PSSENCODE_2048_WACPU_SIZE (196u)
158#define MCUXCLRSA_SIGN_CRT_PSSENCODE_3072_WACPU_SIZE (232u)
159#define MCUXCLRSA_SIGN_CRT_PSSENCODE_4096_WACPU_SIZE (296u)
160#define MCUXCLRSA_SIGN_CRT_PSSENCODE_WACPU_SIZE(keyBitLength) \
161 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PSSENCODE_4096_WACPU_SIZE : \
162 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PSSENCODE_3072_WACPU_SIZE : \
163 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PSSENCODE_2048_WACPU_SIZE : \
164 MCUXCLRSA_SIGN_CRT_PSSENCODE_1024_WACPU_SIZE)))
165
166#define MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_1024_WACPU_SIZE (196u)
167#define MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_2048_WACPU_SIZE (196u)
168#define MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_3072_WACPU_SIZE (232u)
169#define MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_4096_WACPU_SIZE (296u)
170#define MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_WACPU_SIZE(keyBitLength) \
171 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_4096_WACPU_SIZE : \
172 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_3072_WACPU_SIZE : \
173 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_2048_WACPU_SIZE : \
174 MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_1024_WACPU_SIZE)))
175
176#define MCUXCLRSA_SIGN_CRT_1024_WAPKC_SIZE (1000u)
177#define MCUXCLRSA_SIGN_CRT_2048_WAPKC_SIZE (1896u)
178#define MCUXCLRSA_SIGN_CRT_3072_WAPKC_SIZE (2792u)
179#define MCUXCLRSA_SIGN_CRT_4096_WAPKC_SIZE (3688u)
180#define MCUXCLRSA_SIGN_CRT_WAPKC_SIZE(keyBitLength) \
181 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_4096_WAPKC_SIZE : \
182 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_3072_WAPKC_SIZE : \
183 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_2048_WAPKC_SIZE : \
184 MCUXCLRSA_SIGN_CRT_1024_WAPKC_SIZE)))
185
188/****************************************************************************/
189/* Definitions of workarea sizes for the mcuxClRsa Verify */
190/****************************************************************************/
199#define MCUXCLRSA_VERIFY_NOVERIFY_WACPU_SIZE (20u)
200#define MCUXCLRSA_VERIFY_PSSVERIFY_WACPU_SIZE (196u)
201#define MCUXCLRSA_VERIFY_PKCS1V15VERIFY_WACPU_SIZE (196u)
203#define MCUXCLRSA_VERIFY_1024_WAPKC_SIZE (864u)
204#define MCUXCLRSA_VERIFY_2048_WAPKC_SIZE (1632u)
205#define MCUXCLRSA_VERIFY_3072_WAPKC_SIZE (2400u)
206#define MCUXCLRSA_VERIFY_4096_WAPKC_SIZE (3168u)
207#define MCUXCLRSA_VERIFY_WAPKC_SIZE(keyBitLength) \
208 ((3072u < (keyBitLength)) ? MCUXCLRSA_VERIFY_4096_WAPKC_SIZE : \
209 ((2048u < (keyBitLength)) ? MCUXCLRSA_VERIFY_3072_WAPKC_SIZE : \
210 ((1024u < (keyBitLength)) ? MCUXCLRSA_VERIFY_2048_WAPKC_SIZE : \
211 MCUXCLRSA_VERIFY_1024_WAPKC_SIZE)))
212
213
214
218/**********************************************************************************/
219/* Definitions of workarea sizes for the mcuxClRsa_KeyGeneration_Crt function. */
220/**********************************************************************************/
227#define MCUXCLRSA_KEYGENERATION_CRT_2048_WACPU_SIZE (632u)
228#define MCUXCLRSA_KEYGENERATION_CRT_3072_WACPU_SIZE (760u)
229#define MCUXCLRSA_KEYGENERATION_CRT_4096_WACPU_SIZE (888u)
230#define MCUXCLRSA_KEYGENERATION_CRT_WACPU_SIZE(keyBitLength) \
231 ((3072u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_CRT_4096_WACPU_SIZE : \
232 ((2048u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_CRT_3072_WACPU_SIZE : \
233 MCUXCLRSA_KEYGENERATION_CRT_2048_WACPU_SIZE))
234
235#define MCUXCLRSA_KEYGENERATION_CRT_2048_WAPKC_SIZE (1864u)
236#define MCUXCLRSA_KEYGENERATION_CRT_3072_WAPKC_SIZE (2696u)
237#define MCUXCLRSA_KEYGENERATION_CRT_4096_WAPKC_SIZE (3528u)
238#define MCUXCLRSA_KEYGENERATION_CRT_WAPKC_SIZE(keyBitLength) \
239 ((3072u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_CRT_4096_WAPKC_SIZE : \
240 ((2048u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_CRT_3072_WAPKC_SIZE : \
241 MCUXCLRSA_KEYGENERATION_CRT_2048_WAPKC_SIZE))
242
245/********************************************************************************/
246/* Definitions of workarea sizes for the mcuxClRsa_KeyGeneration_Plain function. */
247/********************************************************************************/
254#define MCUXCLRSA_KEYGENERATION_PLAIN_2048_WACPU_SIZE (620u)
255#define MCUXCLRSA_KEYGENERATION_PLAIN_3072_WACPU_SIZE (748u)
256#define MCUXCLRSA_KEYGENERATION_PLAIN_4096_WACPU_SIZE (876u)
257#define MCUXCLRSA_KEYGENERATION_PLAIN_WACPU_SIZE(keyBitLength) \
258 ((3072u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_PLAIN_4096_WACPU_SIZE : \
259 ((2048u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_PLAIN_3072_WACPU_SIZE : \
260 MCUXCLRSA_KEYGENERATION_PLAIN_2048_WACPU_SIZE))
261
262#define MCUXCLRSA_KEYGENERATION_PLAIN_2048_WAPKC_SIZE (1992u)
263#define MCUXCLRSA_KEYGENERATION_PLAIN_3072_WAPKC_SIZE (2888u)
264#define MCUXCLRSA_KEYGENERATION_PLAIN_4096_WAPKC_SIZE (3784u)
265#define MCUXCLRSA_KEYGENERATION_PLAIN_WAPKC_SIZE(keyBitLength) \
266 ((3072u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_PLAIN_4096_WAPKC_SIZE : \
267 ((2048u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_PLAIN_3072_WAPKC_SIZE : \
268 MCUXCLRSA_KEYGENERATION_PLAIN_2048_WAPKC_SIZE))
269
272/*************************************************************************************************************************/
273/* Definitions of generated key data size for the mcuxClRsa_KeyGeneration_Crt and mcuxClRsa_KeyGeneration_Plain functions. */
274/*************************************************************************************************************************/
281#define MCUXCLRSA_KEYGENERATION_PLAIN_KEY_DATA_2048_SIZE (556u)
282#define MCUXCLRSA_KEYGENERATION_PLAIN_KEY_DATA_3072_SIZE (812u)
283#define MCUXCLRSA_KEYGENERATION_PLAIN_KEY_DATA_4096_SIZE (1068u)
284
285#define MCUXCLRSA_KEYGENERATION_CRT_KEY_DATA_2048_SIZE (708u)
286#define MCUXCLRSA_KEYGENERATION_CRT_KEY_DATA_3072_SIZE (1028u)
287#define MCUXCLRSA_KEYGENERATION_CRT_KEY_DATA_4096_SIZE (1348u)
288
289#define MCUXCLRSA_KEYGENERATION_PUBLIC_KEY_DATA_2048_SIZE (556u)
290#define MCUXCLRSA_KEYGENERATION_PUBLIC_KEY_DATA_3072_SIZE (812u)
291#define MCUXCLRSA_KEYGENERATION_PUBLIC_KEY_DATA_4096_SIZE (1068u)
292
296#endif /* MCUXCLRSA_MEMORYCONSUMPTION_H_ */