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