Coverage Report

Created: 2026-02-14 07:13

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/p11-kit/common/constants.c
Line
Count
Source
1
/*
2
 * Copyright (C) 2013, Redhat Inc.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 *
8
 *     * Redistributions of source code must retain the above
9
 *       copyright notice, this list of conditions and the
10
 *       following disclaimer.
11
 *     * Redistributions in binary form must reproduce the
12
 *       above copyright notice, this list of conditions and
13
 *       the following disclaimer in the documentation and/or
14
 *       other materials provided with the distribution.
15
 *     * The names of contributors to this software may not be
16
 *       used to endorse or promote products derived from this
17
 *       software without specific prior written permission.
18
 *
19
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
25
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
26
 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
29
 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
30
 * DAMAGE.
31
 *
32
 * Author: Stef Walter <stefw@redhat.com>
33
 */
34
35
#include "config.h"
36
37
#include "attrs.h"
38
#include "constants.h"
39
#include "debug.h"
40
#include "pkcs11.h"
41
#include "pkcs11i.h"
42
#include "pkcs11x.h"
43
44
#include <stdlib.h>
45
46
0
#define ELEMS(x) (sizeof (x) / sizeof (x[0]))
47
48
/*
49
 * These are in numeric order of their type for easy lookup
50
 * After changing something make sure to run the test-attrs
51
 * test to verify everything is in order.
52
 */
