MCUX CLNS
MCUX Crypto Library Normal Secure
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 
23 
26 /****************************************************************************/
27 /* Definitions of workarea sizes for the mcuxClRsa Sign */
28 /****************************************************************************/
29 
36 #define MCUXCLRSA_SIGN_PLAIN_NOENCODE_1024_WACPU_SIZE (152u)
37 #define MCUXCLRSA_SIGN_PLAIN_NOENCODE_2048_WACPU_SIZE (280u)
38 #define MCUXCLRSA_SIGN_PLAIN_NOENCODE_3072_WACPU_SIZE (408u)
39 #define MCUXCLRSA_SIGN_PLAIN_NOENCODE_4096_WACPU_SIZE (536u)
40 
41 #define MCUXCLRSA_SIGN_PLAIN_NOENCODE_WACPU_SIZE(keyBitLength) \
42  ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_NOENCODE_4096_WACPU_SIZE : \
43  ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_NOENCODE_3072_WACPU_SIZE : \
44  ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_NOENCODE_2048_WACPU_SIZE : \
45  MCUXCLRSA_SIGN_PLAIN_NOENCODE_1024_WACPU_SIZE)))
46 
47 #define MCUXCLRSA_SIGN_PLAIN_PSSENCODE_1024_WACPU_SIZE (196u)
48 #define MCUXCLRSA_SIGN_PLAIN_PSSENCODE_2048_WACPU_SIZE (280u)
49 #define MCUXCLRSA_SIGN_PLAIN_PSSENCODE_3072_WACPU_SIZE (408u)
50 #define MCUXCLRSA_SIGN_PLAIN_PSSENCODE_4096_WACPU_SIZE (536u)
51 #define MCUXCLRSA_SIGN_PLAIN_PSSENCODE_WACPU_SIZE(keyBitLength) \
52  ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PSSENCODE_4096_WACPU_SIZE : \
53  ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PSSENCODE_3072_WACPU_SIZE : \
54  ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PSSENCODE_2048_WACPU_SIZE : \
55  MCUXCLRSA_SIGN_PLAIN_PSSENCODE_1024_WACPU_SIZE)))
56 
57 #define MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_1024_WACPU_SIZE (196u)
58 #define MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_2048_WACPU_SIZE (280u)
59 #define MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_3072_WACPU_SIZE (408u)
60 #define MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_4096_WACPU_SIZE (536u)
61 #define MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_WACPU_SIZE(keyBitLength) \
62  ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_4096_WACPU_SIZE : \
63  ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_3072_WACPU_SIZE : \
64  ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_2048_WACPU_SIZE : \
65  MCUXCLRSA_SIGN_PLAIN_PKCS1V15ENCODE_1024_WACPU_SIZE)))
66 
67 #define MCUXCLRSA_SIGN_PLAIN_1024_WAPKC_SIZE (1064u)
68 #define MCUXCLRSA_SIGN_PLAIN_2048_WAPKC_SIZE (1960u)
69 #define MCUXCLRSA_SIGN_PLAIN_3072_WAPKC_SIZE (2856u)
70 #define MCUXCLRSA_SIGN_PLAIN_4096_WAPKC_SIZE (3752u)
71 #define MCUXCLRSA_SIGN_PLAIN_WAPKC_SIZE(keyBitLength) \
72  ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_4096_WAPKC_SIZE : \
73  ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_3072_WAPKC_SIZE : \
74  ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_PLAIN_2048_WAPKC_SIZE : \
75  MCUXCLRSA_SIGN_PLAIN_1024_WAPKC_SIZE)))
76 
77 #define MCUXCLRSA_SIGN_CRT_NOENCODE_1024_WACPU_SIZE (104u)
78 #define MCUXCLRSA_SIGN_CRT_NOENCODE_2048_WACPU_SIZE (168u)
79 #define MCUXCLRSA_SIGN_CRT_NOENCODE_3072_WACPU_SIZE (232u)
80 #define MCUXCLRSA_SIGN_CRT_NOENCODE_4096_WACPU_SIZE (296u)
81 
82 #define MCUXCLRSA_SIGN_CRT_NOENCODE_WACPU_SIZE(keyBitLength) \
83  ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_NOENCODE_4096_WACPU_SIZE : \
84  ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_NOENCODE_3072_WACPU_SIZE : \
85  ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_NOENCODE_2048_WACPU_SIZE : \
86  MCUXCLRSA_SIGN_CRT_NOENCODE_1024_WACPU_SIZE)))
87 
88 #define MCUXCLRSA_SIGN_CRT_PSSENCODE_1024_WACPU_SIZE (196u)
89 #define MCUXCLRSA_SIGN_CRT_PSSENCODE_2048_WACPU_SIZE (196u)
90 #define MCUXCLRSA_SIGN_CRT_PSSENCODE_3072_WACPU_SIZE (232u)
91 #define MCUXCLRSA_SIGN_CRT_PSSENCODE_4096_WACPU_SIZE (296u)
92 #define MCUXCLRSA_SIGN_CRT_PSSENCODE_WACPU_SIZE(keyBitLength) \
93  ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PSSENCODE_4096_WACPU_SIZE : \
94  ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PSSENCODE_3072_WACPU_SIZE : \
95  ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PSSENCODE_2048_WACPU_SIZE : \
96  MCUXCLRSA_SIGN_CRT_PSSENCODE_1024_WACPU_SIZE)))
97 
98 
99 #define MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_1024_WACPU_SIZE (196u)
100 #define MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_2048_WACPU_SIZE (196u)
101 #define MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_3072_WACPU_SIZE (232u)
102 #define MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_4096_WACPU_SIZE (296u)
103 #define MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_WACPU_SIZE(keyBitLength) \
104  ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_4096_WACPU_SIZE : \
105  ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_3072_WACPU_SIZE : \
106  ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_2048_WACPU_SIZE : \
107  MCUXCLRSA_SIGN_CRT_PKCS1V15ENCODE_1024_WACPU_SIZE)))
110 #define MCUXCLRSA_SIGN_CRT_1024_WAPKC_SIZE (968u)
111 #define MCUXCLRSA_SIGN_CRT_2048_WAPKC_SIZE (1864u)
112 #define MCUXCLRSA_SIGN_CRT_3072_WAPKC_SIZE (2760u)
113 #define MCUXCLRSA_SIGN_CRT_4096_WAPKC_SIZE (3656u)
114 #define MCUXCLRSA_SIGN_CRT_WAPKC_SIZE(keyBitLength) \
115  ((3072u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_4096_WAPKC_SIZE : \
116  ((2048u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_3072_WAPKC_SIZE : \
117  ((1024u < (keyBitLength)) ? MCUXCLRSA_SIGN_CRT_2048_WAPKC_SIZE : \
118  MCUXCLRSA_SIGN_CRT_1024_WAPKC_SIZE)))
119 
120 
123 /****************************************************************************/
124 /* Definitions of workarea sizes for the mcuxClRsa Verify */
125 /****************************************************************************/
132 #define MCUXCLRSA_VERIFY_NOVERIFY_WACPU_SIZE (16u)
133 #define MCUXCLRSA_VERIFY_PSSVERIFY_WACPU_SIZE (196u)
134 #define MCUXCLRSA_VERIFY_PKCS1V15VERIFY_WACPU_SIZE (196u)
135 
136 #define MCUXCLRSA_VERIFY_1024_WAPKC_SIZE (800u)
137 #define MCUXCLRSA_VERIFY_2048_WAPKC_SIZE (1568u)
138 #define MCUXCLRSA_VERIFY_3072_WAPKC_SIZE (2336u)
139 #define MCUXCLRSA_VERIFY_4096_WAPKC_SIZE (3104u)
140 #define MCUXCLRSA_VERIFY_WAPKC_SIZE(keyBitLength) \
141  ((3072u < (keyBitLength)) ? MCUXCLRSA_VERIFY_4096_WAPKC_SIZE : \
142  ((2048u < (keyBitLength)) ? MCUXCLRSA_VERIFY_3072_WAPKC_SIZE : \
143  ((1024u < (keyBitLength)) ? MCUXCLRSA_VERIFY_2048_WAPKC_SIZE : \
144  MCUXCLRSA_VERIFY_1024_WAPKC_SIZE)))
145 
146 
147 
151 /**********************************************************************************/
152 /* Definitions of workarea sizes for the mcuxClRsa_KeyGeneration_Crt function. */
153 /**********************************************************************************/
160 #define MCUXCLRSA_KEYGENERATION_CRT_2048_WACPU_SIZE (56u)
161 #define MCUXCLRSA_KEYGENERATION_CRT_3072_WACPU_SIZE (56u)
162 #define MCUXCLRSA_KEYGENERATION_CRT_4096_WACPU_SIZE (56u)
163 #define MCUXCLRSA_KEYGENERATION_CRT_WACPU_SIZE(keyBitLength) \
164  ((3072u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_CRT_4096_WACPU_SIZE : \
165  ((2048u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_CRT_3072_WACPU_SIZE : \
166  MCUXCLRSA_KEYGENERATION_CRT_2048_WACPU_SIZE))
167 
168 #define MCUXCLRSA_KEYGENERATION_CRT_2048_WAPKC_SIZE (1656u)
169 #define MCUXCLRSA_KEYGENERATION_CRT_3072_WAPKC_SIZE (2424u)
170 #define MCUXCLRSA_KEYGENERATION_CRT_4096_WAPKC_SIZE (3192u)
171 #define MCUXCLRSA_KEYGENERATION_CRT_WAPKC_SIZE(keyBitLength) \
172  ((3072u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_CRT_4096_WAPKC_SIZE : \
173  ((2048u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_CRT_3072_WAPKC_SIZE : \
174  MCUXCLRSA_KEYGENERATION_CRT_2048_WAPKC_SIZE))
175 
176 
178 /********************************************************************************/
179 /* Definitions of workarea sizes for the mcuxClRsa_KeyGeneration_Plain function. */
180 /********************************************************************************/
187 #define MCUXCLRSA_KEYGENERATION_PLAIN_2048_WACPU_SIZE (44u)
188 #define MCUXCLRSA_KEYGENERATION_PLAIN_3072_WACPU_SIZE (44u)
189 #define MCUXCLRSA_KEYGENERATION_PLAIN_4096_WACPU_SIZE (44u)
190 #define MCUXCLRSA_KEYGENERATION_PLAIN_WACPU_SIZE(keyBitLength) \
191  ((3072u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_PLAIN_4096_WACPU_SIZE : \
192  ((2048u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_PLAIN_3072_WACPU_SIZE : \
193  MCUXCLRSA_KEYGENERATION_PLAIN_2048_WACPU_SIZE))
194 
195 #define MCUXCLRSA_KEYGENERATION_PLAIN_2048_WAPKC_SIZE (1832u)
196 #define MCUXCLRSA_KEYGENERATION_PLAIN_3072_WAPKC_SIZE (2728u)
197 #define MCUXCLRSA_KEYGENERATION_PLAIN_4096_WAPKC_SIZE (3624u)
198 #define MCUXCLRSA_KEYGENERATION_PLAIN_WAPKC_SIZE(keyBitLength) \
199  ((3072u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_PLAIN_4096_WAPKC_SIZE : \
200  ((2048u < (keyBitLength)) ? MCUXCLRSA_KEYGENERATION_PLAIN_3072_WAPKC_SIZE : \
201  MCUXCLRSA_KEYGENERATION_PLAIN_2048_WAPKC_SIZE))
202 
203 
205 /*************************************************************************************************************************/
206 /* Definitions of generated key data size for the mcuxClRsa_KeyGeneration_Crt and mcuxClRsa_KeyGeneration_Plain functions. */
207 /*************************************************************************************************************************/
214 #define MCUXCLRSA_KEYGENERATION_PLAIN_KEY_DATA_2048_SIZE (556u)
215 #define MCUXCLRSA_KEYGENERATION_PLAIN_KEY_DATA_3072_SIZE (812u)
216 #define MCUXCLRSA_KEYGENERATION_PLAIN_KEY_DATA_4096_SIZE (1068u)
217 
218 #define MCUXCLRSA_KEYGENERATION_CRT_KEY_DATA_2048_SIZE (708u)
219 #define MCUXCLRSA_KEYGENERATION_CRT_KEY_DATA_3072_SIZE (1028u)
220 #define MCUXCLRSA_KEYGENERATION_CRT_KEY_DATA_4096_SIZE (1348u)
221 
222 #define MCUXCLRSA_KEYGENERATION_PUBLIC_KEY_DATA_2048_SIZE (556u)
223 #define MCUXCLRSA_KEYGENERATION_PUBLIC_KEY_DATA_3072_SIZE (812u)
224 #define MCUXCLRSA_KEYGENERATION_PUBLIC_KEY_DATA_4096_SIZE (1068u)
225 
226 
229 #endif /* MCUXCLRSA_MEMORYCONSUMPTION_H_ */