MCUX CLNS
MCUX Crypto Library Normal Secure
mcuxClEcc_MemoryConsumption.h
Go to the documentation of this file.
1 /*--------------------------------------------------------------------------*/
2 /* Copyright 2021 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_KEYGEN_WACPU_SIZE 0u
37 #define MCUXCLECC_SIGN_WACPU_SIZE 0u
38 #define MCUXCLECC_VERIFY_WACPU_SIZE 0u
39 #define MCUXCLECC_POINTMULT_WACPU_SIZE 0u
40  /* MCUXCLECC_WACPU_ */
43 #ifdef MCUXCL_FEATURE_ECC_MONTGOMERY_DH
44 
49 #define MCUXCLECC_MONT_DHKEYGENERATION_WACPU_SIZE 100u
50 #define MCUXCLECC_MONT_DHKEYAGREEMENT_WACPU_SIZE 100u
51  /* MCUXCLECC_MONT_WACPU_ */
54 #endif
55 
65 #define MCUXCLECC_PKC_WORDSIZE 8u
66 
70 #define MCUXCLECC_MAX(value0, value1) (((value0) > (value1)) ? (value0) : (value1))
71 
75 #define MCUXCLECC_ALIGN_SIZE_PKC(size) ((((size) + MCUXCLECC_PKC_WORDSIZE - 1u) / MCUXCLECC_PKC_WORDSIZE) * MCUXCLECC_PKC_WORDSIZE)
76 
80 #define MCUXCLECC_KEYGEN_WAPKC_SIZE(pByteLen,nByteLen) \
81  (24u * (MCUXCLECC_ALIGN_SIZE_PKC(MCUXCLECC_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
82 
86 #define MCUXCLECC_SIGN_WAPKC_SIZE(pByteLen,nByteLen) \
87  (24u * (MCUXCLECC_ALIGN_SIZE_PKC(MCUXCLECC_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
88 
92 #define MCUXCLECC_VERIFY_WAPKC_SIZE(pByteLen,nByteLen) \
93  (28u * (MCUXCLECC_ALIGN_SIZE_PKC(MCUXCLECC_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
94 
98 #define MCUXCLECC_POINTMULT_WAPKC_SIZE(pByteLen,nByteLen) \
99  (24u * (MCUXCLECC_ALIGN_SIZE_PKC(MCUXCLECC_MAX(pByteLen,nByteLen)) + MCUXCLECC_PKC_WORDSIZE))
100  /* MCUXCLECC_WAPKC_ */
104 
105 #ifdef MCUXCL_FEATURE_ECC_MONTGOMERY_DH
106 
116 #define MCUXCLECC_MONT_DHKEYGENERATION_CURVE25519_WAPKC_SIZE \
117  (1000u)
118 
122 #define MCUXCLECC_MONT_DHKEYAGREEMENT_CURVE25519_WAPKC_SIZE \
123  (1000u)
124  /* MCUXCLECC_WAPKC_ */
128 
129 #endif
130  /* mcuxClEcc_MemoryConsumption */
133 
134 
135 #endif /* MCUXCLECC_MEMORYCONSUMPTION_H_ */