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 Confidential. 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 license */
10/* terms, then you may not retain, install, activate or otherwise use the */
11/* 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#endif /* defined(MCUXCL_FEATURE_CIPHER_RSA_ENCRYPT) || defined(MCUXCL_FEATURE_CIPHER_RSA_DECRYPT) */
25
26
27#ifdef MCUXCL_FEATURE_CIPHER_RSA_ENCRYPT
28/****************************************************************************/
29/* Definitions of workarea sizes for the RSA encryption. */
30/****************************************************************************/
31
38#define MCUXCLRSA_ENCRYPT_1024_WACPU_SIZE ($(mcuxClRsa_Util_Encrypt_1024_WaCPU)u)
39#define MCUXCLRSA_ENCRYPT_2048_WACPU_SIZE ($(mcuxClRsa_Util_Encrypt_2048_WaCPU)u)
40#define MCUXCLRSA_ENCRYPT_3072_WACPU_SIZE ($(mcuxClRsa_Util_Encrypt_3072_WaCPU)u)
41#define MCUXCLRSA_ENCRYPT_4096_WACPU_SIZE ($(mcuxClRsa_Util_Encrypt_4096_WaCPU)u)
42#define MCUXCLRSA_ENCRYPT_WACPU_SIZE(keyBitLength) \
43 ((3072u < (keyBitLength)) ? MCUXCLRSA_ENCRYPT_4096_WACPU_SIZE : \
44 ((2048u < (keyBitLength)) ? MCUXCLRSA_ENCRYPT_3072_WACPU_SIZE : \
45 ((1024u < (keyBitLength)) ? MCUXCLRSA_ENCRYPT_2048_WACPU_SIZE : \
46 MCUXCLRSA_ENCRYPT_1024_WACPU_SIZE)))
47
48#define MCUXCLRSA_ENCRYPT_1024_WAPKC_SIZE ($(mcuxClRsa_Util_Encrypt_1024_WaPKC)u)
49#define MCUXCLRSA_ENCRYPT_2048_WAPKC_SIZE ($(mcuxClRsa_Util_Encrypt_2048_WaPKC)u)
50#define MCUXCLRSA_ENCRYPT_3072_WAPKC_SIZE ($(mcuxClRsa_Util_Encrypt_3072_WaPKC)u)
51#define MCUXCLRSA_ENCRYPT_4096_WAPKC_SIZE ($(mcuxClRsa_Util_Encrypt_4096_WaPKC)u)
52#define MCUXCLRSA_ENCRYPT_WAPKC_SIZE(keyBitLength) \
53 ((3072u < (keyBitLength)) ? MCUXCLRSA_ENCRYPT_4096_WAPKC_SIZE : \
54 ((2048u < (keyBitLength)) ? MCUXCLRSA_ENCRYPT_3072_WAPKC_SIZE : \
55 ((1024u < (keyBitLength)) ? MCUXCLRSA_ENCRYPT_2048_WAPKC_SIZE : \
56 MCUXCLRSA_ENCRYPT_1024_WAPKC_SIZE)))
57
59#endif /* MCUXCL_FEATURE_CIPHER_RSA_ENCRYPT */
60#ifdef MCUXCL_FEATURE_CIPHER_RSA_DECRYPT
61/****************************************************************************/
62/* Definitions of workarea sizes for the RSA decryption. */
63/****************************************************************************/
64
71#define MCUXCLRSA_DECRYPT_1024_WACPU_SIZE ($(mcuxClRsa_Util_Decrypt_1024_WaCPU)u)
72#define MCUXCLRSA_DECRYPT_2048_WACPU_SIZE ($(mcuxClRsa_Util_Decrypt_2048_WaCPU)u)
73#define MCUXCLRSA_DECRYPT_3072_WACPU_SIZE ($(mcuxClRsa_Util_Decrypt_3072_WaCPU)u)
74#define MCUXCLRSA_DECRYPT_4096_WACPU_SIZE ($(mcuxClRsa_Util_Decrypt_4096_WaCPU)u)
75#define MCUXCLRSA_DECRYPT_WACPU_SIZE(keyBitLength) \
76 ((3072u < (keyBitLength)) ? MCUXCLRSA_DECRYPT_4096_WACPU_SIZE : \
77 ((2048u < (keyBitLength)) ? MCUXCLRSA_DECRYPT_3072_WACPU_SIZE : \
78 ((1024u < (keyBitLength)) ? MCUXCLRSA_DECRYPT_2048_WACPU_SIZE : \
79 MCUXCLRSA_DECRYPT_1024_WACPU_SIZE)))
80
81#define MCUXCLRSA_DECRYPT_1024_WAPKC_SIZE ($(mcuxClRsa_Util_Decrypt_1024_WaPKC)u)
82#define MCUXCLRSA_DECRYPT_2048_WAPKC_SIZE ($(mcuxClRsa_Util_Decrypt_2048_WaPKC)u)
83#define MCUXCLRSA_DECRYPT_3072_WAPKC_SIZE ($(mcuxClRsa_Util_Decrypt_3072_WaPKC)u)
84#define MCUXCLRSA_DECRYPT_4096_WAPKC_SIZE ($(mcuxClRsa_Util_Decrypt_4096_WaPKC)u)
85#define MCUXCLRSA_DECRYPT_WAPKC_SIZE(keyBitLength) \
86 ((3072u < (keyBitLength)) ? MCUXCLRSA_DECRYPT_4096_WAPKC_SIZE : \
87 ((2048u < (keyBitLength)) ? MCUXCLRSA_DECRYPT_3072_WAPKC_SIZE : \
88 ((1024u < (keyBitLength)) ? MCUXCLRSA_DECRYPT_2048_WAPKC_SIZE : \
89 MCUXCLRSA_DECRYPT_1024_WAPKC_SIZE)))
90
92#endif /* MCUXCL_FEATURE_CIPHER_RSA_DECRYPT */
93/****************************************************************************/
94/* Definitions of workarea sizes for the mcuxClRsa Sign */
95/****************************************************************************/
96
103#define MCUXCLRSA_SIGN_PLAIN_NOENCODE_1024_WACPU_SIZE (152u)
104#define MCUXCLRSA_SIGN_PLAIN_NOENCODE_2048_WACPU_SIZE (280u)
105#define MCUXCLRSA_SIGN_PLAIN_NOENCODE_3072_WACPU_SIZE (408u)
106#define MCUXCLRSA_SIGN_PLAIN_NOENCODE_4096_WACPU_SIZE (536u)
107
108#define MCUXCLRSA_SIGN_PLAIN_NOENCODE_WACPU_SIZE(keyBitLength) \
109 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_NOENCODE_4096_WACPU_SIZE : \
110 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_NOENCODE_3072_WACPU_SIZE : \
111 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_NOENCODE_2048_WACPU_SIZE : \
112 MCUXCLRSA_SIGN_PLAIN_NOENCODE_1024_WACPU_SIZE)))
113
114#define MCUXCLRSA_SIGN_PLAIN_PSSENCODE_1024_WACPU_SIZE (196u)
115#define MCUXCLRSA_SIGN_PLAIN_PSSENCODE_2048_WACPU_SIZE (280u)
116#define MCUXCLRSA_SIGN_PLAIN_PSSENCODE_3072_WACPU_SIZE (408u)
117#define MCUXCLRSA_SIGN_PLAIN_PSSENCODE_4096_WACPU_SIZE (536u)
118#define MCUXCLRSA_SIGN_PLAIN_PSSENCODE_WACPU_SIZE(keyBitLength) \
119 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PSSENCODE_4096_WACPU_SIZE : \
120 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PSSENCODE_3072_WACPU_SIZE : \
121 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PSSENCODE_2048_WACPU_SIZE : \
122 MCUXCLRSA_SIGN_PLAIN_PSSENCODE_1024_WACPU_SIZE)))
123
124#define MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_1024_WACPU_SIZE (196u)
125#define MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_2048_WACPU_SIZE (280u)
126#define MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_3072_WACPU_SIZE (408u)
127#define MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_4096_WACPU_SIZE (536u)
128#define MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_WACPU_SIZE(keyBitLength) \
129 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_4096_WACPU_SIZE : \
130 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_3072_WACPU_SIZE : \
131 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_2048_WACPU_SIZE : \
132 MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_1024_WACPU_SIZE)))
134#define MCUXCLRSA_SIGN_PLAIN_1024_WAPKC_SIZE (1064u)
135#define MCUXCLRSA_SIGN_PLAIN_2048_WAPKC_SIZE (1960u)
136#define MCUXCLRSA_SIGN_PLAIN_3072_WAPKC_SIZE (2856u)
137#define MCUXCLRSA_SIGN_PLAIN_4096_WAPKC_SIZE (3752u)
138#define MCUXCLRSA_SIGN_PLAIN_WAPKC_SIZE(keyBitLength) \
139 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_4096_WAPKC_SIZE : \
140 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_3072_WAPKC_SIZE : \
141 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_2048_WAPKC_SIZE : \
142 MCUXCLRSA_SIGN_PLAIN_1024_WAPKC_SIZE)))
143
144#define MCUXCLRSA_SIGN_CRT_NOENCODE_1024_WACPU_SIZE (104u)
145#define MCUXCLRSA_SIGN_CRT_NOENCODE_2048_WACPU_SIZE (168u)
146#define MCUXCLRSA_SIGN_CRT_NOENCODE_3072_WACPU_SIZE (232u)
147#define MCUXCLRSA_SIGN_CRT_NOENCODE_4096_WACPU_SIZE (296u)
149#define MCUXCLRSA_SIGN_CRT_NOENCODE_WACPU_SIZE(keyBitLength) \
150 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_NOENCODE_4096_WACPU_SIZE : \
151 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_NOENCODE_3072_WACPU_SIZE : \
152 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_NOENCODE_2048_WACPU_SIZE : \
153 MCUXCLRSA_SIGN_CRT_NOENCODE_1024_WACPU_SIZE)))
154
155#define MCUXCLRSA_SIGN_CRT_PSSENCODE_1024_WACPU_SIZE (196u)
156#define MCUXCLRSA_SIGN_CRT_PSSENCODE_2048_WACPU_SIZE (196u)
157#define MCUXCLRSA_SIGN_CRT_PSSENCODE_3072_WACPU_SIZE (232u)
158#define MCUXCLRSA_SIGN_CRT_PSSENCODE_4096_WACPU_SIZE (296u)
159#define MCUXCLRSA_SIGN_CRT_PSSENCODE_WACPU_SIZE(keyBitLength) \
160 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PSSENCODE_4096_WACPU_SIZE : \
161 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PSSENCODE_3072_WACPU_SIZE : \
162 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PSSENCODE_2048_WACPU_SIZE : \
163 MCUXCLRSA_SIGN_CRT_PSSENCODE_1024_WACPU_SIZE)))
164
165#define MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_1024_WACPU_SIZE (196u)
166#define MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_2048_WACPU_SIZE (196u)
167#define MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_3072_WACPU_SIZE (232u)
168#define MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_4096_WACPU_SIZE (296u)
169#define MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_WACPU_SIZE(keyBitLength) \
170 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_4096_WACPU_SIZE : \
171 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_3072_WACPU_SIZE : \
172 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_2048_WACPU_SIZE : \
173 MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_1024_WACPU_SIZE)))
174
175#define MCUXCLRSA_SIGN_CRT_1024_WAPKC_SIZE (1000u)
176#define MCUXCLRSA_SIGN_CRT_2048_WAPKC_SIZE (1896u)
177#define MCUXCLRSA_SIGN_CRT_3072_WAPKC_SIZE (2792u)
178#define MCUXCLRSA_SIGN_CRT_4096_WAPKC_SIZE (3688u)
179#define MCUXCLRSA_SIGN_CRT_WAPKC_SIZE(keyBitLength) \
180 ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_4096_WAPKC_SIZE : \
181 ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_3072_WAPKC_SIZE : \
182 ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_2048_WAPKC_SIZE : \
183 MCUXCLRSA_SIGN_CRT_1024_WAPKC_SIZE)))
184
187/****************************************************************************/
188/* Definitions of workarea sizes for the mcuxClRsa Verify */
189/****************************************************************************/
198#define MCUXCLRSA_VERIFY_NOVERIFY_WACPU_SIZE (20u)
199#define MCUXCLRSA_VERIFY_PSSVERIFY_WACPU_SIZE (196u)
200#define MCUXCLRSA_VERIFY_PKCS1V15VERIFY_WACPU_SIZE (196u)
202#define MCUXCLRSA_VERIFY_1024_WAPKC_SIZE (864u)
203#define MCUXCLRSA_VERIFY_2048_WAPKC_SIZE (1632u)
204#define MCUXCLRSA_VERIFY_3072_WAPKC_SIZE (2400u)
205#define MCUXCLRSA_VERIFY_4096_WAPKC_SIZE (3168u)
206#define MCUXCLRSA_VERIFY_WAPKC_SIZE(keyBitLength) \
207 ((3072u < (keyBitLength)) ? MCUXCLRSA_VERIFY_4096_WAPKC_SIZE : \
208 ((2048u < (keyBitLength)) ? MCUXCLRSA_VERIFY_3072_WAPKC_SIZE : \
209 ((1024u < (keyBitLength)) ? MCUXCLRSA_VERIFY_2048_WAPKC_SIZE : \
210 MCUXCLRSA_VERIFY_1024_WAPKC_SIZE)))
211
212
213
217/**********************************************************************************/
218/* Definitions of workarea sizes for the mcuxClRsa_KeyGeneration_Crt function. */
219/**********************************************************************************/
226#define MCUXCLRSA_KEYGENERATION_CRT_2048_WACPU_SIZE (632u)
227#define MCUXCLRSA_KEYGENERATION_CRT_3072_WACPU_SIZE (760u)
228#define MCUXCLRSA_KEYGENERATION_CRT_4096_WACPU_SIZE (888u)
229#define MCUXCLRSA_KEYGENERATION_CRT_WACPU_SIZE(keyBitLength) \
230 ((3072u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_CRT_4096_WACPU_SIZE : \
231 ((2048u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_CRT_3072_WACPU_SIZE : \
232 MCUXCLRSA_KEYGENERATION_CRT_2048_WACPU_SIZE))
233
234#define MCUXCLRSA_KEYGENERATION_CRT_2048_WAPKC_SIZE (1864u)
235#define MCUXCLRSA_KEYGENERATION_CRT_3072_WAPKC_SIZE (2696u)
236#define MCUXCLRSA_KEYGENERATION_CRT_4096_WAPKC_SIZE (3528u)
237#define MCUXCLRSA_KEYGENERATION_CRT_WAPKC_SIZE(keyBitLength) \
238 ((3072u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_CRT_4096_WAPKC_SIZE : \
239 ((2048u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_CRT_3072_WAPKC_SIZE : \
240 MCUXCLRSA_KEYGENERATION_CRT_2048_WAPKC_SIZE))
241
244/********************************************************************************/
245/* Definitions of workarea sizes for the mcuxClRsa_KeyGeneration_Plain function. */
246/********************************************************************************/
253#define MCUXCLRSA_KEYGENERATION_PLAIN_2048_WACPU_SIZE (620u)
254#define MCUXCLRSA_KEYGENERATION_PLAIN_3072_WACPU_SIZE (748u)
255#define MCUXCLRSA_KEYGENERATION_PLAIN_4096_WACPU_SIZE (876u)
256#define MCUXCLRSA_KEYGENERATION_PLAIN_WACPU_SIZE(keyBitLength) \
257 ((3072u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_PLAIN_4096_WACPU_SIZE : \
258 ((2048u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_PLAIN_3072_WACPU_SIZE : \
259 MCUXCLRSA_KEYGENERATION_PLAIN_2048_WACPU_SIZE))
260
261#define MCUXCLRSA_KEYGENERATION_PLAIN_2048_WAPKC_SIZE (1992u)
262#define MCUXCLRSA_KEYGENERATION_PLAIN_3072_WAPKC_SIZE (2888u)
263#define MCUXCLRSA_KEYGENERATION_PLAIN_4096_WAPKC_SIZE (3784u)
264#define MCUXCLRSA_KEYGENERATION_PLAIN_WAPKC_SIZE(keyBitLength) \
265 ((3072u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_PLAIN_4096_WAPKC_SIZE : \
266 ((2048u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_PLAIN_3072_WAPKC_SIZE : \
267 MCUXCLRSA_KEYGENERATION_PLAIN_2048_WAPKC_SIZE))
268
271/*************************************************************************************************************************/
272/* Definitions of generated key data size for the mcuxClRsa_KeyGeneration_Crt and mcuxClRsa_KeyGeneration_Plain functions. */
273/*************************************************************************************************************************/
280#define MCUXCLRSA_KEYGENERATION_PLAIN_KEY_DATA_2048_SIZE (556u)
281#define MCUXCLRSA_KEYGENERATION_PLAIN_KEY_DATA_3072_SIZE (812u)
282#define MCUXCLRSA_KEYGENERATION_PLAIN_KEY_DATA_4096_SIZE (1068u)
283
284#define MCUXCLRSA_KEYGENERATION_CRT_KEY_DATA_2048_SIZE (708u)
285#define MCUXCLRSA_KEYGENERATION_CRT_KEY_DATA_3072_SIZE (1028u)
286#define MCUXCLRSA_KEYGENERATION_CRT_KEY_DATA_4096_SIZE (1348u)
287
288#define MCUXCLRSA_KEYGENERATION_PUBLIC_KEY_DATA_2048_SIZE (556u)
289#define MCUXCLRSA_KEYGENERATION_PUBLIC_KEY_DATA_3072_SIZE (812u)
290#define MCUXCLRSA_KEYGENERATION_PUBLIC_KEY_DATA_4096_SIZE (1068u)
291
295#endif /* MCUXCLRSA_MEMORYCONSUMPTION_H_ */