Select one of the symbols to view example projects that use it.
 
Outline
...
...
...
...
...
...
#define _NX_CRYPTO_CONST_H_
#define NX_CRYPTO_ENCRYPTION_MASK
#define NX_CRYPTO_NONE
#define NX_CRYPTO_ENCRYPTION_DES_IV64
#define NX_CRYPTO_ENCRYPTION_DES_CBC
#define NX_CRYPTO_ENCRYPTION_3DES_CBC
#define NX_CRYPTO_ENCRYPTION_RC5
#define NX_CRYPTO_ENCRYPTION_IDEA
#define NX_CRYPTO_ENCRYPTION_CAST
#define NX_CRYPTO_ENCRYPTION_BLOWFISH
#define NX_CRYPTO_ENCRYPTION_3IDEA
#define NX_CRYPTO_ENCRYPTION_DES_IV32
#define NX_CRYPTO_ENCRYPTION_NULL
#define NX_CRYPTO_ENCRYPTION_AES_CBC
#define NX_CRYPTO_ENCRYPTION_AES_CTR
#define NX_CRYPTO_ENCRYPTION_AES_CCM_8
#define NX_CRYPTO_ENCRYPTION_AES_CCM_12
#define NX_CRYPTO_ENCRYPTION_AES_CCM_16
#define NX_CRYPTO_ENCRYPTION_AES_CCM
#define NX_CRYPTO_ENCRYPTION_AES_GCM_8
#define NX_CRYPTO_ENCRYPTION_AES_GCM_12
#define NX_CRYPTO_ENCRYPTION_AES_GCM_16
#define NX_CRYPTO_ENCRYPTION_NULL_AUTH_AES_GMAC
#define NX_CRYPTO_ENCRYPTION_CAMELLIA_CBC
#define NX_CRYPTO_ENCRYPTION_CAMELLIA_CTR
#define NX_CRYPTO_ENCRYPTION_CAMELLIA_CCM_8
#define NX_CRYPTO_ENCRYPTION_CAMELLIA_CCM_12
#define NX_CRYPTO_ENCRYPTION_CAMELLIA_CCM_16
#define NX_CRYPTO_ENCRYPTION_CHACHA20_POLY1305
#define NX_CRYPTO_AUTHENTICATION_MASK
#define NX_CRYPTO_AUTHENTICATION_NONE
#define NX_CRYPTO_AUTHENTICATION_HMAC_MD5_96
#define NX_CRYPTO_AUTHENTICATION_HMAC_SHA1_96
#define NX_CRYPTO_AUTHENTICATION_DES_MAC
#define NX_CRYPTO_AUTHENTICATION_KPDK_MD5
#define NX_CRYPTO_AUTHENTICATION_AES_XCBC_MAC_96
#define NX_CRYPTO_AUTHENTICATION_HMAC_MD5_128
#define NX_CRYPTO_AUTHENTICATION_HMAC_SHA1_160
#define NX_CRYPTO_AUTHENTICATION_AES_CMAC_96
#define NX_CRYPTO_AUTHENTICATION_AES_128_GMAC
#define NX_CRYPTO_AUTHENTICATION_AES_192_GMAC
#define NX_CRYPTO_AUTHENTICATION_AES_256_GMAC
#define NX_CRYPTO_AUTHENTICATION_HMAC_SHA2_256
#define NX_CRYPTO_AUTHENTICATION_HMAC_SHA2_384
#define NX_CRYPTO_AUTHENTICATION_HMAC_SHA2_512
#define NX_CRYPTO_AUTHENTICATION_HMAC_SHA2_224
#define NX_CRYPTO_AUTHENTICATION_HMAC_SHA2_512_224
#define NX_CRYPTO_AUTHENTICATION_HMAC_SHA2_512_256
#define NX_CRYPTO_PRF_MASK
#define NX_CRYPTO_PRF_HMAC_MD5
#define NX_CRYPTO_PRF_HMAC_SHA1
#define NX_CRYPTO_PRF_HMAC_TIGER
#define NX_CRYPTO_PRF_HMAC_AES128_XCBC
#define NX_CRYPTO_PRF_HMAC_SHA2_256
#define NX_CRYPTO_PRF_HMAC_SHA2_384
#define NX_CRYPTO_PRF_HMAC_SHA2_512
#define NX_CRYPTO_HKDF_METHOD
#define NX_CRYPTO_HASH_MASK
#define NX_CRYPTO_HASH_NONE
#define NX_CRYPTO_HASH_MD5
#define NX_CRYPTO_HASH_SHA1
#define NX_CRYPTO_HASH_SHA224
#define NX_CRYPTO_HASH_SHA256
#define NX_CRYPTO_HASH_SHA384
#define NX_CRYPTO_HASH_SHA512
#define NX_CRYPTO_HASH_SHA512_224
#define NX_CRYPTO_HASH_SHA512_256
#define NX_CRYPTO_HASH_HMAC
#define NX_CRYPTO_KEY_EXCHANGE_MASK
#define NX_CRYPTO_KEY_EXCHANGE_NONE
#define NX_CRYPTO_KEY_EXCHANGE_PSK
#define NX_CRYPTO_KEY_EXCHANGE_RSA
#define NX_CRYPTO_KEY_EXCHANGE_DH
#define NX_CRYPTO_KEY_EXCHANGE_DHE
#define NX_CRYPTO_KEY_EXCHANGE_ECDH
#define NX_CRYPTO_KEY_EXCHANGE_ECDHE
#define NX_CRYPTO_KEY_EXCHANGE_ECJPAKE
#define NX_CRYPTO_DIGITAL_SIGNATURE_MASK
#define NX_CRYPTO_DIGITAL_SIGNATURE_ANONYMOUS
#define NX_CRYPTO_DIGITAL_SIGNATURE_RSA
#define NX_CRYPTO_DIGITAL_SIGNATURE_DSA
#define NX_CRYPTO_DIGITAL_SIGNATURE_ECDSA
#define NX_CRYPTO_EC_MASK
#define NX_CRYPTO_EC_SECT163K1
#define NX_CRYPTO_EC_SECT163R1
#define NX_CRYPTO_EC_SECT163R2
#define NX_CRYPTO_EC_SECT193R1
#define NX_CRYPTO_EC_SECT193R2
#define NX_CRYPTO_EC_SECT233K1
#define NX_CRYPTO_EC_SECT233R1
#define NX_CRYPTO_EC_SECT239K1
#define NX_CRYPTO_EC_SECT283K1
#define NX_CRYPTO_EC_SECT283R1
#define NX_CRYPTO_EC_SECT409K1
#define NX_CRYPTO_EC_SECT409R1
#define NX_CRYPTO_EC_SECT571K1
#define NX_CRYPTO_EC_SECT571R1
#define NX_CRYPTO_EC_SECP160K1
#define NX_CRYPTO_EC_SECP160R1
#define NX_CRYPTO_EC_SECP160R2
#define NX_CRYPTO_EC_SECP192K1
#define NX_CRYPTO_EC_SECP192R1
#define NX_CRYPTO_EC_SECP224K1
#define NX_CRYPTO_EC_SECP224R1
#define NX_CRYPTO_EC_SECP256K1
#define NX_CRYPTO_EC_SECP256R1
#define NX_CRYPTO_EC_SECP384R1
#define NX_CRYPTO_EC_SECP521R1
#define NX_CRYPTO_EC_BRAINPOOLP256r1
#define NX_CRYPTO_EC_BRAINPOOLP384r1
#define NX_CRYPTO_EC_BRAINPOOLP512r1
#define NX_CRYPTO_EC_FFDHE2048
#define NX_CRYPTO_EC_FFDHE3072
#define NX_CRYPTO_EC_FFDHE4096
#define NX_CRYPTO_EC_FFDHE6144
#define NX_CRYPTO_EC_FFDHE8192
#define NX_CRYPTO_EC_PRIME
#define NX_CRYPTO_EC_CHAR2
#define NX_CRYPTO_EC_POINT_UNCOMPRESSED
#define NX_CRYPTO_EC_POINT_ANSIX962_COMPRESSED_PRIME
#define NX_CRYPTO_EC_POINT_ANSIX962_COMPRESSED_CHAR2
#define NX_CRYPTO_AUTHENTICATION_ICV_TRUNC_BITS
#define NX_CRYPTO_MAX_IV_SIZE_IN_BITS
#define NX_CRYPTO_ROLE_NONE
#define NX_CRYPTO_ROLE_KEY_EXCHANGE
#define NX_CRYPTO_ROLE_SIGNATURE_CRYPTO
#define NX_CRYPTO_ROLE_SIGNATURE_HASH
#define NX_CRYPTO_ROLE_SYMMETRIC
#define NX_CRYPTO_ROLE_MAC_HASH
#define NX_CRYPTO_ROLE_PRF
#define NX_CRYPTO_ROLE_HMAC
#define NX_CRYPTO_ROLE_RAW_HASH
#define NX_CRYPTO_ENCRYPT
#define NX_CRYPTO_DECRYPT
#define NX_CRYPTO_AUTHENTICATE
#define NX_CRYPTO_VERIFY
#define NX_CRYPTO_HASH_INITIALIZE
#define NX_CRYPTO_HASH_UPDATE
#define NX_CRYPTO_HASH_CALCULATE
#define NX_CRYPTO_PRF
#define NX_CRYPTO_SET_PRIME_P
#define NX_CRYPTO_SET_PRIME_Q
#define NX_CRYPTO_SET_ADDITIONAL_DATA
#define NX_CRYPTO_HASH_METHOD_SET
#define NX_CRYPTO_SIGNATURE_GENERATE
#define NX_CRYPTO_SIGNATURE_VERIFY
#define NX_CRYPTO_PRF_SET_HASH
#define NX_CRYPTO_ECJPAKE_HASH_METHOD_SET
#define NX_CRYPTO_ECJPAKE_CURVE_SET
#define NX_CRYPTO_ECJPAKE_CLIENT_HELLO_GENERATE
#define NX_CRYPTO_ECJPAKE_SERVER_HELLO_GENERATE
#define NX_CRYPTO_ECJPAKE_CLIENT_HELLO_PROCESS
#define NX_CRYPTO_ECJPAKE_SERVER_HELLO_PROCESS
#define NX_CRYPTO_ECJPAKE_CLIENT_KEY_EXCHANGE_GENERATE
#define NX_CRYPTO_ECJPAKE_SERVER_KEY_EXCHANGE_GENERATE
#define NX_CRYPTO_ECJPAKE_CLIENT_KEY_EXCHANGE_PROCESS
#define NX_CRYPTO_ECJPAKE_SERVER_KEY_EXCHANGE_PROCESS
#define NX_CRYPTO_ENCRYPT_INITIALIZE
#define NX_CRYPTO_DECRYPT_INITIALIZE
#define NX_CRYPTO_ENCRYPT_UPDATE
#define NX_CRYPTO_DECRYPT_UPDATE
#define NX_CRYPTO_ENCRYPT_CALCULATE
#define NX_CRYPTO_DECRYPT_CALCULATE
#define NX_CRYPTO_EC_CURVE_GET
#define NX_CRYPTO_EC_CURVE_SET
#define NX_CRYPTO_EC_KEY_PAIR_GENERATE
#define NX_CRYPTO_DH_SETUP
#define NX_CRYPTO_DH_CALCULATE
#define NX_CRYPTO_DH_KEY_PAIR_IMPORT
#define NX_CRYPTO_DH_PRIVATE_KEY_EXPORT
#define NX_CRYPTO_DRBG_OPTIONS_SET
#define NX_CRYPTO_DRBG_INSTANTIATE
#define NX_CRYPTO_DRBG_RESEED
#define NX_CRYPTO_DRBG_GENERATE
#define NX_CRYPTO_HKDF_SET_HASH
#define NX_CRYPTO_HKDF_EXTRACT
#define NX_CRYPTO_HKDF_EXPAND
#define NX_CRYPTO_HKDF_SET_PRK
#define NX_CRYPTO_HKDF_SET_HMAC
#define NX_CRYPTO_HMAC_SET_HASH
#define NX_CRYPTO_ALIGN8
#define NX_CRYPTO_OFFSET
NX_CRYPTO_KEY_SIZE
#define NX_CRYPTO_SUCCESS
#define NX_CRYPTO_UNSUPPORTED_KEY_SIZE
#define NX_CRYPTO_AUTHENTICATION_FAILED
#define NX_CRYPTO_INVALID_ALGORITHM
#define NX_CRYPTO_INVALID_KEY
#define NX_CRYPTO_INVALID_BUFFER_SIZE
#define NX_CRYPTO_PTR_ERROR
#define NX_CRYPTO_SIZE_ERROR
#define NX_CRYPTO_NOT_SUCCESSFUL
#define NX_CRYPTO_INVALID_PARAMETER
#define NX_CRYPTO_NO_INSTANCE
#define NX_CRYPTO_METHOD_INITIALIZATION_FAILURE
#define NX_CRYPTO_METADATA_UNALIGNED
#define NX_CRYPTO_POINTER_ERROR
#define NX_CRYTPO_MISSING_ECC_CURVE
#define NX_CRYPTO_FORMAT_NOT_SUPPORTED
#define NX_CRYPTO_NULL
#define NX_CRYPTO_FALSE
#define NX_CRYPTO_TRUE
#define NX_CRYPTO_AES_UNSUPPORTED_KEY_SIZE
#define NX_CRYPTO_LIBRARY_STATE_UNINITIALIZED
#define NX_CRYPTO_LIBRARY_STATE_POST_IN_PROGRESS
#define NX_CRYPTO_LIBRARY_STATE_POST_FAILED
#define NX_CRYPTO_LIBRARY_STATE_OPERATIONAL
Files
loading...
SourceVuSTM32 Libraries and Samplesnetxduocrypto_libraries/inc/nx_crypto_const.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/**************************************************************************/ /* */ /* Copyright (c) Microsoft Corporation. All rights reserved. */ /* */ /* This software is licensed under the Microsoft Software License */ /* Terms for Microsoft Azure RTOS. Full text of the license can be */ /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ /* and in the root directory of this software. */ /* */... /**************************************************************************/ ... /**************************************************************************/ /**************************************************************************/ /** */ /** NetX Crypto Component */ /** */ /** Crypto */ /** */... /**************************************************************************/ /**************************************************************************/ ... /**************************************************************************/ /* */ /* COMPONENT DEFINITION RELEASE */ /* */ /* nx_crypto_const.h PORTABLE C */ /* 6.1.7 */ /* AUTHOR */ /* */ /* Timothy Stapko, Microsoft Corporation */ /* */ /* DESCRIPTION */ /* */ /* This file defines the NetX Security Encryption component. */ /* */ /* RELEASE HISTORY */ /* */ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Timothy Stapko Initial Version 6.0 */ /* 09-30-2020 Timothy Stapko Modified comment(s), added */ /* new constants, */ /* resulting in version 6.1 */ /* 06-02-2021 Bhupendra Naphade Modified comment(s), */ /* renamed FIPS symbol to */ /* self-test, */ /* resulting in version 6.1.7 */ /* */... /**************************************************************************/ #ifndef _NX_CRYPTO_CONST_H_ #define _NX_CRYPTO_CONST_H_ /* Determine if a C++ compiler is being used. If so, ensure that standard C is used to process the API information. *//* ... */ #ifdef __cplusplus /* Yes, C++ compiler is present. Use standard C. */ extern "C" { #endif /* Define the encryption algorithm, as outlined in RFC 4305 3.1.1 */ /* These values are used in nx_crypto_algorithm field. */ /* Values of 16 least significant bits are the same as defined in RFC 5996 3.3.2 */ #define NX_CRYPTO_ENCRYPTION_MASK 0x00000000 #define NX_CRYPTO_NONE 0x00000000 #define NX_CRYPTO_ENCRYPTION_DES_IV64 0x00000001 #define NX_CRYPTO_ENCRYPTION_DES_CBC 0x00000002 #define NX_CRYPTO_ENCRYPTION_3DES_CBC 0x00000003 #define NX_CRYPTO_ENCRYPTION_RC5 0x00000004 #define NX_CRYPTO_ENCRYPTION_IDEA 0x00000005 #define NX_CRYPTO_ENCRYPTION_CAST 0x00000006 #define NX_CRYPTO_ENCRYPTION_BLOWFISH 0x00000007 #define NX_CRYPTO_ENCRYPTION_3IDEA 0x00000008 #define NX_CRYPTO_ENCRYPTION_DES_IV32 0x00000009 #define NX_CRYPTO_ENCRYPTION_NULL 0x0000000B #define NX_CRYPTO_ENCRYPTION_AES_CBC 0x0000000C #define NX_CRYPTO_ENCRYPTION_AES_CTR 0x0000000D #define NX_CRYPTO_ENCRYPTION_AES_CCM_8 0x0000000E #define NX_CRYPTO_ENCRYPTION_AES_CCM_12 0x0000000F #define NX_CRYPTO_ENCRYPTION_AES_CCM_16 0x00000010 #define NX_CRYPTO_ENCRYPTION_AES_CCM 0x00000011 /* Unassigned number in IANA, define it for all other length ICV. */ #define NX_CRYPTO_ENCRYPTION_AES_GCM_8 0x00000012 #define NX_CRYPTO_ENCRYPTION_AES_GCM_12 0x00000013 #define NX_CRYPTO_ENCRYPTION_AES_GCM_16 0x00000014 #define NX_CRYPTO_ENCRYPTION_NULL_AUTH_AES_GMAC 0x00000015 #define NX_CRYPTO_ENCRYPTION_CAMELLIA_CBC 0x00000017 #define NX_CRYPTO_ENCRYPTION_CAMELLIA_CTR 0x00000018 #define NX_CRYPTO_ENCRYPTION_CAMELLIA_CCM_8 0x00000019 #define NX_CRYPTO_ENCRYPTION_CAMELLIA_CCM_12 0x0000001A #define NX_CRYPTO_ENCRYPTION_CAMELLIA_CCM_16 0x0000001B #define NX_CRYPTO_ENCRYPTION_CHACHA20_POLY1305 0x0000001C /* Define the authentication algorithm, as outlined in RFC 4305 3.2 */ /* See also: https://www.iana.org/assignments/ikev2-parameters/ikev2-parameters.xhtml */ /* These values are used in nx_crypto_algorithm field. */ /* Values of 16 least significant bits are the same as defined in RFC 5996 3.3.2 */ #define NX_CRYPTO_AUTHENTICATION_MASK 0x00010000 #define NX_CRYPTO_AUTHENTICATION_NONE 0x00010000 #define NX_CRYPTO_AUTHENTICATION_HMAC_MD5_96 0x00010001 #define NX_CRYPTO_AUTHENTICATION_HMAC_SHA1_96 0x00010002 #define NX_CRYPTO_AUTHENTICATION_DES_MAC 0x00010003 #define NX_CRYPTO_AUTHENTICATION_KPDK_MD5 0x00010004 #define NX_CRYPTO_AUTHENTICATION_AES_XCBC_MAC_96 0x00010005 #define NX_CRYPTO_AUTHENTICATION_HMAC_MD5_128 0x00010006 #define NX_CRYPTO_AUTHENTICATION_HMAC_SHA1_160 0x00010007 #define NX_CRYPTO_AUTHENTICATION_AES_CMAC_96 0x00010008 #define NX_CRYPTO_AUTHENTICATION_AES_128_GMAC 0x00010009 #define NX_CRYPTO_AUTHENTICATION_AES_192_GMAC 0x0001000A #define NX_CRYPTO_AUTHENTICATION_AES_256_GMAC 0x0001000B #define NX_CRYPTO_AUTHENTICATION_HMAC_SHA2_256 0x0001000C #define NX_CRYPTO_AUTHENTICATION_HMAC_SHA2_384 0x0001000D #define NX_CRYPTO_AUTHENTICATION_HMAC_SHA2_512 0x0001000E #define NX_CRYPTO_AUTHENTICATION_HMAC_SHA2_224 0x0001000F /* Unassigned number in IANA. */ #define NX_CRYPTO_AUTHENTICATION_HMAC_SHA2_512_224 0x00010010 /* Unassigned number in IANA. */ #define NX_CRYPTO_AUTHENTICATION_HMAC_SHA2_512_256 0x00010011 /* Unassigned number in IANA. */ /* Define the Pseudorandom Function algorithm */ /* These values are used in nx_crypto_algorithm field. */ /* Values of 16 least significant bits are the same as defined in RFC 5996 3.3.2, * except for algorithms not found in that RFC such as the HKDF. *//* ... */ #define NX_CRYPTO_PRF_MASK 0x00020000 #define NX_CRYPTO_PRF_HMAC_MD5 0x00020001 #define NX_CRYPTO_PRF_HMAC_SHA1 0x00020002 #define NX_CRYPTO_PRF_HMAC_TIGER 0x00020003 #define NX_CRYPTO_PRF_HMAC_AES128_XCBC 0x00020004 #define NX_CRYPTO_PRF_HMAC_SHA2_256 0x00020005 #define NX_CRYPTO_PRF_HMAC_SHA2_384 0x00020006 #define NX_CRYPTO_PRF_HMAC_SHA2_512 0x00020007 #define NX_CRYPTO_HKDF_METHOD 0x00020008 /* Define the hash algorithm */ #define NX_CRYPTO_HASH_MASK 0x00030000 #define NX_CRYPTO_HASH_NONE 0x00030001 #define NX_CRYPTO_HASH_MD5 0x00030002 #define NX_CRYPTO_HASH_SHA1 0x00030003 #define NX_CRYPTO_HASH_SHA224 0x00030004 #define NX_CRYPTO_HASH_SHA256 0x00030005 #define NX_CRYPTO_HASH_SHA384 0x00030006 #define NX_CRYPTO_HASH_SHA512 0x00030007 #define NX_CRYPTO_HASH_SHA512_224 0x00030008 #define NX_CRYPTO_HASH_SHA512_256 0x00030009 #define NX_CRYPTO_HASH_HMAC 0x0003000A /* Generic HMAC wrapper. */ /* Define the key exchange algorithm */ #define NX_CRYPTO_KEY_EXCHANGE_MASK 0x00040000 #define NX_CRYPTO_KEY_EXCHANGE_NONE 0x00040000 #define NX_CRYPTO_KEY_EXCHANGE_PSK 0x00040001 #define NX_CRYPTO_KEY_EXCHANGE_RSA 0x00040002 #define NX_CRYPTO_KEY_EXCHANGE_DH 0x00040003 #define NX_CRYPTO_KEY_EXCHANGE_DHE 0x00040004 #define NX_CRYPTO_KEY_EXCHANGE_ECDH 0x00040005 #define NX_CRYPTO_KEY_EXCHANGE_ECDHE 0x00040006 #define NX_CRYPTO_KEY_EXCHANGE_ECJPAKE 0x00040007 /*Define the digital signature algorithm */ #define NX_CRYPTO_DIGITAL_SIGNATURE_MASK 0x00050000 #define NX_CRYPTO_DIGITAL_SIGNATURE_ANONYMOUS 0x00050000 #define NX_CRYPTO_DIGITAL_SIGNATURE_RSA 0x00050001 #define NX_CRYPTO_DIGITAL_SIGNATURE_DSA 0x00050002 #define NX_CRYPTO_DIGITAL_SIGNATURE_ECDSA 0x00050003 /*Define the elliptic curve algorithm */ /* Values of 16 least significant bits are the same as named curve defined in RFC 4492, section 5.1.1 */ #define NX_CRYPTO_EC_MASK 0x00060000 #define NX_CRYPTO_EC_SECT163K1 0x00060001 #define NX_CRYPTO_EC_SECT163R1 0x00060002 #define NX_CRYPTO_EC_SECT163R2 0x00060003 #define NX_CRYPTO_EC_SECT193R1 0x00060004 #define NX_CRYPTO_EC_SECT193R2 0x00060005 #define NX_CRYPTO_EC_SECT233K1 0x00060006 #define NX_CRYPTO_EC_SECT233R1 0x00060007 #define NX_CRYPTO_EC_SECT239K1 0x00060008 #define NX_CRYPTO_EC_SECT283K1 0x00060009 #define NX_CRYPTO_EC_SECT283R1 0x0006000A #define NX_CRYPTO_EC_SECT409K1 0x0006000B #define NX_CRYPTO_EC_SECT409R1 0x0006000C #define NX_CRYPTO_EC_SECT571K1 0x0006000D #define NX_CRYPTO_EC_SECT571R1 0x0006000E #define NX_CRYPTO_EC_SECP160K1 0x0006000F #define NX_CRYPTO_EC_SECP160R1 0x00060010 #define NX_CRYPTO_EC_SECP160R2 0x00060011 #define NX_CRYPTO_EC_SECP192K1 0x00060012 #define NX_CRYPTO_EC_SECP192R1 0x00060013 #define NX_CRYPTO_EC_SECP224K1 0x00060014 #define NX_CRYPTO_EC_SECP224R1 0x00060015 #define NX_CRYPTO_EC_SECP256K1 0x00060016 #define NX_CRYPTO_EC_SECP256R1 0x00060017 #define NX_CRYPTO_EC_SECP384R1 0x00060018 #define NX_CRYPTO_EC_SECP521R1 0x00060019 #define NX_CRYPTO_EC_BRAINPOOLP256r1 0x0006001A #define NX_CRYPTO_EC_BRAINPOOLP384r1 0x0006001B #define NX_CRYPTO_EC_BRAINPOOLP512r1 0x0006001C #define NX_CRYPTO_EC_FFDHE2048 0x00060100 #define NX_CRYPTO_EC_FFDHE3072 0x00060101 #define NX_CRYPTO_EC_FFDHE4096 0x00060102 #define NX_CRYPTO_EC_FFDHE6144 0x00060103 #define NX_CRYPTO_EC_FFDHE8192 0x00060104 #define NX_CRYPTO_EC_PRIME 0x0006FF01 #define NX_CRYPTO_EC_CHAR2 0x0006FF02 /* Elliptic curve point format definitions. */ #define NX_CRYPTO_EC_POINT_UNCOMPRESSED 0 #define NX_CRYPTO_EC_POINT_ANSIX962_COMPRESSED_PRIME 1 #define NX_CRYPTO_EC_POINT_ANSIX962_COMPRESSED_CHAR2 2 /* Define crypto ICV bits size. */ #define NX_CRYPTO_AUTHENTICATION_ICV_TRUNC_BITS 96 121 defines #ifndef NX_CRYPTO_MAX_IV_SIZE_IN_BITS #define NX_CRYPTO_MAX_IV_SIZE_IN_BITS 192 #endif /* NX_CRYPTO_MAX_IV_SIZE_IN_BYTES */ /* NX_CRYPTO_ROLE_xxx - used to identify the "role of a crypto algorithm in a ciphersuite/X.509 mapping. *//* ... */ #define NX_CRYPTO_ROLE_NONE 0 /* Used to indicate the end of a list. */ #define NX_CRYPTO_ROLE_KEY_EXCHANGE 1 /* Cipher is used for key exchange (e.g. RSA, ECDHE) */ #define NX_CRYPTO_ROLE_SIGNATURE_CRYPTO 2 /* Cipher is used for encrypting a signature (e.g. RSA, DSA) */ #define NX_CRYPTO_ROLE_SIGNATURE_HASH 3 /* Cipher is used to generate a signature hash (e.g. SHA-1, SHA-256) */ #define NX_CRYPTO_ROLE_SYMMETRIC 4 /* Cipher is used for symmetric encryption (e.g. AES, RC4) */ #define NX_CRYPTO_ROLE_MAC_HASH 5 /* Cipher is used for hash MAC generation (e.g. HMAC-SHA-1, HMAC-SHA-256) */ #define NX_CRYPTO_ROLE_PRF 6 /* Cipher is used for TLS PRF (key generation). */ #define NX_CRYPTO_ROLE_HMAC 7 /* Generic HMAC wrapper to be used with a "raw" hash function. */ #define NX_CRYPTO_ROLE_RAW_HASH 8 /* A "raw" hash function is the cryptographic primitive without a wrapper (e.g. SHA-256, no HMAC). */ /* Define values used for nx_crypto_type. */ #define NX_CRYPTO_ENCRYPT 1 /* ESP Encrypt (egress) */ #define NX_CRYPTO_DECRYPT 2 /* ESP Decrypt (ingress) */ #define NX_CRYPTO_AUTHENTICATE 3 /* AH Authenticate (egress) */ #define NX_CRYPTO_VERIFY 4 /* AH Verify (ingress) */ #define NX_CRYPTO_HASH_INITIALIZE 5 /* Hash initialize */ #define NX_CRYPTO_HASH_UPDATE 6 /* Hash update */ #define NX_CRYPTO_HASH_CALCULATE 7 /* Hash calculate */ #define NX_CRYPTO_PRF 8 /* For the TLS PRF function. */ #define NX_CRYPTO_SET_PRIME_P 9 /* Set Prime number P. This is used in software RSA implementation. */ #define NX_CRYPTO_SET_PRIME_Q 10 /* Set Prime number Q. This is used in software RSA implementation. */ #define NX_CRYPTO_SET_ADDITIONAL_DATA 11 /* Set additional data pointer and length. */ #define NX_CRYPTO_HASH_METHOD_SET 12 /* Set hash method. */ #define NX_CRYPTO_SIGNATURE_GENERATE 13 /* Signature generation. */ #define NX_CRYPTO_SIGNATURE_VERIFY 14 /* Signature verification. */ #define NX_CRYPTO_PRF_SET_HASH NX_CRYPTO_HASH_METHOD_SET /* ECJPAKE operations. */ #define NX_CRYPTO_ECJPAKE_HASH_METHOD_SET NX_CRYPTO_HASH_METHOD_SET #define NX_CRYPTO_ECJPAKE_CURVE_SET 21 #define NX_CRYPTO_ECJPAKE_CLIENT_HELLO_GENERATE 22 #define NX_CRYPTO_ECJPAKE_SERVER_HELLO_GENERATE 23 #define NX_CRYPTO_ECJPAKE_CLIENT_HELLO_PROCESS 24 #define NX_CRYPTO_ECJPAKE_SERVER_HELLO_PROCESS 25 #define NX_CRYPTO_ECJPAKE_CLIENT_KEY_EXCHANGE_GENERATE 26 #define NX_CRYPTO_ECJPAKE_SERVER_KEY_EXCHANGE_GENERATE 27 #define NX_CRYPTO_ECJPAKE_CLIENT_KEY_EXCHANGE_PROCESS 28 #define NX_CRYPTO_ECJPAKE_SERVER_KEY_EXCHANGE_PROCESS 29 #define NX_CRYPTO_ENCRYPT_INITIALIZE 30 /* Encrypt initialize */ #define NX_CRYPTO_DECRYPT_INITIALIZE 31 /* Decrypt initialize */ #define NX_CRYPTO_ENCRYPT_UPDATE 32 /* Encrypt update */ #define NX_CRYPTO_DECRYPT_UPDATE 33 /* Decrypt update */ #define NX_CRYPTO_ENCRYPT_CALCULATE 34 /* Final encrypt calculation */ #define NX_CRYPTO_DECRYPT_CALCULATE 35 /* Final decrypt calculation */ /* EC operations. */ #define NX_CRYPTO_EC_CURVE_GET 40 #define NX_CRYPTO_EC_CURVE_SET 41 #define NX_CRYPTO_EC_KEY_PAIR_GENERATE 42 /* DH and ECDH operations. */ #define NX_CRYPTO_DH_SETUP 50 #define NX_CRYPTO_DH_CALCULATE 51 #define NX_CRYPTO_DH_KEY_PAIR_IMPORT 52 #define NX_CRYPTO_DH_PRIVATE_KEY_EXPORT 53 /* DRBG operations. */ #define NX_CRYPTO_DRBG_OPTIONS_SET 60 #define NX_CRYPTO_DRBG_INSTANTIATE 61 #define NX_CRYPTO_DRBG_RESEED 62 #define NX_CRYPTO_DRBG_GENERATE 63 /* HKDF operations. */ #define NX_CRYPTO_HKDF_SET_HASH NX_CRYPTO_HASH_METHOD_SET /* Set the generic hash routine to be used for HKDF. */ #define NX_CRYPTO_HKDF_EXTRACT 70 /* Perform an HKDF-extract operation. */ #define NX_CRYPTO_HKDF_EXPAND 71 /* Perform an HKDF-expand operation. */ #define NX_CRYPTO_HKDF_SET_PRK 72 /* Set the Pseudo-Random Key for an HKDF-expand operation. */ #define NX_CRYPTO_HKDF_SET_HMAC 73 /* Set the generic HMAC routine to be used for HKDF. */ #define NX_CRYPTO_HMAC_SET_HASH 74 /* Set the generic hash routine to be used for HMAC operations. */ /* Define align MACRO to a byte boundry. */ #define NX_CRYPTO_ALIGN8(len) (((len) + 7) & ~7) /* Find the offset of a structure. */ #define NX_CRYPTO_OFFSET(a, b) ((ULONG)(&(((a *)(0)) -> b))) 59 defines typedef UINT NX_CRYPTO_KEY_SIZE; #define NX_CRYPTO_SUCCESS 0x0 /* Function returned successfully. */ #define NX_CRYPTO_INVALID_LIBRARY 0x20001 /* Crypto library has not been initialized or failed the Power On Self Test (POST). *//* ... */ #define NX_CRYPTO_UNSUPPORTED_KEY_SIZE 0x20002 /* Unsupported key size. */ #define NX_CRYPTO_AUTHENTICATION_FAILED 0x20003 /* Authentication failed. */ #define NX_CRYPTO_INVALID_ALGORITHM 0x20004 #define NX_CRYPTO_INVALID_KEY 0x20005 #define NX_CRYPTO_INVALID_BUFFER_SIZE 0x20006 #define NX_CRYPTO_PTR_ERROR 0x20007 #define NX_CRYPTO_SIZE_ERROR 0x20008 #define NX_CRYPTO_NOT_SUCCESSFUL 0x20009 #define NX_CRYPTO_INVALID_PARAMETER 0x2000A #define NX_CRYPTO_NO_INSTANCE 0x2000B #define NX_CRYPTO_METHOD_INITIALIZATION_FAILURE 0x2000C /* A method was not properly initialized before use. */ #define NX_CRYPTO_METADATA_UNALIGNED 0x2000D /* Crypto metadata must be 4-byte aligned. */ #define NX_CRYPTO_POINTER_ERROR 0x2000E /* An invalid (NULL?) pointer was passed into a crypto method. */ #define NX_CRYTPO_MISSING_ECC_CURVE 0x2000F /* ECC curve lookup failed to return a matching curve. */ #define NX_CRYPTO_FORMAT_NOT_SUPPORTED 0x20010 /* Unsupported Format */ #define NX_CRYPTO_NULL 0 #define NX_CRYPTO_FALSE 0 #define NX_CRYPTO_TRUE 1 /* The following symbols are mapped to the error code for backward compatibility. */ #define NX_CRYPTO_AES_UNSUPPORTED_KEY_SIZE NX_CRYPTO_UNSUPPORTED_KEY_SIZE 21 defines #ifdef NX_CRYPTO_SELF_TEST #define NX_CRYPTO_LIBRARY_STATE_UNINITIALIZED 0x00000001U #define NX_CRYPTO_LIBRARY_STATE_POST_IN_PROGRESS 0x00000002U #define NX_CRYPTO_LIBRARY_STATE_POST_FAILED 0x00000004U #define NX_CRYPTO_LIBRARY_STATE_OPERATIONAL 0x80000000U /* ... */ #endif /* NX_CRYPTO_SELF_TEST */ #ifdef __cplusplus }extern "C" { ... } #endif /* ... */ ...#endif /* _NX_CRYPTO_CONST_H_ */
Details
Show:
from
Types: Columns:
This file uses the notable symbols shown below. Click anywhere in the file to view more details.