MCUX CLNS
MCUX Crypto Library Normal Secure
mcuxClEcc_MemoryConsumption.h
Go to the documentation of this file.
1 /*--------------------------------------------------------------------------*/
2 /* Copyright 2021-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 MCUXCLECC_MEMORYCONSUMPTION_H_
20 #define MCUXCLECC_MEMORYCONSUMPTION_H_
21 
22 
35 #define MCUXCLECC_ALIGN_SIZE_CPU(byteLen) ((((byteLen) + (sizeof(uint32_t)) - 1u) / (sizeof(uint32_t))) * (sizeof(uint32_t)))
36 
37 #ifdef MCUXCL_FEATURE_ELS_ACCESS_PKCRAM_WORKAROUND
38 #define MCUXCLECC_KEYGEN_WACPU_SIZE(byteLenN) (96u + MCUXCLECC_ALIGN_SIZE_CPU(byteLenN + 8u))
39 #define MCUXCLECC_SIGN_WACPU_SIZE(byteLenN) (96u + MCUXCLECC_ALIGN_SIZE_CPU(byteLenN + 8u))
40 #else /* ! MCUXCL_FEATURE_ELS_ACCESS_PKCRAM_WORKAROUND */
41 #define MCUXCLECC_KEYGEN_WACPU_SIZE(byteLenN) 96u
42 #define MCUXCLECC_SIGN_WACPU_SIZE(byteLenN) 96u
43 #endif /* MCUXCL_FEATURE_ELS_ACCESS_PKCRAM_WORKAROUND */
44 
45 #define MCUXCLECC_VERIFY_WACPU_SIZE 104u
46 #define MCUXCLECC_POINTMULT_WACPU_SIZE 96u
47 #define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WACPU_SIZE 88u
48 
49  /* MCUXCLECC_WACPU_ */
53 
59 #define MCUXCLECC_MONT_DHKEYGENERATION_CURVE25519_WACPU_SIZE 92u
60 #define MCUXCLECC_MONT_DHKEYGENERATION_CURVE448_WACPU_SIZE 92u
61 
62 #define MCUXCLECC_MONT_DHKEYAGREEMENT_CURVE25519_WACPU_SIZE 88u
63 #define MCUXCLECC_MONT_DHKEYAGREEMENT_CURVE448_WACPU_SIZE 88u
64  /* MCUXCLECC_MONTDH_WACPU_ */
67 
73 #define MCUXCLECC_EDDSA_GENERATEKEYPAIR_ED25519_WACPU_SIZE 360u
74 #define MCUXCLECC_EDDSA_GENERATEKEYPAIR_ED448_WACPU_SIZE 196u
75 
76 #define MCUXCLECC_EDDSA_GENERATESIGNATURE_ED25519_WACPU_SIZE 540u
77 #define MCUXCLECC_EDDSA_GENERATESIGNATURE_ED448_WACPU_SIZE 132u
78 
79 #define MCUXCLECC_EDDSA_VERIFYSIGNATURE_ED25519_WACPU_SIZE 540u
80 #define MCUXCLECC_EDDSA_VERIFYSIGNATURE_ED448_WACPU_SIZE 132u
81 
82  /* MCUXCLECC_EDDSA_WACPU_ */
85 
86 
96 #define MCUXCLECC_PKC_WORDSIZE 8u
97 
101 #define MCUXCLECC_MAX(value0, value1) (((value0) > (value1)) ? (value0) : (value1))
102 
106 #define MCUXCLECC_ALIGN_SIZE_PKC(size) ((((size) + MCUXCLECC_PKC_WORDSIZE - 1u) / MCUXCLECC_PKC_WORDSIZE) * MCUXCLECC_PKC_WORDSIZE)
107 
111 #define MCUXCLECC_KEYGEN_WAPKC_SIZE(pByteLen,nByteLen) \
112  (24u * (MCUXCLECC_ALIGN_SIZE_PKC(MCUXCLECC_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
113 
114 
118 #define MCUXCLECC_SIGN_WAPKC_SIZE(pByteLen,nByteLen) \
119  (24u * (MCUXCLECC_ALIGN_SIZE_PKC(MCUXCLECC_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
120 
121 
126 #define MCUXCLECC_VERIFY_WAPKC_SIZE(pByteLen,nByteLen) \
127  (28u * (MCUXCLECC_ALIGN_SIZE_PKC(MCUXCLECC_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
128 
129 
133 #define MCUXCLECC_POINTMULT_WAPKC_SIZE(pByteLen,nByteLen) \
134  (24u * (MCUXCLECC_ALIGN_SIZE_PKC(MCUXCLECC_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
135 
136 
140 #define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE(pByteLen,nByteLen) \
141  (24u * (MCUXCLECC_ALIGN_SIZE_PKC(MCUXCLECC_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
142 
143 #define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_128 (528u )
144 #define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_256 (880u )
145 #define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_384 (1232u )
146 #define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_512 (1584u )
147 #define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_640 (1936u )
148 
149 
150 
151  /* MCUXCLECC_WAPKC_ */
155 
156 
166 #define MCUXCLECC_MONT_DHKEYGENERATION_CURVE25519_WAPKC_SIZE 880u
167 
171 #define MCUXCLECC_MONT_DHKEYAGREEMENT_CURVE25519_WAPKC_SIZE 880u
172 
176 #define MCUXCLECC_MONT_DHKEYGENERATION_CURVE448_WAPKC_SIZE 1408u
177 
181 #define MCUXCLECC_MONT_DHKEYAGREEMENT_CURVE448_WAPKC_SIZE 1408u
182  /* MCUXCLECC_MONTDH_WAPKC_ */
186 
196 #define MCUXCLECC_EDDSA_GENERATEKEYPAIR_ED25519_WAPKC_SIZE 1760u
197 #define MCUXCLECC_EDDSA_GENERATEKEYPAIR_ED448_WAPKC_SIZE 2816u
198 
199 
202 #define MCUXCLECC_EDDSA_GENERATESIGNATURE_ED25519_WAPKC_SIZE 1760u
203 #define MCUXCLECC_EDDSA_GENERATESIGNATURE_ED448_WAPKC_SIZE 2816u
204 
205 
208 #define MCUXCLECC_EDDSA_VERIFYSIGNATURE_ED25519_WAPKC_SIZE 1760u
209 #define MCUXCLECC_EDDSA_VERIFYSIGNATURE_ED448_WAPKC_SIZE 2816u
210 
211  /* MCUXCLECC_EDDSA_WAPKC_ */
214 
218 #define MCUXCLECC_CUSTOMWEIERECCDOMAINPARAMS_SIZE(byteLenP, byteLenN) \
219  MCUXCLECC_ALIGN_SIZE_CPU(76u \
220  + 8u * (byteLenP) \
221  + 2u * (byteLenN) )
222 
228 #define MCUXCLECC_EDDSA_GENERATEKEYPAIR_DESCRIPTOR_SIZE 8u
229  /* MCUXCLECC_EDDSA_GENKEYPAIR_DESC_SIZE_ */
232 
238 #define MCUXCLECC_EDDSA_SIGNATURE_PROTOCOL_DESCRIPTOR_SIZE 20u
239  /* MCUXCLECC_EDDSA_SIGNATURE_PROTOCOL_DESC_SIZE_ */
242 
243 
244  /* mcuxClEcc_MemoryConsumption */
248 
249 #endif /* MCUXCLECC_MEMORYCONSUMPTION_H_ */