53
54
#define CT(x, n) { x, #x, { n } },
55
#define CT2(x, n, n2) { x, #x, { n, n2 } },
56
57
const p11_constant p11_constant_types[] = {
58
  CT (CKA_CLASS, "class")
59
  CT (CKA_TOKEN, "token")
60
  CT (CKA_PRIVATE, "private")
61
  CT (CKA_LABEL, "label")
62
  CT (CKA_UNIQUE_ID, "unique-id")
63
  CT (CKA_APPLICATION, "application")
64
  CT (CKA_VALUE, "value")
65
  CT (CKA_OBJECT_ID, "object-id")
66
  CT (CKA_CERTIFICATE_TYPE, "certificate-type")
67
  CT (CKA_ISSUER, "issuer")
68
  CT (CKA_SERIAL_NUMBER, "serial-number")
69
  CT (CKA_AC_ISSUER, "ac-issuer")
70
  CT (CKA_OWNER, "owner")
71
  CT (CKA_ATTR_TYPES, "attr-types")
72
  CT (CKA_TRUSTED, "trusted")
73
  CT (CKA_CERTIFICATE_CATEGORY, "certificate-category")
74
  CT (CKA_JAVA_MIDP_SECURITY_DOMAIN, "java-midp-security-domain")
75
  CT (CKA_URL, "url")
76
  CT (CKA_HASH_OF_SUBJECT_PUBLIC_KEY, "hash-of-subject-public-key")
77
  CT (CKA_HASH_OF_ISSUER_PUBLIC_KEY, "hash-of-issuer-public-key")
78
  CT (CKA_NAME_HASH_ALGORITHM, "name-hash-algorithm")
79
  CT (CKA_CHECK_VALUE, "check-value")
80
  CT (CKA_KEY_TYPE, "key-type")
81
  CT (CKA_SUBJECT, "subject")
82
  CT (CKA_ID, "id")
83
  CT (CKA_SENSITIVE, "sensitive")
84
  CT (CKA_ENCRYPT, "encrypt")
85
  CT (CKA_DECRYPT, "decrypt")
86
  CT (CKA_WRAP, "wrap")
87
  CT (CKA_UNWRAP, "unwrap")
88
  CT (CKA_SIGN, "sign")
89
  CT (CKA_SIGN_RECOVER, "sign-recover")
90
  CT (CKA_VERIFY, "verify")
91
  CT (CKA_VERIFY_RECOVER, "recover")
92
  CT (CKA_DERIVE, "derive")
93
  CT (CKA_START_DATE, "start-date")
94
  CT (CKA_END_DATE, "end-date")
95
  CT (CKA_MODULUS, "modulus")
96
  CT (CKA_MODULUS_BITS, "modulus-bits")
97
  CT (CKA_PUBLIC_EXPONENT, "public-exponent")
98
  CT (CKA_PRIVATE_EXPONENT, "private-exponent")
99
  CT (CKA_PRIME_1, "prime-1")
100
  CT (CKA_PRIME_2, "prime-2")
101
  CT (CKA_EXPONENT_1, "exponent-1")
102
  CT (CKA_EXPONENT_2, "exponent-2")
103
  CT (CKA_COEFFICIENT, "coefficient")
104
  CT2 (CKA_PUBLIC_KEY_INFO, "public-key-info", "x-public-key-info")
105
  CT (CKA_PRIME, "prime")
106
  CT (CKA_SUBPRIME, "subprime")
107
  CT (CKA_BASE, "base")
108
  CT (CKA_PRIME_BITS, "prime-bits")
109
  /* CT (CKA_SUBPRIME_BITS) */
110
  CT (CKA_SUB_PRIME_BITS, "subprime-bits")
111
  CT (CKA_VALUE_BITS, "value-bits")
112
  CT (CKA_VALUE_LEN, "value-len")
113
  CT (CKA_EXTRACTABLE, "extractable")
114
  CT (CKA_LOCAL, "local")
115
  CT (CKA_NEVER_EXTRACTABLE, "never-extractable")
116
  CT (CKA_ALWAYS_SENSITIVE, "always-sensitive")
117
  CT (CKA_KEY_GEN_MECHANISM, "key-gen-mechanism")
118
  CT (CKA_MODIFIABLE, "modifiable")
119
  CT (CKA_COPYABLE, "copyable")
120
  CT (CKA_DESTROYABLE, "destroyable")
121
  CT (CKA_ECDSA_PARAMS, "ecdsa-params")
122
  /* CT (CKA_EC_PARAMS) */
123
  CT (CKA_EC_POINT, "ec-point")
124
  CT (CKA_SECONDARY_AUTH, "secondary-auth")
125
  CT (CKA_AUTH_PIN_FLAGS, "auth-pin-flags")
126
  CT (CKA_ALWAYS_AUTHENTICATE, "always-authenticate")
127
  CT (CKA_WRAP_WITH_TRUSTED, "wrap-with-trusted")
128
  CT (CKA_OTP_FORMAT, "otp-format")
129
  CT (CKA_OTP_LENGTH, "otp-length")
130
  CT (CKA_OTP_TIME_INTERVAL, "otp-time-interval")
131
  CT (CKA_OTP_USER_FRIENDLY_MODE, "otp-user-friendly-mode")
132
  CT (CKA_OTP_CHALLENGE_REQUIREMENT, "otp-challenge-requirement")
133
  CT (CKA_OTP_TIME_REQUIREMENT, "otp-time-requirement")
134
  CT (CKA_OTP_COUNTER_REQUIREMENT, "otp-counter-requirement")
135
  CT (CKA_OTP_PIN_REQUIREMENT, "otp-pin-requirement")
136
  CT (CKA_OTP_USER_IDENTIFIER, "otp-user-identifier")
137
  CT (CKA_OTP_SERVICE_IDENTIFIER, "otp-service-identifier")
138
  CT (CKA_OTP_SERVICE_LOGO, "otp-service-logo")
139
  CT (CKA_OTP_SERVICE_LOGO_TYPE, "otp-service-logo-type")
140
  CT (CKA_OTP_COUNTER, "otp-counter")
141
  CT (CKA_OTP_TIME, "otp-time")
142
  CT (CKA_GOSTR3410_PARAMS, "gostr3410-params")
143
  CT (CKA_GOSTR3411_PARAMS, "gostr3411-params")
144
  CT (CKA_GOST28147_PARAMS, "gost28147-params")
145
  CT (CKA_HW_FEATURE_TYPE, "hw-feature-type")
146
  CT (CKA_RESET_ON_INIT, "reset-on-init")
147
  CT (CKA_HAS_RESET, "has-reset")
148
  CT (CKA_PIXEL_X, "pixel-x")
149
  CT (CKA_PIXEL_Y, "pixel-y")
150
  CT (CKA_RESOLUTION, "resolution")
151
  CT (CKA_CHAR_ROWS, "char-rows")
152
  CT (CKA_CHAR_COLUMNS, "char-columns")
153
  CT (CKA_COLOR, "color")
154
  CT (CKA_BITS_PER_PIXEL, "bits-per-pixel")
155
  CT (CKA_CHAR_SETS, "char-sets")
156
  CT (CKA_ENCODING_METHODS, "encoding-methods")
157
  CT (CKA_MIME_TYPES, "mime-types")
158
  CT (CKA_MECHANISM_TYPE, "mechanism-type")
159
  CT (CKA_REQUIRED_CMS_ATTRIBUTES, "required-cms-attributes")
160
  CT (CKA_DEFAULT_CMS_ATTRIBUTES, "default-cms-attributes")
161
  CT (CKA_SUPPORTED_CMS_ATTRIBUTES, "supported-cms-attributes")
162
  CT (CKA_PROFILE_ID, "profile-id")
163
  CT (CKA_X2RATCHET_BAG, "x2ratchet-bag")
164
  CT (CKA_X2RATCHET_BAGSIZE, "x2ratchet-bagsize")
165
  CT (CKA_X2RATCHET_BOBS1STMSG, "x2ratchet-bobs1stmsg")
166
  CT (CKA_X2RATCHET_CKR, "x2ratchet-ckr")
167
  CT (CKA_X2RATCHET_CKS, "x2ratchet-cks")
168
  CT (CKA_X2RATCHET_DHP, "x2ratchet-dhp")
169
  CT (CKA_X2RATCHET_DHR, "x2ratchet-dhr")
170
  CT (CKA_X2RATCHET_DHS, "x2ratchet-dhs")
171
  CT (CKA_X2RATCHET_HKR, "x2ratchet-hkr")
172
  CT (CKA_X2RATCHET_HKS, "x2ratchet-hks")
173
  CT (CKA_X2RATCHET_ISALICE, "x2ratchet-isalice")
174
  CT (CKA_X2RATCHET_NHKR, "x2ratchet-nhkr")
175
  CT (CKA_X2RATCHET_NHKS, "x2ratchet-nhks")
176
  CT (CKA_X2RATCHET_NR, "x2ratchet-nr")
177
  CT (CKA_X2RATCHET_NS, "x2ratchet-ns")
178
  CT (CKA_X2RATCHET_PNS, "x2ratchet-pns")
179
  CT (CKA_X2RATCHET_RK, "x2ratchet-rk")
180
  CT (CKA_HSS_LEVELS, "hss-levels")
181
  CT (CKA_HSS_LMS_TYPE, "hss-lms-type")
182
  CT (CKA_HSS_LMOTS_TYPE, "hss-lmots-type")
183
  CT (CKA_HSS_LMS_TYPES, "hss-lms-types")
184
  CT (CKA_HSS_LMOTS_TYPES, "hss-lmots-types")
185
  CT (CKA_HSS_KEYS_REMAINING, "hss-keys-remaining")
186
  CT (CKA_PARAMETER_SET, "parameter-set")
187
  CT (CKA_OBJECT_VALIDATION_FLAGS, "object-validation-flag")
188
  CT (CKA_VALIDATION_TYPE, "validation-type")
189
  CT (CKA_VALIDATION_VERSION, "validation-version")
190
  CT (CKA_VALIDATION_LEVEL, "validation-level")
191
  CT (CKA_VALIDATION_MODULE_ID, "validation-module-id")
192
  CT (CKA_VALIDATION_FLAG, "validation-flag")
193
  CT (CKA_VALIDATION_AUTHORITY_TYPE, "validation-authority-type")
194
  CT (CKA_VALIDATION_COUNTRY, "validation-country")
195
  CT (CKA_VALIDATION_CERTIFICATE_IDENTIFIER, "validation-certificate-identifier")
196
  CT (CKA_VALIDATION_CERTIFICATE_URI, "validation-certificate-uri")
197
  CT (CKA_VALIDATION_VENDOR_URI, "validation-vendor-uri")
198
  CT (CKA_VALIDATION_PROFILE, "validation-profile")
199
  CT (CKA_ENCAPSULATE_TEMPLATE, "encapsulate-template")
200
  CT (CKA_DECAPSULATE_TEMPLATE, "decapsulate_template")
201
  CT (CKA_TRUST_SERVER_AUTH, "trust-server-auth")
202
  CT (CKA_TRUST_CLIENT_AUTH, "trust-client-auth")
203
  CT (CKA_TRUST_CODE_SIGNING, "trust-code-signing")
204
  CT (CKA_TRUST_EMAIL_PROTECTION, "trust-email-protection")
205
  CT (CKA_TRUST_IPSEC_IKE, "trust-ipsec-ike")
206
  CT (CKA_TRUST_TIME_STAMPING, "trust-time-stamping")
207
  CT (CKA_TRUST_OCSP_SIGNING, "trust-ocsp-signing")
208
  CT (CKA_ENCAPSULATE, "encapsulate")
209
  CT (CKA_DECAPSULATE, "decapsulate")
210
  CT (CKA_HASH_OF_CERTIFICATE, "hash-of-certificate")
211
  CT (CKA_PUBLIC_CRC64_VALUE, "public-crc64-value")
212
  CT (CKA_SEED, "seed")
213
  CT (CKA_WRAP_TEMPLATE, "wrap-template")
214
  CT (CKA_UNWRAP_TEMPLATE, "unwrap-template")
215
  CT (CKA_DERIVE_TEMPLATE, "derive-template")
216
  CT (CKA_ALLOWED_MECHANISMS, "allowed-mechanisms")
217
  CT (CKA_IBM_OPAQUE, "ibm-opaque")
218
  CT (CKA_IBM_OPAQUE_REENC, "ibm-opaque-reenc")
219
  CT (CKA_IBM_OPAQUE_OLD, "ibm-opaque-old")
220
  CT (CKA_IBM_KYBER_MODE, "ibm-kyber-mode")
221
  CT (CKA_IBM_DILITHIUM_MODE, "ibm-dilithium-mode")
222
  CT (CKA_IBM_RESTRICTABLE, "ibm-restrictable")
223
  CT (CKA_IBM_NEVER_MODIFIABLE, "ibm-never-modifiable")
224
  CT (CKA_IBM_RETAINKEY, "ibm-retainkey")
225
  CT (CKA_IBM_ATTRBOUND, "ibm-attrbound")
226
  CT (CKA_IBM_KEYTYPE, "ibm-keytype")
227
  CT (CKA_IBM_CV, "ibm-cv")
228
  CT (CKA_IBM_MACKEY, "ibm-mackey")
229
  CT (CKA_IBM_USE_AS_DATA, "ibm-use-as-data")
230
  CT (CKA_IBM_STRUCT_PARAMS, "ibm-struct-params")
231
  CT (CKA_IBM_STD_COMPLIANCE1, "ibm-std_compliance1")
232
  CT (CKA_IBM_PROTKEY_EXTRACTABLE, "ibm-protkey-extractable")
233
  CT (CKA_IBM_PROTKEY_NEVER_EXTRACTABLE, "ibm-protkey-never-extractable")
234
  CT (CKA_IBM_DILITHIUM_KEYFORM, "ibm-dilithium-keyform")
235
  CT (CKA_IBM_DILITHIUM_RHO, "ibm-dilithium-rho")
236
  CT (CKA_IBM_DILITHIUM_SEED, "ibm-dilithium-seed")
237
  CT (CKA_IBM_DILITHIUM_TR, "ibm-dilithium-tr")
238
  CT (CKA_IBM_DILITHIUM_S1, "ibm-dilithium-s1")
239
  CT (CKA_IBM_DILITHIUM_S2, "ibm-dilithium-s2")
240
  CT (CKA_IBM_DILITHIUM_T0, "ibm-dilithium-t0")
241
  CT (CKA_IBM_DILITHIUM_T1, "ibm-dilithium-t1")
242
  CT (CKA_IBM_KYBER_KEYFORM, "ibm-kyber-keyform")
243
  CT (CKA_IBM_KYBER_PK, "ibm-kyber-pk")
244
  CT (CKA_IBM_KYBER_SK, "ibm-kyber-sk")
245
  CT (CKA_IBM_OPAQUE_PKEY, "ibm-opaque-pkey")
246
  CT (CKA_IBM_CCA_AES_KEY_MODE, "ibm-cca-aes-key-mode")
247
  CT (CKA_NSS_URL, "nss-url")
248
  CT (CKA_NSS_EMAIL, "nss-email")
249
  CT (CKA_NSS_SMIME_INFO, "nss-smime-constant")
250
  CT (CKA_NSS_SMIME_TIMESTAMP, "nss-smime-timestamp")
251
  CT (CKA_NSS_PKCS8_SALT, "nss-pkcs8-salt")
252
  CT (CKA_NSS_PASSWORD_CHECK, "nss-password-check")
253
  CT (CKA_NSS_EXPIRES, "nss-expires")
254
  CT (CKA_NSS_KRL, "nss-krl")
255
  CT (CKA_NSS_PQG_COUNTER, "nss-pqg-counter")
256
  CT (CKA_NSS_PQG_SEED, "nss-pqg-seed")
257
  CT (CKA_NSS_PQG_H, "nss-pqg-h")
258
  CT (CKA_NSS_PQG_SEED_BITS, "nss-pqg-seed-bits")
259
  CT (CKA_NSS_MODULE_SPEC, "nss-module-spec")
260
  CT (CKA_NSS_MOZILLA_CA_POLICY, "nss-mozilla-ca-policy")
261
  CT (CKA_NSS_SERVER_DISTRUST_AFTER, "nss-server-distrust-after")
262
  CT (CKA_NSS_EMAIL_DISTRUST_AFTER, "nss-email-distrust-after")
263
  CT (CKA_NSS_TRUST_DIGITAL_SIGNATURE, "nss-trust-digital-signature")
264
  CT (CKA_NSS_TRUST_NON_REPUDIATION, "nss-trust-non-repudiation")
265
  CT (CKA_NSS_TRUST_KEY_ENCIPHERMENT, "nss-trust-key-encipherment")
266
  CT (CKA_NSS_TRUST_DATA_ENCIPHERMENT, "nss-trust-data-encipherment")
267
  CT (CKA_NSS_TRUST_KEY_AGREEMENT, "nss-trust-key-agreement")
268
  CT (CKA_NSS_TRUST_KEY_CERT_SIGN, "nss-trust-key-cert-sign")
269
  CT (CKA_NSS_TRUST_CRL_SIGN, "nss-trust-crl-sign")
270
  CT (CKA_NSS_TRUST_SERVER_AUTH, "nss-trust-server-auth")
271
  CT (CKA_NSS_TRUST_CLIENT_AUTH, "nss-trust-client-auth")
272
  CT (CKA_NSS_TRUST_CODE_SIGNING, "nss-trust-code-signing")
273
  CT (CKA_NSS_TRUST_EMAIL_PROTECTION, "nss-trust-email-protection")
274
  CT (CKA_NSS_TRUST_IPSEC_END_SYSTEM, "nss-trust-ipsec-end-system")
275
  CT (CKA_NSS_TRUST_IPSEC_TUNNEL, "nss-trust-ipsec-tunnel")
276
  CT (CKA_NSS_TRUST_IPSEC_USER, "nss-trust-ipsec-user")
277
  CT (CKA_NSS_TRUST_TIME_STAMPING, "nss-trust-time-stamping")
278
  CT (CKA_NSS_TRUST_STEP_UP_APPROVED, "nss-trust-step-up-approved")
279
  CT (CKA_NSS_CERT_SHA1_HASH, "nss-cert-sha1-hash")
280
  CT (CKA_NSS_CERT_MD5_HASH, "nss-cert-md5-hash")
281
  CT (CKA_X_ASSERTION_TYPE, "x-assertion-type")
282
  CT (CKA_X_CERTIFICATE_VALUE, "x-certificate-value")
283
  CT (CKA_X_PURPOSE, "x-purpose")
284
  CT (CKA_X_PEER, "x-peer")
285
  CT (CKA_X_DISTRUSTED, "x-distrusted")
286
  CT (CKA_X_CRITICAL, "x-critical")
287
  { CKA_INVALID },
288
};
289
290
const p11_constant p11_constant_classes[] = {
291
  CT (CKO_DATA, "data")
292
  CT (CKO_CERTIFICATE, "certificate")
293
  CT (CKO_PUBLIC_KEY, "public-key")
294
  CT (CKO_PRIVATE_KEY, "private-key")
295
  CT (CKO_SECRET_KEY, "secret-key")
296
  CT (CKO_HW_FEATURE, "hw-feature")
297
  CT (CKO_DOMAIN_PARAMETERS, "domain-parameters")
298
  CT (CKO_MECHANISM, "mechanism")
299
  CT (CKO_PROFILE, "profile")
300
  CT (CKO_VALIDATION, "validation")
301
  CT (CKO_TRUST, "trust")
302
  CT (CKO_NSS_CRL, "nss-crl")
303
  CT (CKO_NSS_SMIME, "nss-smime")
304
  CT (CKO_NSS_TRUST, "nss-trust")
305
  CT (CKO_NSS_BUILTIN_ROOT_LIST, "nss-builtin-root-list")
306
  CT (CKO_NSS_NEWSLOT, "nss-newslot")
307
  CT (CKO_NSS_DELSLOT, "nss-delslot")
308
  CT (CKO_X_TRUST_ASSERTION, "x-trust-assertion")
309
  CT (CKO_X_CERTIFICATE_EXTENSION, "x-certificate-extension")
310
  { CKA_INVALID },
311
};
312
313
const p11_constant p11_constant_trusts[] = {
314
  CT (CKT_NSS_TRUSTED, "nss-trusted")
315
  CT (CKT_NSS_TRUSTED_DELEGATOR, "nss-trusted-delegator")
316
  CT (CKT_NSS_MUST_VERIFY_TRUST, "nss-must-verify-trust")
317
  CT (CKT_NSS_TRUST_UNKNOWN, "nss-trust-unknown")
318
  CT (CKT_NSS_NOT_TRUSTED, "nss-not-trusted")
319
  CT (CKT_NSS_VALID_DELEGATOR, "nss-valid-delegator")
320
  { CKA_INVALID },
321
};
322
323
const p11_constant p11_constant_certs[] = {
324
  CT (CKC_X_509, "x-509")
325
  CT (CKC_X_509_ATTR_CERT, "x-509-attr-cert")
326
  CT (CKC_WTLS, "wtls")
327
  { CKA_INVALID },
328
};
329
330
const p11_constant p11_constant_keys[] = {
331
  CT (CKK_RSA, "rsa")
332
  CT (CKK_DSA, "dsa")
333
  CT (CKK_DH, "dh")
334
  /* CT (CKK_ECDSA) */
335
  CT (CKK_EC, "ec")
336
  CT (CKK_X9_42_DH, "x9-42-dh")
337
  CT (CKK_KEA, "kea")
338
  CT (CKK_GENERIC_SECRET, "generic-secret")
339
  CT (CKK_RC2, "rc2")
340
  CT (CKK_RC4, "rc4")
341
  CT (CKK_DES, "des")
342
  CT (CKK_DES2, "des2")
343
  CT (CKK_DES3, "des3")
344
  CT (CKK_CAST, "cast")
345
  CT (CKK_CAST3, "cast3")
346
  CT (CKK_CAST128, "cast128")
347
  CT (CKK_RC5, "rc5")
348
  CT (CKK_IDEA, "idea")
349
  CT (CKK_SKIPJACK, "skipjack")
350
  CT (CKK_BATON, "baton")
351
  CT (CKK_JUNIPER, "juniper")
352
  CT (CKK_CDMF, "cdmf")
353
  CT (CKK_AES, "aes")
354
  CT (CKK_BLOWFISH, "blowfish")
355
  CT (CKK_TWOFISH, "twofish")
356
  CT (CKK_SECURID, "ckk-securid")
357
  CT (CKK_HOTP, "ckk-hotp")
358
  CT (CKK_ACTI, "ckk-acti")
359
  CT (CKK_CAMELLIA, "camellia")
360
  CT (CKK_ARIA, "aria")
361
  CT (CKK_MD5_HMAC, "ckk-md5-hmac")
362
  CT (CKK_SHA_1_HMAC, "ckk-sha-1-hmac")
363
  CT (CKK_RIPEMD128_HMAC, "ckk-ripemd128-hmac")
364
  CT (CKK_RIPEMD160_HMAC, "ckk-ripemd160-hmac")
365
  CT (CKK_SHA256_HMAC, "ckk-sha256-hmac")
366
  CT (CKK_SHA384_HMAC, "ckk-sha384-hmac")
367
  CT (CKK_SHA512_HMAC, "ckk-sha512-hmac")
368
  CT (CKK_SHA224_HMAC, "ckk-sha224-hmac")
369
  CT (CKK_SEED, "ckk-seed")
370
  CT (CKK_GOSTR3410, "ckk-gostr3410")
371
  CT (CKK_GOSTR3411, "ckk-gostr3411")
372
  CT (CKK_GOST28147, "ckk-gost28147")
373
  CT (CKK_CHACHA20, "ckk-chacha20")
374
  CT (CKK_POLY1305, "ckk-poly1305")
375
  CT (CKK_AES_XTS, "ckk-aes-xts")
376
  CT (CKK_SHA3_224_HMAC, "ckk-sha3-224-hmac")
377
  CT (CKK_SHA3_256_HMAC, "ckk-sha3-256-hmac")
378
  CT (CKK_SHA3_384_HMAC, "ckk-sha3-384-hmac")
379
  CT (CKK_SHA3_512_HMAC, "ckk-sha3-512-hmac")
380
  CT (CKK_BLAKE2B_160_HMAC, "ckk-blake2b-160-hmac")
381
  CT (CKK_BLAKE2B_256_HMAC, "ckk-blake2b-256-hmac")
382
  CT (CKK_BLAKE2B_384_HMAC, "ckk-blake2b-384-hmac")
383
  CT (CKK_BLAKE2B_512_HMAC, "ckk-blake2b-512-hmac")
384
  CT (CKK_SALSA20, "ckk-salsa20")
385
  CT (CKK_X2RATCHET, "x2ratchet")
386
  CT (CKK_EC_EDWARDS, "ec-edwards")
387
  CT (CKK_EC_MONTGOMERY, "ec-montgomery")
388
  CT (CKK_HKDF, "hkdf")
389
  CT (CKK_SHA512_224_HMAC, "ckk-sha512-224-hmac")
390
  CT (CKK_SHA512_256_HMAC, "ckk-sha512-256-hmac")
391
  CT (CKK_SHA512_T_HMAC, "ckk-sha512-t-hmac")
392
  CT (CKK_HSS, "ckk-hss")
393
  CT (CKK_XMSS, "ckk-xmss")
394
  CT (CKK_XMSSMT, "ckk-xmssmt")
395
  CT (CKK_ML_KEM, "ckk-ml-kem")
396
  CT (CKK_ML_DSA, "ckk-ml-dsa")
397
  CT (CKK_SLH_DSA, "ckk-slh-dsa")
398
  CT (CKK_IBM_PQC_DILITHIUM, "ibm-dilithium")
399
  CT (CKK_NSS_PKCS8, "nss-pkcs8")
400
  { CKA_INVALID },
401
};
402
403
const p11_constant p11_constant_asserts[] = {
404
  CT (CKT_X_DISTRUSTED_CERTIFICATE, "x-distrusted-certificate")
405
  CT (CKT_X_PINNED_CERTIFICATE, "x-pinned-certificate")
406
  CT (CKT_X_ANCHORED_CERTIFICATE, "x-anchored-certificate")
407
  { CKA_INVALID },
408
};
409
410
const p11_constant p11_constant_categories[] = {
411
  { 0, "unspecified", { "unspecified" } },
412
  { 1, "token-user",  { "token-user" } },
413
  { 2, "authority",  { "authority" } },
414
  { 3, "other-entry",  { "other-entry" } },
415
  { CKA_INVALID },
416
};
417
418
const p11_constant p11_constant_users[] = {
419
  CT (CKU_SO, NULL)
420
  CT (CKU_USER, NULL)
421
  CT (CKU_CONTEXT_SPECIFIC, NULL)
422
  { CKA_INVALID },
423
};
424
425
const p11_constant p11_constant_states[] = {
426
  CT (CKS_RO_PUBLIC_SESSION, NULL)
427
  CT (CKS_RO_USER_FUNCTIONS, NULL)
428
  CT (CKS_RW_PUBLIC_SESSION, NULL)
429
  CT (CKS_RW_USER_FUNCTIONS, NULL)
430
  CT (CKS_RW_SO_FUNCTIONS, NULL)
431
  { CKA_INVALID },
432
};
433
434
const p11_constant p11_constant_returns[] = {
435
  CT (CKR_OK, NULL)
436
  CT (CKR_CANCEL, NULL)
437
  CT (CKR_HOST_MEMORY, NULL)
438
  CT (CKR_SLOT_ID_INVALID, NULL)
439
  CT (CKR_GENERAL_ERROR, NULL)
440
  CT (CKR_FUNCTION_FAILED, NULL)
441
  CT (CKR_ARGUMENTS_BAD, NULL)
442
  CT (CKR_NO_EVENT, NULL)
443
  CT (CKR_NEED_TO_CREATE_THREADS, NULL)
444
  CT (CKR_CANT_LOCK, NULL)
445
  CT (CKR_ATTRIBUTE_READ_ONLY, NULL)
446
  CT (CKR_ATTRIBUTE_SENSITIVE, NULL)
447
  CT (CKR_ATTRIBUTE_TYPE_INVALID, NULL)
448
  CT (CKR_ATTRIBUTE_VALUE_INVALID, NULL)
449
  CT (CKR_ACTION_PROHIBITED, NULL)
450
  CT (CKR_DATA_INVALID, NULL)
451
  CT (CKR_DATA_LEN_RANGE, NULL)
452
  CT (CKR_DEVICE_ERROR, NULL)
453
  CT (CKR_DEVICE_MEMORY, NULL)
454
  CT (CKR_DEVICE_REMOVED, NULL)
455
  CT (CKR_ENCRYPTED_DATA_INVALID, NULL)
456
  CT (CKR_ENCRYPTED_DATA_LEN_RANGE, NULL)
457
  CT (CKR_AEAD_DECRYPT_FAILED, NULL)
458
  CT (CKR_FUNCTION_CANCELED, NULL)
459
  CT (CKR_FUNCTION_NOT_PARALLEL, NULL)
460
  CT (CKR_FUNCTION_NOT_SUPPORTED, NULL)
461
  CT (CKR_KEY_HANDLE_INVALID, NULL)
462
  CT (CKR_KEY_SIZE_RANGE, NULL)
463
  CT (CKR_KEY_TYPE_INCONSISTENT, NULL)
464
  CT (CKR_KEY_NOT_NEEDED, NULL)
465
  CT (CKR_KEY_CHANGED, NULL)
466
  CT (CKR_KEY_NEEDED, NULL)
467
  CT (CKR_KEY_INDIGESTIBLE, NULL)
468
  CT (CKR_KEY_FUNCTION_NOT_PERMITTED, NULL)
469
  CT (CKR_KEY_NOT_WRAPPABLE, NULL)
470
  CT (CKR_KEY_UNEXTRACTABLE, NULL)
471
  CT (CKR_MECHANISM_INVALID, NULL)
472
  CT (CKR_MECHANISM_PARAM_INVALID, NULL)
473
  CT (CKR_OBJECT_HANDLE_INVALID, NULL)
474
  CT (CKR_OPERATION_ACTIVE, NULL)
475
  CT (CKR_OPERATION_NOT_INITIALIZED, NULL)
476
  CT (CKR_PIN_INCORRECT, NULL)
477
  CT (CKR_PIN_INVALID, NULL)
478
  CT (CKR_PIN_LEN_RANGE, NULL)
479
  CT (CKR_PIN_EXPIRED, NULL)
480
  CT (CKR_PIN_LOCKED, NULL)
481
  CT (CKR_SESSION_CLOSED, NULL)
482
  CT (CKR_SESSION_COUNT, NULL)
483
  CT (CKR_SESSION_HANDLE_INVALID, NULL)
484
  CT (CKR_SESSION_PARALLEL_NOT_SUPPORTED, NULL)
485
  CT (CKR_SESSION_READ_ONLY, NULL)
486
  CT (CKR_SESSION_EXISTS, NULL)
487
  CT (CKR_SESSION_READ_ONLY_EXISTS, NULL)
488
  CT (CKR_SESSION_READ_WRITE_SO_EXISTS, NULL)
489
  CT (CKR_SIGNATURE_INVALID, NULL)
490
  CT (CKR_SIGNATURE_LEN_RANGE, NULL)
491
  CT (CKR_TEMPLATE_INCOMPLETE, NULL)
492
  CT (CKR_TEMPLATE_INCONSISTENT, NULL)
493
  CT (CKR_TOKEN_NOT_PRESENT, NULL)
494
  CT (CKR_TOKEN_NOT_RECOGNIZED, NULL)
495
  CT (CKR_TOKEN_WRITE_PROTECTED, NULL)
496
  CT (CKR_UNWRAPPING_KEY_HANDLE_INVALID, NULL)
497
  CT (CKR_UNWRAPPING_KEY_SIZE_RANGE, NULL)
498
  CT (CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT, NULL)
499
  CT (CKR_USER_ALREADY_LOGGED_IN, NULL)
500
  CT (CKR_USER_NOT_LOGGED_IN, NULL)
501
  CT (CKR_USER_PIN_NOT_INITIALIZED, NULL)
502
  CT (CKR_USER_TYPE_INVALID, NULL)
503
  CT (CKR_USER_ANOTHER_ALREADY_LOGGED_IN, NULL)
504
  CT (CKR_USER_TOO_MANY_TYPES, NULL)
505
  CT (CKR_WRAPPED_KEY_INVALID, NULL)
506
  CT (CKR_WRAPPED_KEY_LEN_RANGE, NULL)
507
  CT (CKR_WRAPPING_KEY_HANDLE_INVALID, NULL)
508
  CT (CKR_WRAPPING_KEY_SIZE_RANGE, NULL)
509
  CT (CKR_WRAPPING_KEY_TYPE_INCONSISTENT, NULL)
510
  CT (CKR_RANDOM_SEED_NOT_SUPPORTED, NULL)
511
  CT (CKR_RANDOM_NO_RNG, NULL)
512
  CT (CKR_DOMAIN_PARAMS_INVALID, NULL)
513
  CT (CKR_CURVE_NOT_SUPPORTED, NULL)
514
  CT (CKR_BUFFER_TOO_SMALL, NULL)
515
  CT (CKR_SAVED_STATE_INVALID, NULL)
516
  CT (CKR_INFORMATION_SENSITIVE, NULL)
517
  CT (CKR_STATE_UNSAVEABLE, NULL)
518
  CT (CKR_CRYPTOKI_NOT_INITIALIZED, NULL)
519
  CT (CKR_CRYPTOKI_ALREADY_INITIALIZED, NULL)
520
  CT (CKR_MUTEX_BAD, NULL)
521
  CT (CKR_MUTEX_NOT_LOCKED, NULL)
522
  CT (CKR_NEW_PIN_MODE, NULL)
523
  CT (CKR_NEXT_OTP, NULL)
524
  CT (CKR_EXCEEDED_MAX_ITERATIONS, NULL)
525
  CT (CKR_FIPS_SELF_TEST_FAILED, NULL)
526
  CT (CKR_LIBRARY_LOAD_FAILED, NULL)
527
  CT (CKR_PIN_TOO_WEAK, NULL)
528
  CT (CKR_PUBLIC_KEY_INVALID, NULL)
529
  CT (CKR_FUNCTION_REJECTED, NULL)
530
  CT (CKR_TOKEN_RESOURCE_EXCEEDED, NULL)
531
  CT (CKR_OPERATION_CANCEL_FAILED, NULL)
532
  CT (CKR_KEY_EXHAUSTED, NULL)
533
  CT (CKR_PENDING, NULL)
534
  CT (CKR_SESSION_ASYNC_NOT_SUPPORTED, NULL)
535
  CT (CKR_SEED_RANDOM_REQUIRED, NULL)
536
  CT (CKR_OPERATION_NOT_VALIDATED, NULL)
537
  CT (CKR_TOKEN_NOT_INITIALIZED, NULL)
538
  CT (CKR_PARAMETER_SET_NOT_SUPPORTED, NULL)
539
  { CKA_INVALID },
540
};
541
542
const p11_constant p11_constant_mechanisms[] = {
543
  CT (CKM_RSA_PKCS_KEY_PAIR_GEN, "rsa-pkcs-key-pair-gen")
544
  CT (CKM_RSA_PKCS, "rsa-pkcs")
545
  CT (CKM_RSA_9796, "rsa-9796")
546
  CT (CKM_RSA_X_509, "rsa-x-509")
547
  CT (CKM_MD2_RSA_PKCS, "md2-rsa-pkcs")
548
  CT (CKM_MD5_RSA_PKCS, "md5-rsa-pkcs")
549
  CT (CKM_SHA1_RSA_PKCS, "sha1-rsa-pkcs")
550
  CT (CKM_RIPEMD128_RSA_PKCS, "ripemd128-rsa-pkcs")
551
  CT (CKM_RIPEMD160_RSA_PKCS, "ripemd160-rsa-pkcs")
552
  CT (CKM_RSA_PKCS_OAEP, "rsa-pkcs-oaep")
553
  CT (CKM_RSA_X9_31_KEY_PAIR_GEN, "rsa-x9-31-key-pair-gen")
554
  CT (CKM_RSA_X9_31, "rsa-x9-31")
555
  CT (CKM_SHA1_RSA_X9_31, "sha1-rsa-x9-31")
556
  CT (CKM_RSA_PKCS_PSS, "rsa-pkcs-pss")
557
  CT (CKM_SHA1_RSA_PKCS_PSS, "sha1-rsa-pkcs-pss")
558
  CT (CKM_ML_KEM_KEY_PAIR_GEN, "ml-kem-key-pair-gen")
559
  CT (CKM_DSA_KEY_PAIR_GEN, "dsa-key-pair-gen")
560
  CT (CKM_DSA, NULL) /* "dsa" */
561
  CT (CKM_DSA_SHA1, "dsa-sha1")
562
  CT (CKM_DSA_SHA224, "dsa-sha224")
563
  CT (CKM_DSA_SHA256, "dsa-sha256")
564
  CT (CKM_DSA_SHA384, "dsa-sha384")
565
  CT (CKM_DSA_SHA512, "dsa-sha512")
566
  CT (CKM_ML_KEM, "ml-kem")
567
  CT (CKM_DSA_SHA3_224, "dsa-sha3-224")
568
  CT (CKM_DSA_SHA3_256, "dsa-sha3-256")
569
  CT (CKM_DSA_SHA3_384, "dsa-sha3-384")
570
  CT (CKM_DSA_SHA3_512, "dsa-sha3-512")
571
  CT (CKM_ML_DSA_KEY_PAIR_GEN, "ml-dsa-key-pair-gen")
572
  CT (CKM_ML_DSA, "ml-dsa")
573
  CT (CKM_HASH_ML_DSA, "hash-ml-dsa")
574
  CT (CKM_DH_PKCS_KEY_PAIR_GEN, "dh-pkcs-key-pair-gen")
575
  CT (CKM_DH_PKCS_DERIVE, "dh-pkcs-derive")
576
  CT (CKM_HASH_ML_DSA_SHA224, "hash-ml-dsa-sha224")
577
  CT (CKM_HASH_ML_DSA_SHA256, "hash-ml-dsa-sha256")
578
  CT (CKM_HASH_ML_DSA_SHA384, "hash-ml-dsa-sha384")
579
  CT (CKM_HASH_ML_DSA_SHA512, "hash-ml-dsa-sha512")
580
  CT (CKM_HASH_ML_DSA_SHA3_224, "hash-ml-dsa-sha3-224")
581
  CT (CKM_HASH_ML_DSA_SHA3_256, "hash-ml-dsa-sha3-256")
582
  CT (CKM_HASH_ML_DSA_SHA3_384, "hash-ml-dsa-sha3-384")
583
  CT (CKM_HASH_ML_DSA_SHA3_512, "hash-ml-dsa-sha3-512")
584
  CT (CKM_HASH_ML_DSA_SHAKE128, "hash-ml-dsa-shake128")
585
  CT (CKM_HASH_ML_DSA_SHAKE256, "hash-ml-dsa-shake256")
586
  CT (CKM_SLH_DSA_KEY_PAIR_GEN, "slh-dsa-key-pair-gen")
587
  CT (CKM_SLH_DSA, "slh-dsa")
588
  CT (CKM_X9_42_DH_KEY_PAIR_GEN, "x9-42-dh-key-pair-gen")
589
  CT (CKM_X9_42_DH_DERIVE, "x9-42-dh-derive")
590
  CT (CKM_X9_42_DH_HYBRID_DERIVE, "x9-42-dh-hybrid-derive")
591
  CT (CKM_X9_42_MQV_DERIVE, "x9-42-mqv-derive")
592
  CT (CKM_HASH_SLH_DSA, "hash-slh-dsa")
593
  CT (CKM_HASH_SLH_DSA_SHA224, "hash-slh-dsa-sha224")
594
  CT (CKM_HASH_SLH_DSA_SHA256, "hash-slh-dsa-sha256")
595
  CT (CKM_HASH_SLH_DSA_SHA384, "hash-slh-dsa-sha384")
596
  CT (CKM_HASH_SLH_DSA_SHA512, "hash-slh-dsa-sha512")
597
  CT (CKM_HASH_SLH_DSA_SHA3_224, "hash-slh-dsa-sha3-224")
598
  CT (CKM_HASH_SLH_DSA_SHA3_256, "hash-slh-dsa-sha3-256")
599
  CT (CKM_HASH_SLH_DSA_SHA3_384, "hash-slh-dsa-sha3-384")
600
  CT (CKM_HASH_SLH_DSA_SHA3_512, "hash-slh-dsa-sha3-512")
601
  CT (CKM_HASH_SLH_DSA_SHAKE128, "hash-slh-dsa-shake128")
602
  CT (CKM_HASH_SLH_DSA_SHAKE256, "hash-slh-dsa-shake256")
603
  CT (CKM_SHA256_RSA_PKCS, "sha256-rsa-pkcs")
604
  CT (CKM_SHA384_RSA_PKCS, "sha384-rsa-pkcs")
605
  CT (CKM_SHA512_RSA_PKCS, "sha512-rsa-pkcs")
606
  CT (CKM_SHA256_RSA_PKCS_PSS, "sha256-rsa-pkcs-pss")
607
  CT (CKM_SHA384_RSA_PKCS_PSS, "sha384-rsa-pkcs-pss")
608
  CT (CKM_SHA512_RSA_PKCS_PSS, "sha512-rsa-pkcs-pss")
609
  CT (CKM_SHA224_RSA_PKCS, "sha224-rsa-pkcs")
610
  CT (CKM_SHA224_RSA_PKCS_PSS, "sha224-rsa-pkcs-pss")
611
  CT (CKM_SHA512_224, "sha512-224")
612
  CT (CKM_SHA512_224_HMAC, "sha512-224-hmac")
613
  CT (CKM_SHA512_224_HMAC_GENERAL, "sha512-224-hmac-general")
614
  CT (CKM_SHA512_224_KEY_DERIVATION, "sha512-224-key-derivation")
615
  CT (CKM_SHA512_256, "sha512-256")
616
  CT (CKM_SHA512_256_HMAC, "sha512-256-hmac")
617
  CT (CKM_SHA512_256_HMAC_GENERAL, "sha512-256-hmac-general")
618
  CT (CKM_SHA512_256_KEY_DERIVATION, "sha512-256-key-derivation")
619
  CT (CKM_SHA512_T, "sha512-t")
620
  CT (CKM_SHA512_T_HMAC, "sha512-t-hmac")
621
  CT (CKM_SHA512_T_HMAC_GENERAL, "sha512-t-hmac-general")
622
  CT (CKM_SHA512_T_KEY_DERIVATION, "sha512-t-key-derivation")
623
  CT (CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE, "tls12-extended-master-key-derive")
624
  CT (CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE_DH, "tls12-extended-master-key-derive-dh")
625
  CT (CKM_SHA3_256_RSA_PKCS, "sha3-256-rsa-pkcs")
626
  CT (CKM_SHA3_384_RSA_PKCS, "sha3-384-rsa-pkcs")
627
  CT (CKM_SHA3_512_RSA_PKCS, "sha3-512-rsa-pkcs")
628
  CT (CKM_SHA3_256_RSA_PKCS_PSS, "sha3-256-rsa-pkcs-pss")
629
  CT (CKM_SHA3_384_RSA_PKCS_PSS, "sha3-384-rsa-pkcs-pss")
630
  CT (CKM_SHA3_512_RSA_PKCS_PSS, "sha3-512-rsa-pkcs-pss")
631
  CT (CKM_SHA3_224_RSA_PKCS, "sha3-224-rsa-pkcs")
632
  CT (CKM_SHA3_224_RSA_PKCS_PSS, "sha3-224-rsa-pkcs-pss")
633
  CT (CKM_RC2_KEY_GEN, "rc2-key-gen")
634
  CT (CKM_RC2_ECB, "rc2-ecb")
635
  CT (CKM_RC2_CBC, "rc2-cbc")
636
  CT (CKM_RC2_MAC, "rc2-mac")
637
  CT (CKM_RC2_MAC_GENERAL, "rc2-mac-general")
638
  CT (CKM_RC2_CBC_PAD, "rc2-cbc-pad")
639
  CT (CKM_RC4_KEY_GEN, "rc4-key-gen")
640
  CT (CKM_RC4, NULL) /* "rc4" */
641
  CT (CKM_DES_KEY_GEN, "des-key-gen")
642
  CT (CKM_DES_ECB, "des-ecb")
643
  CT (CKM_DES_CBC, "des-cbc")
644
  CT (CKM_DES_MAC, "des-mac")
645
  CT (CKM_DES_MAC_GENERAL, "des-mac-general")
646
  CT (CKM_DES_CBC_PAD, "des-cbc-pad")
647
  CT (CKM_DES2_KEY_GEN, "des2-key-gen")
648
  CT (CKM_DES3_KEY_GEN, "des3-key-gen")
649
  CT (CKM_DES3_ECB, "des3-ecb")
650
  CT (CKM_DES3_CBC, "des3-cbc")
651
  CT (CKM_DES3_MAC, "des3-mac")
652
  CT (CKM_DES3_MAC_GENERAL, "des3-mac-general")
653
  CT (CKM_DES3_CBC_PAD, "des3-cbc-pad")
654
  CT (CKM_DES3_CMAC_GENERAL, "des3-cmac-general")
655
  CT (CKM_DES3_CMAC, "des3-cmac")
656
  CT (CKM_CDMF_KEY_GEN, "cdmf-key-gen")
657
  CT (CKM_CDMF_ECB, "cdmf-ecb")
658
  CT (CKM_CDMF_CBC, "cdmf-cbc")
659
  CT (CKM_CDMF_MAC, "cdmf-mac")
660
  CT (CKM_CDMF_MAC_GENERAL, "cdmf-mac-general")
661
  CT (CKM_CDMF_CBC_PAD, "cdmf-cbc-pad")
662
  CT (CKM_DES_OFB64, "des-ofb64")
663
  CT (CKM_DES_OFB8, "des-ofb8")
664
  CT (CKM_DES_CFB64, "des-cfb64")
665
  CT (CKM_DES_CFB8, "des-cfb8")
666
  CT (CKM_MD2, "md2")
667
  CT (CKM_MD2_HMAC, "md2-hmac")
668
  CT (CKM_MD2_HMAC_GENERAL, "md2-hmac-general")
669
  CT (CKM_MD5, "md5")
670
  CT (CKM_MD5_HMAC, "md5-hmac")
671
  CT (CKM_MD5_HMAC_GENERAL, "md5-hmac-general")
672
  CT (CKM_SHA_1, "sha-1")
673
  CT (CKM_SHA_1_HMAC, "sha-1-hmac")
674
  CT (CKM_SHA_1_HMAC_GENERAL, "sha-1-hmac-general")
675
  CT (CKM_RIPEMD128, "ripemd128")
676
  CT (CKM_RIPEMD128_HMAC, "ripemd128-hmac")
677
  CT (CKM_RIPEMD128_HMAC_GENERAL, "ripemd128-hmac-general")
678
  CT (CKM_RIPEMD160, "ripemd160")
679
  CT (CKM_RIPEMD160_HMAC, "ripemd160-hmac")
680
  CT (CKM_RIPEMD160_HMAC_GENERAL, "ripemd160-hmac-general")
681
  CT (CKM_SHA256, "sha256")
682
  CT (CKM_SHA256_HMAC, "sha256-hmac")
683
  CT (CKM_SHA256_HMAC_GENERAL, "sha256-hmac-general")
684
  CT (CKM_SHA224, "sha224")
685
  CT (CKM_SHA224_HMAC, "sha224-hmac")
686
  CT (CKM_SHA224_HMAC_GENERAL, "sha224-hmac-general")
687
  CT (CKM_SHA384, "sha384")
688
  CT (CKM_SHA384_HMAC, "sha384-hmac")
689
  CT (CKM_SHA384_HMAC_GENERAL, "sha384-hmac-general")
690
  CT (CKM_SHA512, "sha512")
691
  CT (CKM_SHA512_HMAC, "sha512-hmac")
692
  CT (CKM_SHA512_HMAC_GENERAL, "sha512-hmac-general")
693
  CT (CKM_SECURID_KEY_GEN, "securid-key-gen")
694
  CT (CKM_SECURID, "securid")
695
  CT (CKM_HOTP_KEY_GEN, "hotp-key-gen")
696
  CT (CKM_HOTP, "hotp")
697
  CT (CKM_ACTI, "acti")
698
  CT (CKM_ACTI_KEY_GEN, "acti-key-gen")
699
  CT (CKM_SHA3_256, "sha3-256")
700
  CT (CKM_SHA3_256_HMAC, "sha3-256-hmac")
701
  CT (CKM_SHA3_256_HMAC_GENERAL, "sha3-256-hmac-general")
702
  CT (CKM_SHA3_256_KEY_GEN, "sha3-256-key-gen")
703
  CT (CKM_SHA3_224, "sha3-224")
704
  CT (CKM_SHA3_224_HMAC, "sha3-224-hmac")
705
  CT (CKM_SHA3_224_HMAC_GENERAL, "sha3-224-hmac-general")
706
  CT (CKM_SHA3_224_KEY_GEN, "sha3-224-key-gen")
707
  CT (CKM_SHA3_384, "sha3-384")
708
  CT (CKM_SHA3_384_HMAC, "sha3-384-hmac")
709
  CT (CKM_SHA3_384_HMAC_GENERAL, "sha3-384-hmac-general")
710
  CT (CKM_SHA3_384_KEY_GEN, "sha3-384-key-gen")
711
  CT (CKM_SHA3_512, "sha3-512")
712
  CT (CKM_SHA3_512_HMAC, "sha3-512-hmac")
713
  CT (CKM_SHA3_512_HMAC_GENERAL, "sha3-512-hmac-general")
714
  CT (CKM_SHA3_512_KEY_GEN, "sha3-512-key-gen")
715
  CT (CKM_CAST_KEY_GEN, "cast-key-gen")
716
  CT (CKM_CAST_ECB, "cast-ecb")
717
  CT (CKM_CAST_CBC, "cast-cbc")
718
  CT (CKM_CAST_MAC, "cast-mac")
719
  CT (CKM_CAST_MAC_GENERAL, "cast-mac-general")
720
  CT (CKM_CAST_CBC_PAD, "cast-cbc-pad")
721
  CT (CKM_CAST3_KEY_GEN, "cast3-key-gen")
722
  CT (CKM_CAST3_ECB, "cast3-ecb")
723
  CT (CKM_CAST3_CBC, "cast3-cbc")
724
  CT (CKM_CAST3_MAC, "cast3-mac")
725
  CT (CKM_CAST3_MAC_GENERAL, "cast3-mac-general")
726
  CT (CKM_CAST3_CBC_PAD, "cast3-cbc-pad")
727
  CT (CKM_CAST5_KEY_GEN, "cast5-key-gen")
728
  /* CT (CKM_CAST128_KEY_GEN) */
729
  CT (CKM_CAST5_ECB, "cast5-ecb")
730
  /* CT (CKM_CAST128_ECB) */
731
  CT (CKM_CAST5_CBC, "cast5-cbc")
732
  /* CT (CKM_CAST128_CBC) */
733
  CT (CKM_CAST5_MAC, "cast5-mac")
734
  /* CT (CKM_CAST128_MAC) */
735
  CT (CKM_CAST5_MAC_GENERAL, "cast5-mac-general")
736
  /* CT (CKM_CAST128_MAC_GENERAL) */
737
  CT (CKM_CAST5_CBC_PAD, "cast5-cbc-pad")
738
  /* CT (CKM_CAST128_CBC_PAD) */
739
  CT (CKM_RC5_KEY_GEN, "rc5-key-gen")
740
  CT (CKM_RC5_ECB, "rc5-ecb")
741
  CT (CKM_RC5_CBC, "rc5-cbc")
742
  CT (CKM_RC5_MAC, "rc5-mac")
743
  CT (CKM_RC5_MAC_GENERAL, "rc5-mac-general")
744
  CT (CKM_RC5_CBC_PAD, "rc5-cbc-pad")
745
  CT (CKM_IDEA_KEY_GEN, "idea-key-gen")
746
  CT (CKM_IDEA_ECB, "idea-ecb")
747
  CT (CKM_IDEA_CBC, "idea-cbc")
748
  CT (CKM_IDEA_MAC, "idea-mac")
749
  CT (CKM_IDEA_MAC_GENERAL, "idea-mac-general")
750
  CT (CKM_IDEA_CBC_PAD, "idea-cbc-pad")
751
  CT (CKM_GENERIC_SECRET_KEY_GEN, "generic-secret-key-gen")
752
  CT (CKM_CONCATENATE_BASE_AND_KEY, "concatenate-base-and-key")
753
  CT (CKM_CONCATENATE_BASE_AND_DATA, "concatenate-base-and-data")
754
  CT (CKM_CONCATENATE_DATA_AND_BASE, "concatenate-data-and-base")
755
  CT (CKM_XOR_BASE_AND_DATA, "xor-base-and-data")
756
  CT (CKM_EXTRACT_KEY_FROM_KEY, "extract-key-from-key")
757
  CT (CKM_SSL3_PRE_MASTER_KEY_GEN, "ssl3-pre-master-key-gen")
758
  CT (CKM_SSL3_MASTER_KEY_DERIVE, "ssl3-master-key-derive")
759
  CT (CKM_SSL3_KEY_AND_MAC_DERIVE, "ssl3-key-and-mac-derive")
760
  CT (CKM_SSL3_MASTER_KEY_DERIVE_DH, "ssl3-master-key-derive-dh")
761
  CT (CKM_TLS_PRE_MASTER_KEY_GEN, "tls-pre-master-key-gen")
762
  CT (CKM_TLS_MASTER_KEY_DERIVE, "tls-master-key-derive")
763
  CT (CKM_TLS_KEY_AND_MAC_DERIVE, "tls-key-and-mac-derive")
764
  CT (CKM_TLS_MASTER_KEY_DERIVE_DH, "tls-master-key-derive-dh")
765
  /* CT (CKM_TLS_PRF) */
766
  CT (CKM_SSL3_MD5_MAC, "ssl3-md5-mac")
767
  CT (CKM_SSL3_SHA1_MAC, "ssl3-sha1-mac")
768
  CT (CKM_MD5_KEY_DERIVATION, "md5-key-derivation")
769
  CT (CKM_MD2_KEY_DERIVATION, "md2-key-derivation")
770
  CT (CKM_SHA1_KEY_DERIVATION, "sha1-key-derivation")
771
  CT (CKM_SHA256_KEY_DERIVATION, "sha256-key-derivation")
772
  CT (CKM_SHA384_KEY_DERIVATION, "sha384-key-derivation")
773
  CT (CKM_SHA512_KEY_DERIVATION, "sha512-key-derivation")
774
  CT (CKM_SHA224_KEY_DERIVATION, "sha224-key-derivation")
775
  /* CT (CKM_SHA3_256_KEY_DERIVATION) */
776
  CT (CKM_SHA3_256_KEY_DERIVE, "sha3-256-key-derive")
777
  /* CT (CKM_SHA3_224_KEY_DERIVATION) */
778
  CT (CKM_SHA3_224_KEY_DERIVE, "sha3-224-key-derive")
779
  /* CT (CKM_SHA3_384_KEY_DERIVATION) */
780
  CT (CKM_SHA3_384_KEY_DERIVE, "sha3-384-key-derive")
781
  /* CT (CKM_SHA3_512_KEY_DERIVATION) */
782
  CT (CKM_SHA3_512_KEY_DERIVE, "sha3-512-key-derive")
783
  /* CT (CKM_SHAKE_128_KEY_DERIVATION) */
784
  CT (CKM_SHAKE_128_KEY_DERIVE, "shake-128-key-derive")
785
  /* CT (CKM_SHAKE_256_KEY_DERIVATION) */
786
  CT (CKM_SHAKE_256_KEY_DERIVE, "shake-256-key-derive")
787
  CT (CKM_PBE_MD2_DES_CBC, "pbe-md2-des-cbc")
788
  CT (CKM_PBE_MD5_DES_CBC, "pbe-md5-des-cbc")
789
  CT (CKM_PBE_MD5_CAST_CBC, "pbe-md5-cast-cbc")
790
  CT (CKM_PBE_MD5_CAST3_CBC, "pbe-md5-cast3-cbc")
791
  CT (CKM_PBE_MD5_CAST5_CBC, "pbe-md5-cast5-cbc")
792
  /* CT (CKM_PBE_MD5_CAST128_CBC) */
793
  CT (CKM_PBE_SHA1_CAST5_CBC, "pbe-sha1-cast5-cbc")
794
  /* CT (CKM_PBE_SHA1_CAST128_CBC) */
795
  CT (CKM_PBE_SHA1_RC4_128, "pbe-sha1-rc4-128")
796
  CT (CKM_PBE_SHA1_RC4_40, "pbe-sha1-rc4-40")
797
  CT (CKM_PBE_SHA1_DES3_EDE_CBC, "pbe-sha1-des3-ede-cbc")
798
  CT (CKM_PBE_SHA1_DES2_EDE_CBC, "pbe-sha1-des2-ede-cbc")
799
  CT (CKM_PBE_SHA1_RC2_128_CBC, "pbe-sha1-rc2-128-cbc")
800
  CT (CKM_PBE_SHA1_RC2_40_CBC, "pbe-sha1-rc2-40-cbc")
801
  CT (CKM_SP800_108_COUNTER_KDF, "sp800-108-counter-kdf")
802
  CT (CKM_SP800_108_FEEDBACK_KDF, "sp800-108-feedback-kdf")
803
  CT (CKM_SP800_108_DOUBLE_PIPELINE_KDF, "sp800-108-double-pipeline-kdf")
804
  CT (CKM_PKCS5_PBKD2, "pkcs5-pbkd2")
805
  CT (CKM_PBA_SHA1_WITH_SHA1_HMAC, "pba-sha1-with-sha1-hmac")
806
  CT (CKM_WTLS_PRE_MASTER_KEY_GEN, "wtls-pre-master-key-gen")
807
  CT (CKM_WTLS_MASTER_KEY_DERIVE, "wtls-master-key-derive")
808
  CT (CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC, "wtls-master-key-derive-dh-ecc")
809
  CT (CKM_WTLS_PRF, "wtls-prf")
810
  CT (CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE, "wtls-server-key-and-mac-derive")
811
  CT (CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE, "wtls-client-key-and-mac-derive")
812
  CT (CKM_TLS10_MAC_SERVER, "tls10-mac-server")
813
  CT (CKM_TLS10_MAC_CLIENT, "tls10-mac-client")
814
  CT (CKM_TLS12_MAC, "tls12-mac")
815
  CT (CKM_TLS12_KDF, "tls12-kdf")
816
  CT (CKM_TLS12_MASTER_KEY_DERIVE, "tls12-master-key-derive")
817
  CT (CKM_TLS12_KEY_AND_MAC_DERIVE, "tls12-key-and-mac-derive")
818
  CT (CKM_TLS12_MASTER_KEY_DERIVE_DH, "tls12-master-key-derive-dh")
819
  CT (CKM_TLS12_KEY_SAFE_DERIVE, "tls12-key-safe-derive")
820
  CT (CKM_TLS_MAC, "tls-mac")
821
  CT (CKM_TLS_KDF, "tls-kdf")
822
  CT (CKM_KEY_WRAP_LYNKS, "key-wrap-lynks")
823
  CT (CKM_KEY_WRAP_SET_OAEP, "key-wrap-set-oaep")
824
  CT (CKM_CMS_SIG, "cms-sig")
825
  CT (CKM_KIP_DERIVE, "kip-derive")
826
  CT (CKM_KIP_WRAP, "kip-wrap")
827
  CT (CKM_KIP_MAC, "kip-mac")
828
  CT (CKM_CAMELLIA_KEY_GEN, "camellia-key-gen")
829
  CT (CKM_CAMELLIA_ECB, "camellia-ecb")
830
  CT (CKM_CAMELLIA_CBC, "camellia-cbc")
831
  CT (CKM_CAMELLIA_MAC, "camellia-mac")
832
  CT (CKM_CAMELLIA_MAC_GENERAL, "camellia-mac-general")
833
  CT (CKM_CAMELLIA_CBC_PAD, "camellia-cbc-pad")
834
  CT (CKM_CAMELLIA_ECB_ENCRYPT_DATA, "camellia-ecb-encrypt-data")
835
  CT (CKM_CAMELLIA_CBC_ENCRYPT_DATA, "camellia-cbc-encrypt-data")
836
  CT (CKM_CAMELLIA_CTR, "camellia-ctr")
837
  CT (CKM_ARIA_KEY_GEN, "aria-key-gen")
838
  CT (CKM_ARIA_ECB, "aria-ecb")
839
  CT (CKM_ARIA_CBC, "aria-cbc")
840
  CT (CKM_ARIA_MAC, "aria-mac")
841
  CT (CKM_ARIA_MAC_GENERAL, "aria-mac-general")
842
  CT (CKM_ARIA_CBC_PAD, "aria-cbc-pad")
843
  CT (CKM_ARIA_ECB_ENCRYPT_DATA, "aria-ecb-encrypt-data")
844
  CT (CKM_ARIA_CBC_ENCRYPT_DATA, "aria-cbc-encrypt-data")
845
  CT (CKM_SEED_KEY_GEN, "seed-key-gen")
846
  CT (CKM_SEED_ECB, "seed-ecb")
847
  CT (CKM_SEED_CBC, "seed-cbc")
848
  CT (CKM_SEED_MAC, "seed-mac")
849
  CT (CKM_SEED_MAC_GENERAL, "seed-mac-general")
850
  CT (CKM_SEED_CBC_PAD, "seed-cbc-pad")
851
  CT (CKM_SEED_ECB_ENCRYPT_DATA, "seed-ecb-encrypt-data")
852
  CT (CKM_SEED_CBC_ENCRYPT_DATA, "seed-cbc-encrypt-data")
853
  CT (CKM_SKIPJACK_KEY_GEN, "skipjack-key-gen")
854
  CT (CKM_SKIPJACK_ECB64, "skipjack-ecb64")
855
  CT (CKM_SKIPJACK_CBC64, "skipjack-cbc64")
856
  CT (CKM_SKIPJACK_OFB64, "skipjack-ofb64")
857
  CT (CKM_SKIPJACK_CFB64, "skipjack-cfb64")
858
  CT (CKM_SKIPJACK_CFB32, "skipjack-cfb32")
859
  CT (CKM_SKIPJACK_CFB16, "skipjack-cfb16")
860
  CT (CKM_SKIPJACK_CFB8, "skipjack-cfb8")
861
  CT (CKM_SKIPJACK_WRAP, "skipjack-wrap")
862
  CT (CKM_SKIPJACK_PRIVATE_WRAP, "skipjack-private-wrap")
863
  CT (CKM_SKIPJACK_RELAYX, "skipjack-relayx")
864
  CT (CKM_KEA_KEY_PAIR_GEN, "kea-key-pair-gen")
865
  CT (CKM_KEA_KEY_DERIVE, "kea-key-derive")
866
  CT (CKM_FORTEZZA_TIMESTAMP, "fortezza-timestamp")
867
  CT (CKM_BATON_KEY_GEN, "baton-key-gen")
868
  CT (CKM_BATON_ECB128, "baton-ecb128")
869
  CT (CKM_BATON_ECB96, "baton-ecb96")
870
  CT (CKM_BATON_CBC128, "baton-cbc128")
871
  CT (CKM_BATON_COUNTER, "baton-counter")
872
  CT (CKM_BATON_SHUFFLE, "baton-shuffle")
873
  CT (CKM_BATON_WRAP, "baton-wrap")
874
  CT (CKM_ECDSA_KEY_PAIR_GEN, "ecdsa-key-pair-gen")
875
  /* CT (CKM_EC_KEY_PAIR_GEN) */
876
  CT (CKM_ECDSA, "ecdsa")
877
  CT (CKM_ECDSA_SHA1, "ecdsa-sha1")
878
  CT (CKM_ECDSA_SHA224, "ecdsa-sha224")
879
  CT (CKM_ECDSA_SHA256, "ecdsa-sha256")
880
  CT (CKM_ECDSA_SHA384, "ecdsa-sha384")
881
  CT (CKM_ECDSA_SHA512, "ecdsa-sha512")
882
  CT (CKM_ECDSA_SHA3_224, "ecdsa-sha3-224")
883
  CT (CKM_ECDSA_SHA3_256, "ecdsa-sha3-256")
884
  CT (CKM_ECDSA_SHA3_384, "ecdsa-sha3-384")
885
  CT (CKM_ECDSA_SHA3_512, "ecdsa-sha3-512")
886
  CT (CKM_ECDH1_DERIVE, "ecdh1-derive")
887
  CT (CKM_ECDH1_COFACTOR_DERIVE, "ecdh1-cofactor-derive")
888
  CT (CKM_ECMQV_DERIVE, "ecmqv-derive")
889
  CT (CKM_ECDH_AES_KEY_WRAP, "ecdh-aes-key-wrap")
890
  CT (CKM_RSA_AES_KEY_WRAP, "rsa-aes-key-wrap")
891
  CT (CKM_EC_EDWARDS_KEY_PAIR_GEN, "ec-edwards-key-pair-gen")
892
  CT (CKM_EC_MONTGOMERY_KEY_PAIR_GEN, "ec-montgomery-key-pair-gen")
893
  CT (CKM_EDDSA, "eddsa")
894
  CT (CKM_JUNIPER_KEY_GEN, "juniper-key-gen")
895
  CT (CKM_JUNIPER_ECB128, "juniper-ecb128")
896
  CT (CKM_JUNIPER_CBC128, "juniper-cbc128")
897
  CT (CKM_JUNIPER_COUNTER, "juniper-counter")
898
  CT (CKM_JUNIPER_SHUFFLE, "juniper-shuffle")
899
  CT (CKM_JUNIPER_WRAP, "juniper-wrap")
900
  CT (CKM_FASTHASH, "fasthash")
901
  CT (CKM_AES_XTS, "aes-xts")
902
  CT (CKM_AES_XTS_KEY_GEN, "aes-xts-key-gen")
903
  CT (CKM_AES_KEY_GEN, "aes-key-gen")
904
  CT (CKM_AES_ECB, "aes-ecb")
905
  CT (CKM_AES_CBC, "aes-cbc")
906
  CT (CKM_AES_MAC, "aes-mac")
907
  CT (CKM_AES_MAC_GENERAL, "aes-mac-general")
908
  CT (CKM_AES_CBC_PAD, "aes-cbc-pad")
909
  CT (CKM_AES_CTR, "aes-ctr")
910
  CT (CKM_AES_GCM, "aes-gcm")
911
  CT (CKM_AES_CCM, "aes-ccm")
912
  CT (CKM_AES_CTS, "aes-cts")
913
  CT (CKM_AES_CMAC, "aes-cmac")
914
  CT (CKM_AES_CMAC_GENERAL, "aes-cmac-general")
915
  CT (CKM_AES_XCBC_MAC, "aes-xcbc-mac")
916
  CT (CKM_AES_XCBC_MAC_96, "aes-xcbc-mac-96")
917
  CT (CKM_AES_GMAC, "aes-gmac")
918
  CT (CKM_BLOWFISH_KEY_GEN, "blowfish-key-gen")
919
  CT (CKM_BLOWFISH_CBC, "blowfish-cbc")
920
  CT (CKM_TWOFISH_KEY_GEN, "twofish-key-gen")
921
  CT (CKM_TWOFISH_CBC, "twofish-cbc")
922
  CT (CKM_BLOWFISH_CBC_PAD, "blowfish-cbc-pad")
923
  CT (CKM_TWOFISH_CBC_PAD, "twofish-cbc-pad")
924
  CT (CKM_DES_ECB_ENCRYPT_DATA, "des-ecb-encrypt-data")
925
  CT (CKM_DES_CBC_ENCRYPT_DATA, "des-cbc-encrypt-data")
926
  CT (CKM_DES3_ECB_ENCRYPT_DATA, "des3-ecb-encrypt-data")
927
  CT (CKM_DES3_CBC_ENCRYPT_DATA, "des3-cbc-encrypt-data")
928
  CT (CKM_AES_ECB_ENCRYPT_DATA, "aes-ecb-encrypt-data")
929
  CT (CKM_AES_CBC_ENCRYPT_DATA, "aes-cbc-encrypt-data")
930
  CT (CKM_GOSTR3410_KEY_PAIR_GEN, "gostr3410-key-pair-gen")
931
  CT (CKM_GOSTR3410, "gostr3410")
932
  CT (CKM_GOSTR3410_WITH_GOSTR3411, "gostr3410-with-gostr3411")
933
  CT (CKM_GOSTR3410_KEY_WRAP, "gostr3410-key-wrap")
934
  CT (CKM_GOSTR3410_DERIVE, "gostr3410-derive")
935
  CT (CKM_GOSTR3411, "gostr3411")
936
  CT (CKM_GOSTR3411_HMAC, "gostr3411-hmac")
937
  CT (CKM_GOST28147_KEY_GEN, "gost28147-key-gen")
938
  CT (CKM_GOST28147_ECB, "gost28147-ecb")
939
  CT (CKM_GOST28147, "gost28147")
940
  CT (CKM_GOST28147_MAC, "gost28147-mac")
941
  CT (CKM_GOST28147_KEY_WRAP, "gost28147-key-wrap")
942
  CT (CKM_CHACHA20_KEY_GEN, "chacha20-key-gen")
943
  CT (CKM_CHACHA20, "chacha20")
944
  CT (CKM_POLY1305_KEY_GEN, "poly1305-key-gen")
945
  CT (CKM_POLY1305, "poly1305")
946
  CT (CKM_EC_KEY_PAIR_GEN_W_EXTRA_BITS, "ec-key-pair-gen-w-extra-bits")
947
  CT (CKM_DSA_PARAMETER_GEN, "dsa-parameter-gen")
948
  CT (CKM_DH_PKCS_PARAMETER_GEN, "dh-pkcs-parameter-gen")
949
  CT (CKM_X9_42_DH_PARAMETER_GEN, "x9-42-dh-parameter-gen")
950
  /* CT (CKM_DSA_PROBABLISTIC_PARAMETER_GEN) */
951
  CT (CKM_DSA_PROBABILISTIC_PARAMETER_GEN, "dsa-probabilistic-parameter-gen")
952
  CT (CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN, "dsa-shawe-taylor-parameter-gen")
953
  CT (CKM_DSA_FIPS_G_GEN, "dsa-fips-g-gen")
954
  CT (CKM_AES_OFB, "aes-ofb")
955
  CT (CKM_AES_CFB64, "aes-cfb64")
956
  CT (CKM_AES_CFB8, "aes-cfb8")
957
  CT (CKM_AES_CFB128, "aes-cfb128")
958
  CT (CKM_AES_CFB1, "aes-cfb1")
959
  CT (CKM_AES_KEY_WRAP, "aes-key-wrap")
960
  CT (CKM_AES_KEY_WRAP_PAD, "aes-key-wrap-pad")
961
  CT (CKM_AES_KEY_WRAP_KWP, "aes-key-wrap-kwp")
962
  CT (CKM_AES_KEY_WRAP_PKCS7, "aes-key-wrap-pkcs7")
963
  CT (CKM_RSA_PKCS_TPM_1_1, "rsa-pkcs-tpm-1-1")
964
  CT (CKM_RSA_PKCS_OAEP_TPM_1_1, "rsa-pkcs-oaep-tpm-1-1")
965
  CT (CKM_SHA_1_KEY_GEN, "sha-1-key-gen")
966
  CT (CKM_SHA224_KEY_GEN, "sha224-key-gen")
967
  CT (CKM_SHA256_KEY_GEN, "sha256-key-gen")
968
  CT (CKM_SHA384_KEY_GEN, "sha384-key-gen")
969
  CT (CKM_SHA512_KEY_GEN, "sha512-key-gen")
970
  CT (CKM_SHA512_224_KEY_GEN, "sha512-224-key-gen")
971
  CT (CKM_SHA512_256_KEY_GEN, "sha512-256-key-gen")
972
  CT (CKM_SHA512_T_KEY_GEN, "sha512-t-key-gen")
973
  CT (CKM_NULL, "null")
974
  CT (CKM_BLAKE2B_160, "blake2b-160")
975
  CT (CKM_BLAKE2B_160_HMAC, "blake2b-160-hmac")
976
  CT (CKM_BLAKE2B_160_HMAC_GENERAL, "blake2b-160-hmac-general")
977
  CT (CKM_BLAKE2B_160_KEY_DERIVE, "blake2b-160-key-derive")
978
  CT (CKM_BLAKE2B_160_KEY_GEN, "blake2b-160-key-gen")
979
  CT (CKM_BLAKE2B_256, "blake2b-256")
980
  CT (CKM_BLAKE2B_256_HMAC, "blake2b-256-hmac")
981
  CT (CKM_BLAKE2B_256_HMAC_GENERAL, "blake2b-256-hmac-general")
982
  CT (CKM_BLAKE2B_256_KEY_DERIVE, "blake2b-256-key-derive")
983
  CT (CKM_BLAKE2B_256_KEY_GEN, "blake2b-256-key-gen")
984
  CT (CKM_BLAKE2B_384, "blake2b-384")
985
  CT (CKM_BLAKE2B_384_HMAC, "blake2b-384-hmac")
986
  CT (CKM_BLAKE2B_384_HMAC_GENERAL, "blake2b-384-hmac-general")
987
  CT (CKM_BLAKE2B_384_KEY_DERIVE, "blake2b-384-key-derive")
988
  CT (CKM_BLAKE2B_384_KEY_GEN, "blake2b-384-key-gen")
989
  CT (CKM_BLAKE2B_512, "blake2b-512")
990
  CT (CKM_BLAKE2B_512_HMAC, "blake2b-512-hmac")
991
  CT (CKM_BLAKE2B_512_HMAC_GENERAL, "blake2b-512-hmac-general")
992
  CT (CKM_BLAKE2B_512_KEY_DERIVE, "blake2b-512-key-derive")
993
  CT (CKM_BLAKE2B_512_KEY_GEN, "blake2b-512-key-gen")
994
  CT (CKM_SALSA20, "salsa20")
995
  CT (CKM_CHACHA20_POLY1305, "chacha20-poly1305")
996
  CT (CKM_SALSA20_POLY1305, "salsa20-poly1305")
997
  CT (CKM_X3DH_INITIALIZE, "x3dh-initialize")
998
  CT (CKM_X3DH_RESPOND, "x3dh-respond")
999
  CT (CKM_X2RATCHET_INITIALIZE, "x2ratchet-initialize")
1000
  CT (CKM_X2RATCHET_RESPOND, "x2ratchet-respond")
1001
  CT (CKM_X2RATCHET_ENCRYPT, "x2ratchet-encrypt")
1002
  CT (CKM_X2RATCHET_DECRYPT, "x2ratchet-decrypt")
1003
  CT (CKM_XEDDSA, "xeddsa")
1004
  CT (CKM_HKDF_DERIVE, "hkdf-derive")
1005
  CT (CKM_HKDF_DATA, "hkdf-data")
1006
  CT (CKM_HKDF_KEY_GEN, "hkdf-key-gen")
1007
  CT (CKM_SALSA20_KEY_GEN, "salsa20-key-gen")
1008
  CT (CKM_IKE2_PRF_PLUS_DERIVE, "ike2-prf-plus-derive")
1009
  CT (CKM_IKE_PRF_DERIVE, "ike-prf-derive")
1010
  CT (CKM_IKE1_PRF_DERIVE, "ike1-prf-derive")
1011
  CT (CKM_IKE1_EXTENDED_DERIVE, "ike1-extended-derive")
1012
  CT (CKM_HSS_KEY_PAIR_GEN, "hss-key-pair-gen")
1013
  CT (CKM_HSS, "hss")
1014
  CT (CKM_XMSS_KEY_PAIR_GEN, "xmss-key-pair-gen")
1015
  CT (CKM_XMSSMT_KEY_PAIR_GEN, "xmssmt-key-pair-gen")
1016
  CT (CKM_XMSS, "xmss")
1017
  CT (CKM_XMSSMT, "xmssmt")
1018
  CT (CKM_ECDH_X_AES_KEY_WRAP, "ecdh-x-aes-key-wrap")
1019
  CT (CKM_ECDH_COF_AES_KEY_WRAP, "ecdh-cof-aes-key-wrap")
1020
  CT (CKM_PUB_KEY_FROM_PRIV_KEY, "pub-key-from-priv-key")
1021
  CT (CKM_IBM_SHA3_224, "ibm-sha3-224")
1022
  CT (CKM_IBM_SHA3_256, "ibm-sha3-256")
1023
  CT (CKM_IBM_SHA3_384, "ibm-sha3-384")
1024
  CT (CKM_IBM_SHA3_512, "ibm-sha3-512")
1025
  CT (CKM_IBM_CMAC, "ibm-cmac")
1026
  CT (CKM_IBM_EC_X25519, "ibm-ec-x25519")
1027
  CT (CKM_IBM_ED25519_SHA512, "ibm-ed25519-sha512")
1028
  CT (CKM_IBM_EC_X448, "ibm-ec-x448")
1029
  CT (CKM_IBM_ED448_SHA3, "ibm-ed448-sha3")
1030
  CT (CKM_IBM_DILITHIUM, "ibm-dilithium")
1031
  CT (CKM_IBM_KYBER, "ibm-kyber")
1032
  CT (CKM_IBM_SHA3_224_HMAC, "ibm-sha3-224-hmac")
1033
  CT (CKM_IBM_SHA3_256_HMAC, "ibm-sha3-256-hmac")
1034
  CT (CKM_IBM_SHA3_384_HMAC, "ibm-sha3-384-hmac")
1035
  CT (CKM_IBM_SHA3_512_HMAC, "ibm-sha3-512-hmac")
1036
  CT (CKM_IBM_ECDSA_OTHER, "ibm-ecdsa-other")
1037
  CT (CKM_IBM_ATTRIBUTEBOUND_WRAP, "ibm-attributebound-wrap")
1038
  CT (CKM_IBM_BTC_DERIVE, "ibm-btc-derive")
1039
  { CKA_INVALID },
1040
};
1041
1042
const p11_constant p11_constant_hw_features[] = {
1043
  CT (CKH_MONOTONIC_COUNTER, "monotonic-counter")
1044
  CT (CKH_CLOCK, "clock")
1045
  CT (CKH_USER_INTERFACE, "user-interface")
1046
  CT (CKH_VENDOR_DEFINED, "vendor-defined")
1047
  { CKA_INVALID },
1048
};
1049
1050
const p11_constant p11_constant_profiles[] = {
1051
  CT (CKP_INVALID_ID, "invalid-id")
1052
  CT (CKP_BASELINE_PROVIDER, "baseline-provider")
1053
  CT (CKP_EXTENDED_PROVIDER, "extended-provider")
1054
  CT (CKP_AUTHENTICATION_TOKEN, "authentication-token")
1055
  CT (CKP_PUBLIC_CERTIFICATES_TOKEN, "public-certificates-token")
1056
  CT (CKP_COMPLETE_PROVIDER, "complete-provider")
1057
  CT (CKP_HKDF_TLS_TOKEN, "hkdf-tls-token")
1058
  CT (CKP_VENDOR_DEFINED, "vendor-defined")
1059
  { CKA_INVALID },
1060
};
1061
1062
#undef CT
1063
1064
struct {
1065
  const p11_constant *table;
1066
  int length;
1067
} tables[] = {
1068
  { p11_constant_types, ELEMS (p11_constant_types) - 1 },
1069
  { p11_constant_classes, ELEMS (p11_constant_classes) - 1 },
1070
  { p11_constant_trusts, ELEMS (p11_constant_trusts) - 1 },
1071
  { p11_constant_certs, ELEMS (p11_constant_certs) - 1 },
1072
  { p11_constant_keys, ELEMS (p11_constant_keys) - 1 },
1073
  { p11_constant_asserts, ELEMS (p11_constant_asserts) - 1 },
1074
  { p11_constant_categories, ELEMS (p11_constant_categories) - 1 },
1075
  { p11_constant_mechanisms, ELEMS (p11_constant_mechanisms) - 1 },
1076
  { p11_constant_states, ELEMS (p11_constant_states) - 1 },
1077
  { p11_constant_users, ELEMS (p11_constant_users) - 1 },
1078
  { p11_constant_returns, ELEMS (p11_constant_returns) - 1 },
1079
  { p11_constant_hw_features, ELEMS (p11_constant_hw_features) - 1 },
1080
  { p11_constant_profiles, ELEMS (p11_constant_profiles) - 1 },
1081
};
1082
1083
static int
1084
compar_attr_info (const void *one,
1085
                  const void *two)
