MCUX CLNS
MCUX Crypto Library Normal Secure
mcuxClKey_Constants.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 MCUXCLKEY_CONSTANTS_H_
20 #define MCUXCLKEY_CONSTANTS_H_
21 
22 #include <mcuxCsslAnalysis.h>
23 #include <mcuxClConfig.h> // Exported features flags header
24 
25 /**********************************************
26  * CONSTANTS
27  **********************************************/
39 #define MCUXCLKEY_STATUS_OK ((mcuxClKey_Status_t) 0x07772E03u)
40 #define MCUXCLKEY_STATUS_ERROR ((mcuxClKey_Status_t) 0x07775330u)
41 #define MCUXCLKEY_STATUS_FAILURE ((mcuxClKey_Status_t) 0x07775334u)
42 #define MCUXCLKEY_STATUS_INVALID_INPUT ((mcuxClKey_Status_t) 0x07775338u)
43 #define MCUXCLKEY_STATUS_FAULT_ATTACK ((mcuxClKey_Status_t) 0x0777F0F0u)
44 #define MCUXCLKEY_STATUS_CRC_NOT_OK ((mcuxClKey_Status_t) 0x077753FCu)
45 #define MCUXCLKEY_STATUS_NOT_SUPPORTED ((mcuxClKey_Status_t) 0x07775370u)
46 
53 #define MCUXCLKEY_LOADSTATUS_NOTLOADED 0x0000u
54 #define MCUXCLKEY_LOADSTATUS_MEMORY 0x0001u
55 #define MCUXCLKEY_LOADSTATUS_COPRO 0x0002u
56 #define MCUXCLKEY_LOADSTATUS_KEEPLOADED 0x8000u
57 
60 /* Define algorithm IDs */
61 
67 #define MCUXCLKEY_ALGO_ID_AES 0x0F01u
68 #define MCUXCLKEY_ALGO_ID_RSA 0x0E02u
69 #define MCUXCLKEY_ALGO_ID_ECC_SHWS_GFP 0x0D03u
70 #define MCUXCLKEY_ALGO_ID_ECC_SHWS_GF2M 0x0C04u
71 #define MCUXCLKEY_ALGO_ID_ECC_MONTDH 0x0B05u
72 #define MCUXCLKEY_ALGO_ID_ECC_EDDSA 0x0A06u
73 #define MCUXCLKEY_ALGO_ID_HMAC 0x0907u
74 #define MCUXCLKEY_ALGO_ID_SM4 0x0808u
75 #define MCUXCLKEY_ALGO_ID_SM2 0x0809u
76 #define MCUXCLKEY_ALGO_ID_ECC_SHWS_GFP_EPHEMERAL_CUSTOM 0x0709u
77 #define MCUXCLKEY_ALGO_ID_ECC_SHWS_GFP_STATIC_CUSTOM 0x060Au
78 #define MCUXCLKEY_ALGO_ID_ALGO_MASK 0x0FFFu
79 
80 #define MCUXCLKEY_ALGO_ID_SYMMETRIC_KEY 0x0000u
81 #define MCUXCLKEY_ALGO_ID_PUBLIC_KEY 0x8000u
82 #define MCUXCLKEY_ALGO_ID_PRIVATE_KEY 0x4000u
83 #define MCUXCLKEY_ALGO_ID_PRIVATE_KEY_CRT 0x6000u
84 #define MCUXCLKEY_ALGO_ID_KEY_PAIR 0xC000u
85 #define MCUXCLKEY_ALGO_ID_PRIVATE_KEY_CRT_DFA 0xE000u
86 
87 #define MCUXCLKEY_ALGO_ID_USAGE_MASK 0xF000u
88 
90 /* Define key sizes */
91 
97 #define MCUXCLKEY_SIZE_NOTUSED 0u
98 #define MCUXCLKEY_SIZE_128 16u
99 #define MCUXCLKEY_SIZE_160 20u
100 #define MCUXCLKEY_SIZE_192 24u
101 #define MCUXCLKEY_SIZE_224 28u
102 #define MCUXCLKEY_SIZE_256 32u
103 #define MCUXCLKEY_SIZE_320 40u
104 #define MCUXCLKEY_SIZE_384 48u
105 #define MCUXCLKEY_SIZE_512 64u
106 #define MCUXCLKEY_SIZE_521 66u
107 #define MCUXCLKEY_SIZE_1024 1024u
108 #define MCUXCLKEY_SIZE_2048 2048u
109 #define MCUXCLKEY_SIZE_3072 3072u
110 #define MCUXCLKEY_SIZE_4096 4096u
111 #define MCUXCLKEY_SIZE_6144 6144u
112 #define MCUXCLKEY_SIZE_8192 8192u
113 
114 // TODO CLNS-6135: replace these divides by a macro that ensures rounding up
115 #define MCUXCLKEY_SIZE_128_IN_WORDS (MCUXCLKEY_SIZE_128 / sizeof(uint32_t))
116 #define MCUXCLKEY_SIZE_160_IN_WORDS (MCUXCLKEY_SIZE_160 / sizeof(uint32_t))
117 #define MCUXCLKEY_SIZE_192_IN_WORDS (MCUXCLKEY_SIZE_192 / sizeof(uint32_t))
118 #define MCUXCLKEY_SIZE_224_IN_WORDS (MCUXCLKEY_SIZE_224 / sizeof(uint32_t))
119 #define MCUXCLKEY_SIZE_256_IN_WORDS (MCUXCLKEY_SIZE_256 / sizeof(uint32_t))
120 #define MCUXCLKEY_SIZE_320_IN_WORDS (MCUXCLKEY_SIZE_320 / sizeof(uint32_t))
121 #define MCUXCLKEY_SIZE_384_IN_WORDS (MCUXCLKEY_SIZE_384 / sizeof(uint32_t))
122 #define MCUXCLKEY_SIZE_512_IN_WORDS (MCUXCLKEY_SIZE_512 / sizeof(uint32_t))
123 #define MCUXCLKEY_SIZE_521_IN_WORDS ((MCUXCLKEY_SIZE_521 + sizeof(uint32_t) - 1u) / sizeof(uint32_t))
124 #define MCUXCLKEY_SIZE_1024_IN_WORDS (MCUXCLKEY_SIZE_1024 / (sizeof(uint32_t) * 8u))
125 #define MCUXCLKEY_SIZE_2048_IN_WORDS (MCUXCLKEY_SIZE_2048 / (sizeof(uint32_t) * 8u))
126 #define MCUXCLKEY_SIZE_3072_IN_WORDS (MCUXCLKEY_SIZE_3072 / (sizeof(uint32_t) * 8u))
127 #define MCUXCLKEY_SIZE_4096_IN_WORDS (MCUXCLKEY_SIZE_4096 / (sizeof(uint32_t) * 8u))
128 #define MCUXCLKEY_SIZE_6144_IN_WORDS (MCUXCLKEY_SIZE_6144 / (sizeof(uint32_t) * 8u))
129 #define MCUXCLKEY_SIZE_8192_IN_WORDS (MCUXCLKEY_SIZE_8192 / (sizeof(uint32_t) * 8u))
130 
138 #define MCUXCLKEY_WA_SIZE_MAX 0U
139 
144 #define MCUXCLKEY_INVALID_KEYSLOT 0xFFu
145 
146 #endif /* MCUXCLKEY_CONSTANTS_H_ */