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 
20 #ifndef MCUXCLECC_MEMORYCONSUMPTION_H_
21 #define MCUXCLECC_MEMORYCONSUMPTION_H_
22 
23 
36 #define MCUXCLECC_ALIGN_SIZE_CPU(byteLen) ((((byteLen) + (sizeof(uint32_t)) - 1u) / (sizeof(uint32_t))) * (sizeof(uint32_t)))
37 
38 #ifdef MCUXCL_FEATURE_ELS_ACCESS_PKCRAM_WORKAROUND
39 #define MCUXCLECC_KEYGEN_WACPU_SIZE(byteLenN) (96u + MCUXCLECC_ALIGN_SIZE_CPU(byteLenN + 8u))
40 #define MCUXCLECC_SIGN_WACPU_SIZE(byteLenN) (96u + MCUXCLECC_ALIGN_SIZE_CPU(byteLenN + 8u))
41 #else /* ! MCUXCL_FEATURE_ELS_ACCESS_PKCRAM_WORKAROUND */
42 #define MCUXCLECC_KEYGEN_WACPU_SIZE(byteLenN) 96u
43 #define MCUXCLECC_SIGN_WACPU_SIZE(byteLenN) 96u
44 #endif /* MCUXCL_FEATURE_ELS_ACCESS_PKCRAM_WORKAROUND */
45 
46 #define MCUXCLECC_VERIFY_WACPU_SIZE 104u
47 #define MCUXCLECC_POINTMULT_WACPU_SIZE 96u
48 #define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WACPU_SIZE 88u
49 
50  /* MCUXCLECC_WACPU_ */
54 
60 #define MCUXCLECC_MONT_DHKEYGENERATION_CURVE25519_WACPU_SIZE 92u
61 #define MCUXCLECC_MONT_DHKEYGENERATION_CURVE448_WACPU_SIZE 92u
62 
63 #define MCUXCLECC_MONT_DHKEYAGREEMENT_CURVE25519_WACPU_SIZE 88u
64 #define MCUXCLECC_MONT_DHKEYAGREEMENT_CURVE448_WACPU_SIZE 88u
65  /* MCUXCLECC_MONTDH_WACPU_ */
68 
74 #define MCUXCLECC_EDDSA_GENERATEKEYPAIR_ED25519_WACPU_SIZE 360u
75 #define MCUXCLECC_EDDSA_GENERATEKEYPAIR_ED448_WACPU_SIZE 196u
76 
77 #define MCUXCLECC_EDDSA_GENERATESIGNATURE_ED25519_WACPU_SIZE 548u
78 #define MCUXCLECC_EDDSA_GENERATESIGNATURE_ED448_WACPU_SIZE 356u
79 
80 #define MCUXCLECC_EDDSA_VERIFYSIGNATURE_ED25519_WACPU_SIZE 548u
81 #define MCUXCLECC_EDDSA_VERIFYSIGNATURE_ED448_WACPU_SIZE 356u
82 
83  /* MCUXCLECC_EDDSA_WACPU_ */
86 
87 
97 #define MCUXCLECC_PKC_WORDSIZE 8u
98 
102 #define MCUXCLECC_MAX(value0, value1) (((value0) > (value1)) ? (value0) : (value1))
103 
107 #define MCUXCLECC_ALIGN_SIZE_PKC(size) ((((size) + MCUXCLECC_PKC_WORDSIZE - 1u) / MCUXCLECC_PKC_WORDSIZE) * MCUXCLECC_PKC_WORDSIZE)
108 
112 #define MCUXCLECC_KEYGEN_WAPKC_SIZE(pByteLen,nByteLen) \
113  (24u * (MCUXCLECC_ALIGN_SIZE_PKC(MCUXCLECC_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
114 
115 
119 #define MCUXCLECC_SIGN_WAPKC_SIZE(pByteLen,nByteLen) \
120  (24u * (MCUXCLECC_ALIGN_SIZE_PKC(MCUXCLECC_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
121 
122 
127 #define MCUXCLECC_VERIFY_WAPKC_SIZE(pByteLen,nByteLen) \
128  (28u * (MCUXCLECC_ALIGN_SIZE_PKC(MCUXCLECC_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
129 
130 
134 #define MCUXCLECC_POINTMULT_WAPKC_SIZE(pByteLen,nByteLen) \
135  (24u * (MCUXCLECC_ALIGN_SIZE_PKC(MCUXCLECC_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
136 
137 
141 #define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE(pByteLen,nByteLen) \
142  (24u * (MCUXCLECC_ALIGN_SIZE_PKC(MCUXCLECC_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
143 
144 #define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_128 (528u )
145 #define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_256 (880u )
146 #define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_384 (1232u )
147 #define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_512 (1584u )
148 #define MCUXCLECC_WEIERECC_GENERATEDOMAINPARAMS_WAPKC_SIZE_640 (1936u )
149 
150 
151 
152  /* MCUXCLECC_WAPKC_ */
156 
157 
167 #define MCUXCLECC_MONT_DHKEYGENERATION_CURVE25519_WAPKC_SIZE 880u
168 
172 #define MCUXCLECC_MONT_DHKEYAGREEMENT_CURVE25519_WAPKC_SIZE 880u
173 
177 #define MCUXCLECC_MONT_DHKEYGENERATION_CURVE448_WAPKC_SIZE 1408u
178 
182 #define MCUXCLECC_MONT_DHKEYAGREEMENT_CURVE448_WAPKC_SIZE 1408u
183  /* MCUXCLECC_MONTDH_WAPKC_ */
187 
197 #define MCUXCLECC_EDDSA_GENERATEKEYPAIR_ED25519_WAPKC_SIZE 1760u
198 #define MCUXCLECC_EDDSA_GENERATEKEYPAIR_ED448_WAPKC_SIZE 2816u
199 
200 
203 #define MCUXCLECC_EDDSA_GENERATESIGNATURE_ED25519_WAPKC_SIZE 1760u
204 #define MCUXCLECC_EDDSA_GENERATESIGNATURE_ED448_WAPKC_SIZE 2816u
205 
206 
209 #define MCUXCLECC_EDDSA_VERIFYSIGNATURE_ED25519_WAPKC_SIZE 1760u
210 #define MCUXCLECC_EDDSA_VERIFYSIGNATURE_ED448_WAPKC_SIZE 2816u
211 
212  /* MCUXCLECC_EDDSA_WAPKC_ */
215 
219 #define MCUXCLECC_CUSTOMWEIERECCDOMAINPARAMS_SIZE(byteLenP, byteLenN) \
220  MCUXCLECC_ALIGN_SIZE_CPU(76u \
221  + 8u * (byteLenP) \
222  + 2u * (byteLenN) )
223 
229 #define MCUXCLECC_EDDSA_GENERATEKEYPAIR_DESCRIPTOR_SIZE 8u
230  /* MCUXCLECC_EDDSA_GENKEYPAIR_DESC_SIZE_ */
233 
239 #define MCUXCLECC_EDDSA_SIGNATURE_PROTOCOL_DESCRIPTOR_SIZE 20u
240  /* MCUXCLECC_EDDSA_SIGNATURE_PROTOCOL_DESC_SIZE_ */
243 
244 
245  /* mcuxClEcc_MemoryConsumption */
249 
250 #endif /* MCUXCLECC_MEMORYCONSUMPTION_H_ */