1086
0
{
1087
0
  const p11_constant *a1 = one;
1088
0
  const p11_constant *a2 = two;
1089
0
  if (a1->value == a2->value)
1090
0
    return 0;
1091
0
  if (a1->value < a2->value)
1092
0
    return -1;
1093
0
  return 1;
1094
0
}
1095
1096
static const p11_constant *
1097
lookup_info (const p11_constant *table,
1098
             CK_ATTRIBUTE_TYPE type)
1099
0
{
1100
0
  p11_constant match = { type, NULL, { NULL } };
1101
0
  int length = -1;
1102
0
  int i;
1103
1104
0
  for (i = 0; i < ELEMS (tables); i++) {
1105
0
    if (table == tables[i].table) {
1106
0
      length = tables[i].length;
1107
0
      break;
1108
0
    }
1109
0
  }
1110
1111
0
  if (length == -1)
1112
0
    return_val_if_reached (NULL);
1113
1114
0
  return bsearch (&match, table, length, sizeof (p11_constant), compar_attr_info);
1115
1116
0
}
1117
const char *
1118
p11_constant_name (const p11_constant *constants,
1119
                   CK_ULONG type)
1120
0
{
1121
0
  const p11_constant *constant = lookup_info (constants, type);
1122
0
  return constant ? constant->name : NULL;
1123
0
}
1124
1125
const char *
1126
p11_constant_nick (const p11_constant *constants,
1127
                   CK_ULONG type)
