MCUX CLNS
MCUX Crypto Library Normal Secure
Loading...
Searching...
No Matches
mcuxClKey_Constants.h
Go to the documentation of this file.
1
/*--------------------------------------------------------------------------*/
2
/* Copyright 2021-2026 NXP */
3
/* */
4
/* SPDX-License-Identifier: BSD-3-Clause */
5
/* */
6
/* Redistribution and use in source and binary forms, with or without */
7
/* modification, are permitted provided that the following conditions are */
8
/* met: */
9
/* */
10
/* 1. Redistributions of source code must retain the above copyright */
11
/* notice, this list of conditions and the following disclaimer. */
12
/* */
13
/* 2. Redistributions in binary form must reproduce the above copyright */
14
/* notice, this list of conditions and the following disclaimer in the */
15
/* documentation and/or other materials provided with the distribution. */
16
/* */
17
/* 3. Neither the name of the copyright holder nor the names of its */
18
/* contributors may be used to endorse or promote products derived from */
19
/* this software without specific prior written permission. */
20
/* */
21
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS */
22
/* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED */
23
/* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A */
24
/* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */
25
/* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
26
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */
27
/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR */
28
/* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
29
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
30
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */
31
/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
32
/*--------------------------------------------------------------------------*/
33
38
39
#ifndef MCUXCLKEY_CONSTANTS_H_
40
#define MCUXCLKEY_CONSTANTS_H_
41
42
#include <mcuxCsslAnalysis.h>
43
#include <mcuxClConfig.h>
// Exported features flags header
44
#include <platform_specific_headers.h>
45
46
/**********************************************
47
* CONSTANTS
48
**********************************************/
60
#define MCUXCLKEY_STATUS_OK ((mcuxClKey_Status_t) 0x07772E03u)
61
#define MCUXCLKEY_STATUS_ERROR ((mcuxClKey_Status_t) 0x07775330u)
62
#define MCUXCLKEY_STATUS_FAILURE ((mcuxClKey_Status_t) 0x07775334u)
63
#define MCUXCLKEY_STATUS_INVALID_INPUT ((mcuxClKey_Status_t) 0x07775338u)
64
#define MCUXCLKEY_STATUS_KEYSLOT_ERROR ((mcuxClKey_Status_t) 0x0777533Cu)
65
#define MCUXCLKEY_STATUS_FAULT_ATTACK ((mcuxClKey_Status_t) 0x0777F0F0u)
66
#define MCUXCLKEY_STATUS_CRC_NOT_OK ((mcuxClKey_Status_t) 0x077753FCu)
67
#define MCUXCLKEY_STATUS_ITERATIONS_EXCEEDED ((mcuxClKey_Status_t) 0x07775378u)
68
#define MCUXCLKEY_STATUS_VALIDATION_PASSED ((mcuxClKey_Status_t) 0x07772E07u)
69
#define MCUXCLKEY_STATUS_VALIDATION_FAILED ((mcuxClKey_Status_t) 0x07778930u)
71
77
#define MCUXCLKEY_LOADSTATUS_NOTLOADED (0x0000U)
78
#define MCUXCLKEY_LOADSTATUS_NOTLOADED_SLOTDEFINED (0x0001U)
79
80
#define MCUXCLKEY_LOADSTATUS_LOCATION_MASK (0x000EU)
81
#define MCUXCLKEY_LOADSTATUS_LOCATION_NONE (0x0000U)
82
#define MCUXCLKEY_LOADSTATUS_LOCATION_COPRO (0x0002U)
83
84
#define MCUXCLKEY_LOADSTATUS_OPTIONS_MASK (0xFFF0U)
85
#define MCUXCLKEY_LOADSTATUS_OPTIONS_KEEPLOADED (0x0010U)
86
#define MCUXCLKEY_LOADSTATUS_OPTIONS_WRITEONLY (0x0020U)
88
89
90
/* Define algorithm IDs */
97
#define MCUXCLKEY_ALGO_ID_DES (0x0030D000u)
98
#define MCUXCLKEY_ALGO_ID_AES (0x00F01000u)
99
#define MCUXCLKEY_ALGO_ID_RSA (0x00E02000u)
100
#define MCUXCLKEY_ALGO_ID_ECC_SHWS_GFP (0x00D03000u)
101
#define MCUXCLKEY_ALGO_ID_ECC_SHWS_GF2M (0x00C04000u)
102
#define MCUXCLKEY_ALGO_ID_ECC_MONTDH (0x00B05000u)
103
#define MCUXCLKEY_ALGO_ID_ECC_EDDSA (0x00A06000u)
104
#define MCUXCLKEY_ALGO_ID_HMAC (0x00907000u)
105
#define MCUXCLKEY_ALGO_ID_SM4 (0x00808000u)
106
#define MCUXCLKEY_ALGO_ID_SM2 (0x00809000u)
107
#define MCUXCLKEY_ALGO_ID_ECC_SHWS_GFP_EPHEMERAL_CUSTOM (0x00709000u)
108
#define MCUXCLKEY_ALGO_ID_ECC_SHWS_GFP_STATIC_CUSTOM (0x0060A000u)
109
#define MCUXCLKEY_ALGO_ID_MLKEM (0x0050B000u)
110
#define MCUXCLKEY_ALGO_ID_MLDSA (0x0040C000u)
111
#define MCUXCLKEY_ALGO_ID_GMAC (0x00601000u)
112
#define MCUXCLKEY_ALGO_ID_FFDH (0x0020E000u)
113
#define MCUXCLKEY_ALGO_ID_ALGO_MASK (0x00FFF000u)
114
115
#define MCUXCLKEY_ALGO_ID_SYMMETRIC_KEY (0x00000000u)
116
#define MCUXCLKEY_ALGO_ID_PUBLIC_KEY (0x88000000u)
117
#define MCUXCLKEY_ALGO_ID_PRIVATE_KEY (0x44000000u)
118
#define MCUXCLKEY_ALGO_ID_PRIVATE_KEY_CRT (0x66000000u)
119
#define MCUXCLKEY_ALGO_ID_KEY_PAIR (0xCC000000u)
120
#define MCUXCLKEY_ALGO_ID_PRIVATE_KEY_CRT_DFA (0xEE000000u)
121
122
#define MCUXCLKEY_ALGO_ID_USAGE_MASK (0xFF000000u)
124
125
/* Define key sizes */
132
#define MCUXCLKEY_SIZE_NOTUSED 0u
133
#define MCUXCLKEY_SIZE_64 8u
134
#define MCUXCLKEY_SIZE_128 16u
135
#define MCUXCLKEY_SIZE_160 20u
136
#define MCUXCLKEY_SIZE_192 24u
137
#define MCUXCLKEY_SIZE_224 28u
138
#define MCUXCLKEY_SIZE_256 32u
139
#define MCUXCLKEY_SIZE_320 40u
140
#define MCUXCLKEY_SIZE_384 48u
141
#define MCUXCLKEY_SIZE_512 64u
142
#define MCUXCLKEY_SIZE_521 66u
143
#define MCUXCLKEY_SIZE_1024 1024u
144
#define MCUXCLKEY_SIZE_2048 2048u
145
#define MCUXCLKEY_SIZE_3072 3072u
146
#define MCUXCLKEY_SIZE_4096 4096u
147
#define MCUXCLKEY_SIZE_6144 6144u
148
#define MCUXCLKEY_SIZE_8192 8192u
149
150
// TODO CLNS-6135: replace these divides by a macro that ensures rounding up
151
#define MCUXCLKEY_SIZE_64_IN_WORDS (MCUXCLKEY_SIZE_64 / sizeof(uint32_t))
152
#define MCUXCLKEY_SIZE_128_IN_WORDS (MCUXCLKEY_SIZE_128 / sizeof(uint32_t))
153
#define MCUXCLKEY_SIZE_160_IN_WORDS (MCUXCLKEY_SIZE_160 / sizeof(uint32_t))
154
#define MCUXCLKEY_SIZE_192_IN_WORDS (MCUXCLKEY_SIZE_192 / sizeof(uint32_t))
155
#define MCUXCLKEY_SIZE_224_IN_WORDS (MCUXCLKEY_SIZE_224 / sizeof(uint32_t))
156
#define MCUXCLKEY_SIZE_256_IN_WORDS (MCUXCLKEY_SIZE_256 / sizeof(uint32_t))
157
#define MCUXCLKEY_SIZE_320_IN_WORDS (MCUXCLKEY_SIZE_320 / sizeof(uint32_t))
158
#define MCUXCLKEY_SIZE_384_IN_WORDS (MCUXCLKEY_SIZE_384 / sizeof(uint32_t))
159
#define MCUXCLKEY_SIZE_512_IN_WORDS (MCUXCLKEY_SIZE_512 / sizeof(uint32_t))
160
#define MCUXCLKEY_SIZE_521_IN_WORDS ((MCUXCLKEY_SIZE_521 + sizeof(uint32_t) - 1u) / sizeof(uint32_t))
161
#define MCUXCLKEY_SIZE_1024_IN_WORDS (MCUXCLKEY_SIZE_1024 / (sizeof(uint32_t) * 8u))
162
#define MCUXCLKEY_SIZE_2048_IN_WORDS (MCUXCLKEY_SIZE_2048 / (sizeof(uint32_t) * 8u))
163
#define MCUXCLKEY_SIZE_3072_IN_WORDS (MCUXCLKEY_SIZE_3072 / (sizeof(uint32_t) * 8u))
164
#define MCUXCLKEY_SIZE_4096_IN_WORDS (MCUXCLKEY_SIZE_4096 / (sizeof(uint32_t) * 8u))
165
#define MCUXCLKEY_SIZE_6144_IN_WORDS (MCUXCLKEY_SIZE_6144 / (sizeof(uint32_t) * 8u))
166
#define MCUXCLKEY_SIZE_8192_IN_WORDS (MCUXCLKEY_SIZE_8192 / (sizeof(uint32_t) * 8u))
168
169
#define MCUXCLKEY_WA_SIZE_MAX 0U
170
171
178
179
#define MCUXCLKEY_LOADOPTION_MASK (0xffffffffU)
181
#define MCUXCLKEY_LOADOPTION_SLOT_MASK (0xffU)
182
#define MCUXCLKEY_LOADOPTION_SLOT_INVALID (MCUXCLKEY_LOADOPTION_SLOT_MASK)
183
184
185
#define MCUXCLKEY_LOADOPTION_SLOT_COPRO_MASK (0xc0U)
186
#define MCUXCLKEY_LOADOPTION_SLOT_COPRO_SHIFT (6U)
187
#define MCUXCLKEY_LOADOPTION_SLOT_COPRO_SGI ((uint32_t)0x01U << MCUXCLKEY_LOADOPTION_SLOT_COPRO_SHIFT)
188
189
#define MCUXCLKEY_LOADOPTION_SLOT_SLOT_MASK (0x3fU)
190
#define MCUXCLKEY_LOADOPTION_SLOT_SLOT_SHIFT (0U)
191
192
#define MCUXCLKEY_LOADOPTION_SLOT_SGI_KEY_0 (MCUXCLKEY_LOADOPTION_SLOT_COPRO_SGI | ((uint32_t)0U << MCUXCLKEY_LOADOPTION_SLOT_SLOT_SHIFT))
193
#define MCUXCLKEY_LOADOPTION_SLOT_SGI_KEY_1 (MCUXCLKEY_LOADOPTION_SLOT_COPRO_SGI | ((uint32_t)1U << MCUXCLKEY_LOADOPTION_SLOT_SLOT_SHIFT))
194
#define MCUXCLKEY_LOADOPTION_SLOT_SGI_KEY_2 (MCUXCLKEY_LOADOPTION_SLOT_COPRO_SGI | ((uint32_t)2U << MCUXCLKEY_LOADOPTION_SLOT_SLOT_SHIFT))
195
#define MCUXCLKEY_LOADOPTION_SLOT_SGI_KEY_3 (MCUXCLKEY_LOADOPTION_SLOT_COPRO_SGI | ((uint32_t)3U << MCUXCLKEY_LOADOPTION_SLOT_SLOT_SHIFT))
196
#define MCUXCLKEY_LOADOPTION_SLOT_SGI_KEY_4 (MCUXCLKEY_LOADOPTION_SLOT_COPRO_SGI | ((uint32_t)4U << MCUXCLKEY_LOADOPTION_SLOT_SLOT_SHIFT))
197
#define MCUXCLKEY_LOADOPTION_SLOT_SGI_KEY_5 (MCUXCLKEY_LOADOPTION_SLOT_COPRO_SGI | ((uint32_t)5U << MCUXCLKEY_LOADOPTION_SLOT_SLOT_SHIFT))
198
#define MCUXCLKEY_LOADOPTION_SLOT_SGI_KEY_6 (MCUXCLKEY_LOADOPTION_SLOT_COPRO_SGI | ((uint32_t)6U << MCUXCLKEY_LOADOPTION_SLOT_SLOT_SHIFT))
199
#define MCUXCLKEY_LOADOPTION_SLOT_SGI_KEY_7 (MCUXCLKEY_LOADOPTION_SLOT_COPRO_SGI | ((uint32_t)7U << MCUXCLKEY_LOADOPTION_SLOT_SLOT_SHIFT))
200
201
#define MCUXCLKEY_LOADOPTION_SLOT_SGI_KEY_UNWRAP (MCUXCLKEY_LOADOPTION_SLOT_COPRO_SGI | ((uint32_t)SGI_UNWRAP_KEY_REGISTER_BANK << MCUXCLKEY_LOADOPTION_SLOT_SLOT_SHIFT))
202
203
205
#define MCUXCLKEY_LOADOPTION_ALREADYLOADED_MASK (0x100U)
206
#define MCUXCLKEY_LOADOPTION_ALREADYLOADED_SHIFT (8U)
207
#define MCUXCLKEY_LOADOPTION_ALREADYLOADED ((uint32_t)0x1U << MCUXCLKEY_LOADOPTION_ALREADYLOADED_SHIFT)
208
210
#define MCUXCLKEY_LOADOPTION_RFU_MASK (0xfffffe00U)
211
// planned RFU: option for runtime WO keys
212
213
215
217
218
#endif
/* MCUXCLKEY_CONSTANTS_H_ */
mcuxClKey_Constants.h
Generated by
1.16.1