1128
0
{
1129
0
  const p11_constant *constant = lookup_info (constants, type);
1130
0
  return constant ? constant->nicks[0] : NULL;
1131
0
}
1132
1133
p11_dict *
1134
p11_constant_reverse (bool nick)
1135
0
{
1136
0
  const p11_constant *table;
1137
0
  p11_dict *lookups;
1138
0
  int length = -1;
1139
0
  int i, j, k;
1140
1141
0
  lookups = p11_dict_new (p11_dict_str_hash, p11_dict_str_equal, NULL, NULL);
1142
0
  return_val_if_fail (lookups != NULL, NULL);
1143
1144
0
  for (i = 0; i < ELEMS (tables); i++) {
1145
0
    table = tables[i].table;
1146
0
    length = tables[i].length;
1147
1148
0
    for (j = 0; j < length; j++) {
1149
0
      if (nick) {
1150
0
        for (k = 0; table[j].nicks[k] != NULL; k++) {
1151
0
          if (!p11_dict_set (lookups, (void *)table[j].nicks[k],
1152
0
                             (void *)&table[j].value))
1153
0
            return_val_if_reached (NULL);
1154
0
        }
1155
0
      } else {
1156
0
        if (!p11_dict_set (lookups, (void *)table[j].name, (void *)&table[j].value))
1157
0
          return_val_if_reached (NULL);
1158
0
      }
1159
0
    }
1160
0
  }
1161
1162
0
  return lookups;
1163
0
}
1164
1165
CK_ULONG
1166
p11_constant_resolve (p11_dict *reversed,
1167
                     const char *string)
1168
0
{
1169
0
  CK_ULONG *ptr;
1170
1171
0
  return_val_if_fail (reversed != NULL, CKA_INVALID);
1172
0
  return_val_if_fail (string != NULL, CKA_INVALID);
1173
1174
0
  ptr = p11_dict_get (reversed, string);
1175
0
  return ptr ? *ptr : CKA_INVALID;
1176
0
}