1 /*
2 +----------------------------------------------------------------------+
3 | PHP Version 7 |
4 +----------------------------------------------------------------------+
5 | Copyright (c) The PHP Group |
6 +----------------------------------------------------------------------+
7 | This source file is subject to version 3.01 of the PHP license, |
8 | that is bundled with this package in the file LICENSE, and is |
9 | available through the world-wide-web at the following url: |
10 | http://www.php.net/license/3_01.txt |
11 | If you did not receive a copy of the PHP license and are unable to |
12 | obtain it through the world-wide-web, please send a note to |
13 | license@php.net so we can mail you a copy immediately. |
14 +----------------------------------------------------------------------+
15 | Author: Guillaume Amringer |
16 +----------------------------------------------------------------------+
17 */
18
19 #include "pkcs11int.h"
20
21 static const char * strCK_RV(const CK_RV rv);
22 static zend_class_entry *zend_pkcs11_exception_ce;
23
general_error(char * generic,char * specific)24 void general_error(char *generic, char *specific) {
25 char buf[BUFSIZ];
26 snprintf(buf, sizeof(buf), "%s: %s", generic, specific);
27 zend_throw_exception(zend_pkcs11_exception_ce, buf, 0);
28 }
29
pkcs11_error(CK_RV rv,char * error)30 void pkcs11_error(CK_RV rv, char *error) {
31 char buf[BUFSIZ];
32 snprintf(buf, sizeof(buf), "(0x%08lx/%s) PKCS#11 module error: %s",
33 rv, strCK_RV(rv), error);
34 zend_throw_exception(zend_pkcs11_exception_ce, buf, rv);
35 }
36
strCK_RV(const CK_RV rv)37 static const char * strCK_RV(const CK_RV rv) {
38 static __thread char str[BUFSIZ];
39
40 switch(rv) {
41 #define REGISTER_PKCS11_CONSTANT(n) \
42 case n: strcpy(str, #n); break;
43
44 REGISTER_PKCS11_CONSTANT(CKR_OK);
45 REGISTER_PKCS11_CONSTANT(CKR_CANCEL);
46 REGISTER_PKCS11_CONSTANT(CKR_HOST_MEMORY);
47 REGISTER_PKCS11_CONSTANT(CKR_SLOT_ID_INVALID);
48 REGISTER_PKCS11_CONSTANT(CKR_GENERAL_ERROR);
49 REGISTER_PKCS11_CONSTANT(CKR_FUNCTION_FAILED);
50 REGISTER_PKCS11_CONSTANT(CKR_ARGUMENTS_BAD);
51 REGISTER_PKCS11_CONSTANT(CKR_NO_EVENT);
52 REGISTER_PKCS11_CONSTANT(CKR_NEED_TO_CREATE_THREADS);
53 REGISTER_PKCS11_CONSTANT(CKR_CANT_LOCK);
54 REGISTER_PKCS11_CONSTANT(CKR_ATTRIBUTE_READ_ONLY);
55 REGISTER_PKCS11_CONSTANT(CKR_ATTRIBUTE_SENSITIVE);
56 REGISTER_PKCS11_CONSTANT(CKR_ATTRIBUTE_TYPE_INVALID);
57 REGISTER_PKCS11_CONSTANT(CKR_ATTRIBUTE_VALUE_INVALID);
58 REGISTER_PKCS11_CONSTANT(CKR_DATA_INVALID);
59 REGISTER_PKCS11_CONSTANT(CKR_DATA_LEN_RANGE);
60 REGISTER_PKCS11_CONSTANT(CKR_DEVICE_ERROR);
61 REGISTER_PKCS11_CONSTANT(CKR_DEVICE_MEMORY);
62 REGISTER_PKCS11_CONSTANT(CKR_DEVICE_REMOVED);
63 REGISTER_PKCS11_CONSTANT(CKR_ENCRYPTED_DATA_INVALID);
64 REGISTER_PKCS11_CONSTANT(CKR_ENCRYPTED_DATA_LEN_RANGE);
65 REGISTER_PKCS11_CONSTANT(CKR_FUNCTION_CANCELED);
66 REGISTER_PKCS11_CONSTANT(CKR_FUNCTION_NOT_PARALLEL);
67 REGISTER_PKCS11_CONSTANT(CKR_FUNCTION_NOT_SUPPORTED);
68 REGISTER_PKCS11_CONSTANT(CKR_KEY_HANDLE_INVALID);
69 REGISTER_PKCS11_CONSTANT(CKR_KEY_SIZE_RANGE);
70 REGISTER_PKCS11_CONSTANT(CKR_KEY_TYPE_INCONSISTENT);
71 REGISTER_PKCS11_CONSTANT(CKR_KEY_NOT_NEEDED);
72 REGISTER_PKCS11_CONSTANT(CKR_KEY_CHANGED);
73 REGISTER_PKCS11_CONSTANT(CKR_KEY_NEEDED);
74 REGISTER_PKCS11_CONSTANT(CKR_KEY_INDIGESTIBLE);
75 REGISTER_PKCS11_CONSTANT(CKR_KEY_FUNCTION_NOT_PERMITTED);
76 REGISTER_PKCS11_CONSTANT(CKR_KEY_NOT_WRAPPABLE);
77 REGISTER_PKCS11_CONSTANT(CKR_KEY_UNEXTRACTABLE);
78 REGISTER_PKCS11_CONSTANT(CKR_MECHANISM_INVALID);
79 REGISTER_PKCS11_CONSTANT(CKR_MECHANISM_PARAM_INVALID);
80 REGISTER_PKCS11_CONSTANT(CKR_OBJECT_HANDLE_INVALID);
81 REGISTER_PKCS11_CONSTANT(CKR_OPERATION_ACTIVE);
82 REGISTER_PKCS11_CONSTANT(CKR_OPERATION_NOT_INITIALIZED);
83 REGISTER_PKCS11_CONSTANT(CKR_PIN_INCORRECT);
84 REGISTER_PKCS11_CONSTANT(CKR_PIN_INVALID);
85 REGISTER_PKCS11_CONSTANT(CKR_PIN_LEN_RANGE);
86 REGISTER_PKCS11_CONSTANT(CKR_PIN_EXPIRED);
87 REGISTER_PKCS11_CONSTANT(CKR_PIN_LOCKED);
88 REGISTER_PKCS11_CONSTANT(CKR_SESSION_CLOSED);
89 REGISTER_PKCS11_CONSTANT(CKR_SESSION_COUNT);
90 REGISTER_PKCS11_CONSTANT(CKR_SESSION_HANDLE_INVALID);
91 REGISTER_PKCS11_CONSTANT(CKR_SESSION_PARALLEL_NOT_SUPPORTED);
92 REGISTER_PKCS11_CONSTANT(CKR_SESSION_READ_ONLY);
93 REGISTER_PKCS11_CONSTANT(CKR_SESSION_EXISTS);
94 REGISTER_PKCS11_CONSTANT(CKR_SESSION_READ_ONLY_EXISTS);
95 REGISTER_PKCS11_CONSTANT(CKR_SESSION_READ_WRITE_SO_EXISTS);
96 REGISTER_PKCS11_CONSTANT(CKR_SIGNATURE_INVALID);
97 REGISTER_PKCS11_CONSTANT(CKR_SIGNATURE_LEN_RANGE);
98 REGISTER_PKCS11_CONSTANT(CKR_TEMPLATE_INCOMPLETE);
99 REGISTER_PKCS11_CONSTANT(CKR_TEMPLATE_INCONSISTENT);
100 REGISTER_PKCS11_CONSTANT(CKR_TOKEN_NOT_PRESENT);
101 REGISTER_PKCS11_CONSTANT(CKR_TOKEN_NOT_RECOGNIZED);
102 REGISTER_PKCS11_CONSTANT(CKR_TOKEN_WRITE_PROTECTED);
103 REGISTER_PKCS11_CONSTANT(CKR_UNWRAPPING_KEY_HANDLE_INVALID);
104 REGISTER_PKCS11_CONSTANT(CKR_UNWRAPPING_KEY_SIZE_RANGE);
105 REGISTER_PKCS11_CONSTANT(CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT);
106 REGISTER_PKCS11_CONSTANT(CKR_USER_ALREADY_LOGGED_IN);
107 REGISTER_PKCS11_CONSTANT(CKR_USER_NOT_LOGGED_IN);
108 REGISTER_PKCS11_CONSTANT(CKR_USER_PIN_NOT_INITIALIZED);
109 REGISTER_PKCS11_CONSTANT(CKR_USER_TYPE_INVALID);
110 REGISTER_PKCS11_CONSTANT(CKR_USER_ANOTHER_ALREADY_LOGGED_IN);
111 REGISTER_PKCS11_CONSTANT(CKR_USER_TOO_MANY_TYPES);
112 REGISTER_PKCS11_CONSTANT(CKR_WRAPPED_KEY_INVALID);
113 REGISTER_PKCS11_CONSTANT(CKR_WRAPPED_KEY_LEN_RANGE);
114 REGISTER_PKCS11_CONSTANT(CKR_WRAPPING_KEY_HANDLE_INVALID);
115 REGISTER_PKCS11_CONSTANT(CKR_WRAPPING_KEY_SIZE_RANGE);
116 REGISTER_PKCS11_CONSTANT(CKR_WRAPPING_KEY_TYPE_INCONSISTENT);
117 REGISTER_PKCS11_CONSTANT(CKR_RANDOM_SEED_NOT_SUPPORTED);
118 REGISTER_PKCS11_CONSTANT(CKR_RANDOM_NO_RNG);
119 REGISTER_PKCS11_CONSTANT(CKR_DOMAIN_PARAMS_INVALID);
120 REGISTER_PKCS11_CONSTANT(CKR_BUFFER_TOO_SMALL);
121 REGISTER_PKCS11_CONSTANT(CKR_SAVED_STATE_INVALID);
122 REGISTER_PKCS11_CONSTANT(CKR_INFORMATION_SENSITIVE);
123 REGISTER_PKCS11_CONSTANT(CKR_STATE_UNSAVEABLE);
124 REGISTER_PKCS11_CONSTANT(CKR_CRYPTOKI_NOT_INITIALIZED);
125 REGISTER_PKCS11_CONSTANT(CKR_CRYPTOKI_ALREADY_INITIALIZED);
126 REGISTER_PKCS11_CONSTANT(CKR_MUTEX_BAD);
127 REGISTER_PKCS11_CONSTANT(CKR_MUTEX_NOT_LOCKED);
128 REGISTER_PKCS11_CONSTANT(CKR_FUNCTION_REJECTED);
129 REGISTER_PKCS11_CONSTANT(CKR_VENDOR_DEFINED);
130
131 default:
132 strcpy(str, "CRK_XYZ Unknown");
133 break;
134 }
135 # undef REGISTER_PKCS11_CONSTANT
136
137 return str;
138 }
139
parseTemplate(HashTable ** template,CK_ATTRIBUTE_PTR * templateObj,int * templateItemCount)140 void parseTemplate(HashTable **template, CK_ATTRIBUTE_PTR *templateObj, int *templateItemCount) {
141 zval *templateValue;
142 zend_ulong templateValueKey;
143 *templateItemCount = zend_hash_num_elements(*template);
144 *templateObj = ecalloc(*templateItemCount, sizeof(CK_ATTRIBUTE));
145 unsigned int i = 0;
146 static CK_BBOOL btrue = CK_TRUE;
147 static CK_BBOOL bfalse = CK_FALSE;
148 ZEND_HASH_FOREACH_NUM_KEY_VAL(*template, templateValueKey, templateValue)
149 if (Z_TYPE_P(templateValue) == IS_LONG) {
150 (*templateObj)[i] = (CK_ATTRIBUTE){templateValueKey, &(Z_LVAL_P(templateValue)), sizeof(CK_ULONG)};
151
152 } else if (Z_TYPE_P(templateValue) == IS_STRING) {
153 (*templateObj)[i] = (CK_ATTRIBUTE){templateValueKey, Z_STRVAL_P(templateValue), Z_STRLEN_P(templateValue)};
154
155 } else if (Z_TYPE_P(templateValue) == IS_TRUE) {
156 (*templateObj)[i] = (CK_ATTRIBUTE){templateValueKey, &btrue, sizeof(btrue)};
157
158 } else if (Z_TYPE_P(templateValue) == IS_FALSE) {
159 (*templateObj)[i] = (CK_ATTRIBUTE){templateValueKey, &bfalse, sizeof(bfalse)};
160
161 } else if (Z_TYPE_P(templateValue) == IS_NULL) {
162 (*templateObj)[i] = (CK_ATTRIBUTE){.type = templateValueKey, .pValue = NULL, .ulValueLen = 0};
163
164 } else {
165 general_error("Unable to parse template", "Unsupported parameter type");
166 }
167
168 i++;
169 ZEND_HASH_FOREACH_END();
170 }
171
freeTemplate(CK_ATTRIBUTE_PTR templateObj)172 void freeTemplate(CK_ATTRIBUTE_PTR templateObj) {
173 efree(templateObj);
174 }
175
getObjectClass(pkcs11_session_object * session,CK_OBJECT_HANDLE_PTR hObject,CK_ULONG_PTR classId)176 void getObjectClass(pkcs11_session_object *session, CK_OBJECT_HANDLE_PTR hObject, CK_ULONG_PTR classId) {
177 CK_ATTRIBUTE template[] = {
178 {CKA_CLASS, NULL_PTR, 0}
179 };
180 CK_RV rv;
181
182 rv = session->pkcs11->functionList->C_GetAttributeValue(
183 session->session,
184 *hObject,
185 template,
186 1
187 );
188 if (rv != CKR_OK) {
189 pkcs11_error(rv, "Unable to get attribute value");
190 return;
191 }
192 template[0].pValue = (uint8_t *) ecalloc(1, template[0].ulValueLen);
193
194 rv = session->pkcs11->functionList->C_GetAttributeValue(
195 session->session,
196 *hObject,
197 template,
198 1
199 );
200 if (rv != CKR_OK) {
201 pkcs11_error(rv, "Unable to get attribute value");
202 return;
203 }
204
205 memcpy(
206 classId,
207 template[0].pValue,
208 template[0].ulValueLen
209 );
210
211 efree(template[0].pValue);
212 }
213
PHP_MINIT_FUNCTION(pkcs11)214 PHP_MINIT_FUNCTION(pkcs11)
215 {
216 register_pkcs11();
217 register_pkcs11_session();
218 register_pkcs11_object();
219 register_pkcs11_key();
220 register_pkcs11_keypair();
221 register_pkcs11_mechanism();
222 register_pkcs11_rsapssparams();
223 register_pkcs11_rsaoaepparams();
224 register_pkcs11_gcmparams();
225 register_pkcs11_chacha20params();
226 register_pkcs11_salsa20params();
227 register_pkcs11_salsa20chacha20poly1305params();
228 register_pkcs11_ecdh1deriveparams();
229 register_pkcs11_signaturecontext();
230 register_pkcs11_verificationcontext();
231 register_pkcs11_digestcontext();
232 register_pkcs11_encryptioncontext();
233 register_pkcs11_decryptioncontext();
234
235 zend_class_entry ce;
236
237 INIT_NS_CLASS_ENTRY(ce, "Pkcs11", "Exception", NULL);
238 zend_pkcs11_exception_ce = zend_register_internal_class_ex(&ce, zend_ce_exception);
239
240 # define REGISTER_PKCS11_CONSTANT(n) REGISTER_NS_LONG_CONSTANT("Pkcs11", #n, n, CONST_CS | CONST_PERSISTENT)
241
242 REGISTER_PKCS11_CONSTANT(CKM_RSA_PKCS_KEY_PAIR_GEN);
243 REGISTER_PKCS11_CONSTANT(CKM_RSA_PKCS);
244 REGISTER_PKCS11_CONSTANT(CKM_RSA_9796);
245 REGISTER_PKCS11_CONSTANT(CKM_RSA_X_509);
246 REGISTER_PKCS11_CONSTANT(CKM_MD2_RSA_PKCS);
247 REGISTER_PKCS11_CONSTANT(CKM_MD5_RSA_PKCS);
248 REGISTER_PKCS11_CONSTANT(CKM_SHA1_RSA_PKCS);
249 REGISTER_PKCS11_CONSTANT(CKM_RIPEMD128_RSA_PKCS);
250 REGISTER_PKCS11_CONSTANT(CKM_RIPEMD160_RSA_PKCS);
251 REGISTER_PKCS11_CONSTANT(CKM_RSA_PKCS_OAEP);
252 REGISTER_PKCS11_CONSTANT(CKM_RSA_X9_31_KEY_PAIR_GEN);
253 REGISTER_PKCS11_CONSTANT(CKM_RSA_X9_31);
254 REGISTER_PKCS11_CONSTANT(CKM_SHA1_RSA_X9_31);
255 REGISTER_PKCS11_CONSTANT(CKM_RSA_PKCS_PSS);
256 REGISTER_PKCS11_CONSTANT(CKM_SHA1_RSA_PKCS_PSS);
257 REGISTER_PKCS11_CONSTANT(CKM_DSA_KEY_PAIR_GEN);
258 REGISTER_PKCS11_CONSTANT(CKM_DSA);
259 REGISTER_PKCS11_CONSTANT(CKM_DSA_SHA1);
260 REGISTER_PKCS11_CONSTANT(CKM_DSA_SHA224);
261 REGISTER_PKCS11_CONSTANT(CKM_DSA_SHA256);
262 REGISTER_PKCS11_CONSTANT(CKM_DSA_SHA384);
263 REGISTER_PKCS11_CONSTANT(CKM_DSA_SHA512);
264 REGISTER_PKCS11_CONSTANT(CKM_DSA_SHA3_224);
265 REGISTER_PKCS11_CONSTANT(CKM_DSA_SHA3_256);
266 REGISTER_PKCS11_CONSTANT(CKM_DSA_SHA3_384);
267 REGISTER_PKCS11_CONSTANT(CKM_DSA_SHA3_512);
268 REGISTER_PKCS11_CONSTANT(CKM_DH_PKCS_KEY_PAIR_GEN);
269 REGISTER_PKCS11_CONSTANT(CKM_DH_PKCS_DERIVE);
270 REGISTER_PKCS11_CONSTANT(CKM_X9_42_DH_KEY_PAIR_GEN);
271 REGISTER_PKCS11_CONSTANT(CKM_X9_42_DH_DERIVE);
272 REGISTER_PKCS11_CONSTANT(CKM_X9_42_DH_HYBRID_DERIVE);
273 REGISTER_PKCS11_CONSTANT(CKM_X9_42_MQV_DERIVE);
274 REGISTER_PKCS11_CONSTANT(CKM_SHA256_RSA_PKCS);
275 REGISTER_PKCS11_CONSTANT(CKM_SHA384_RSA_PKCS);
276 REGISTER_PKCS11_CONSTANT(CKM_SHA512_RSA_PKCS);
277 REGISTER_PKCS11_CONSTANT(CKM_SHA256_RSA_PKCS_PSS);
278 REGISTER_PKCS11_CONSTANT(CKM_SHA384_RSA_PKCS_PSS);
279 REGISTER_PKCS11_CONSTANT(CKM_SHA512_RSA_PKCS_PSS);
280 REGISTER_PKCS11_CONSTANT(CKM_SHA224_RSA_PKCS);
281 REGISTER_PKCS11_CONSTANT(CKM_SHA224_RSA_PKCS_PSS);
282 REGISTER_PKCS11_CONSTANT(CKM_SHA512_224);
283 REGISTER_PKCS11_CONSTANT(CKM_SHA512_224_HMAC);
284 REGISTER_PKCS11_CONSTANT(CKM_SHA512_224_HMAC_GENERAL);
285 REGISTER_PKCS11_CONSTANT(CKM_SHA512_224_KEY_DERIVATION);
286 REGISTER_PKCS11_CONSTANT(CKM_SHA512_256);
287 REGISTER_PKCS11_CONSTANT(CKM_SHA512_256_HMAC);
288 REGISTER_PKCS11_CONSTANT(CKM_SHA512_256_HMAC_GENERAL);
289 REGISTER_PKCS11_CONSTANT(CKM_SHA512_256_KEY_DERIVATION);
290 REGISTER_PKCS11_CONSTANT(CKM_SHA512_T);
291 REGISTER_PKCS11_CONSTANT(CKM_SHA512_T_HMAC);
292 REGISTER_PKCS11_CONSTANT(CKM_SHA512_T_HMAC_GENERAL);
293 REGISTER_PKCS11_CONSTANT(CKM_SHA512_T_KEY_DERIVATION);
294 REGISTER_PKCS11_CONSTANT(CKM_SHA3_256_RSA_PKCS);
295 REGISTER_PKCS11_CONSTANT(CKM_SHA3_384_RSA_PKCS);
296 REGISTER_PKCS11_CONSTANT(CKM_SHA3_512_RSA_PKCS);
297 REGISTER_PKCS11_CONSTANT(CKM_SHA3_256_RSA_PKCS_PSS);
298 REGISTER_PKCS11_CONSTANT(CKM_SHA3_384_RSA_PKCS_PSS);
299 REGISTER_PKCS11_CONSTANT(CKM_SHA3_512_RSA_PKCS_PSS);
300 REGISTER_PKCS11_CONSTANT(CKM_SHA3_224_RSA_PKCS);
301 REGISTER_PKCS11_CONSTANT(CKM_SHA3_224_RSA_PKCS_PSS);
302 REGISTER_PKCS11_CONSTANT(CKM_RC2_KEY_GEN);
303 REGISTER_PKCS11_CONSTANT(CKM_RC2_ECB);
304 REGISTER_PKCS11_CONSTANT(CKM_RC2_CBC);
305 REGISTER_PKCS11_CONSTANT(CKM_RC2_MAC);
306 REGISTER_PKCS11_CONSTANT(CKM_RC2_MAC_GENERAL);
307 REGISTER_PKCS11_CONSTANT(CKM_RC2_CBC_PAD);
308 REGISTER_PKCS11_CONSTANT(CKM_RC4_KEY_GEN);
309 REGISTER_PKCS11_CONSTANT(CKM_RC4);
310 REGISTER_PKCS11_CONSTANT(CKM_DES_KEY_GEN);
311 REGISTER_PKCS11_CONSTANT(CKM_DES_ECB);
312 REGISTER_PKCS11_CONSTANT(CKM_DES_CBC);
313 REGISTER_PKCS11_CONSTANT(CKM_DES_MAC);
314 REGISTER_PKCS11_CONSTANT(CKM_DES_MAC_GENERAL);
315 REGISTER_PKCS11_CONSTANT(CKM_DES_CBC_PAD);
316 REGISTER_PKCS11_CONSTANT(CKM_DES2_KEY_GEN);
317 REGISTER_PKCS11_CONSTANT(CKM_DES3_KEY_GEN);
318 REGISTER_PKCS11_CONSTANT(CKM_DES3_ECB);
319 REGISTER_PKCS11_CONSTANT(CKM_DES3_CBC);
320 REGISTER_PKCS11_CONSTANT(CKM_DES3_MAC);
321 REGISTER_PKCS11_CONSTANT(CKM_DES3_MAC_GENERAL);
322 REGISTER_PKCS11_CONSTANT(CKM_DES3_CBC_PAD);
323 REGISTER_PKCS11_CONSTANT(CKM_DES3_CMAC_GENERAL);
324 REGISTER_PKCS11_CONSTANT(CKM_DES3_CMAC);
325 REGISTER_PKCS11_CONSTANT(CKM_CDMF_KEY_GEN);
326 REGISTER_PKCS11_CONSTANT(CKM_CDMF_ECB);
327 REGISTER_PKCS11_CONSTANT(CKM_CDMF_CBC);
328 REGISTER_PKCS11_CONSTANT(CKM_CDMF_MAC);
329 REGISTER_PKCS11_CONSTANT(CKM_CDMF_MAC_GENERAL);
330 REGISTER_PKCS11_CONSTANT(CKM_CDMF_CBC_PAD);
331 REGISTER_PKCS11_CONSTANT(CKM_DES_OFB64);
332 REGISTER_PKCS11_CONSTANT(CKM_DES_OFB8);
333 REGISTER_PKCS11_CONSTANT(CKM_DES_CFB64);
334 REGISTER_PKCS11_CONSTANT(CKM_DES_CFB8);
335 REGISTER_PKCS11_CONSTANT(CKM_MD2);
336 REGISTER_PKCS11_CONSTANT(CKM_MD2_HMAC);
337 REGISTER_PKCS11_CONSTANT(CKM_MD2_HMAC_GENERAL);
338 REGISTER_PKCS11_CONSTANT(CKM_MD5);
339 REGISTER_PKCS11_CONSTANT(CKM_MD5_HMAC);
340 REGISTER_PKCS11_CONSTANT(CKM_MD5_HMAC_GENERAL);
341 REGISTER_PKCS11_CONSTANT(CKM_SHA_1);
342 REGISTER_PKCS11_CONSTANT(CKM_SHA_1_HMAC);
343 REGISTER_PKCS11_CONSTANT(CKM_SHA_1_HMAC_GENERAL);
344 REGISTER_PKCS11_CONSTANT(CKM_RIPEMD128);
345 REGISTER_PKCS11_CONSTANT(CKM_RIPEMD128_HMAC);
346 REGISTER_PKCS11_CONSTANT(CKM_RIPEMD128_HMAC_GENERAL);
347 REGISTER_PKCS11_CONSTANT(CKM_RIPEMD160);
348 REGISTER_PKCS11_CONSTANT(CKM_RIPEMD160_HMAC);
349 REGISTER_PKCS11_CONSTANT(CKM_RIPEMD160_HMAC_GENERAL);
350 REGISTER_PKCS11_CONSTANT(CKM_SHA256);
351 REGISTER_PKCS11_CONSTANT(CKM_SHA256_HMAC);
352 REGISTER_PKCS11_CONSTANT(CKM_SHA256_HMAC_GENERAL);
353 REGISTER_PKCS11_CONSTANT(CKM_SHA224);
354 REGISTER_PKCS11_CONSTANT(CKM_SHA224_HMAC);
355 REGISTER_PKCS11_CONSTANT(CKM_SHA224_HMAC_GENERAL);
356 REGISTER_PKCS11_CONSTANT(CKM_SHA384);
357 REGISTER_PKCS11_CONSTANT(CKM_SHA384_HMAC);
358 REGISTER_PKCS11_CONSTANT(CKM_SHA384_HMAC_GENERAL);
359 REGISTER_PKCS11_CONSTANT(CKM_SHA512);
360 REGISTER_PKCS11_CONSTANT(CKM_SHA512_HMAC);
361 REGISTER_PKCS11_CONSTANT(CKM_SHA512_HMAC_GENERAL);
362 REGISTER_PKCS11_CONSTANT(CKM_SECURID_KEY_GEN);
363 REGISTER_PKCS11_CONSTANT(CKM_SECURID);
364 REGISTER_PKCS11_CONSTANT(CKM_HOTP_KEY_GEN);
365 REGISTER_PKCS11_CONSTANT(CKM_HOTP);
366 REGISTER_PKCS11_CONSTANT(CKM_ACTI);
367 REGISTER_PKCS11_CONSTANT(CKM_ACTI_KEY_GEN);
368 REGISTER_PKCS11_CONSTANT(CKM_SHA3_256);
369 REGISTER_PKCS11_CONSTANT(CKM_SHA3_256_HMAC);
370 REGISTER_PKCS11_CONSTANT(CKM_SHA3_256_HMAC_GENERAL);
371 REGISTER_PKCS11_CONSTANT(CKM_SHA3_256_KEY_GEN);
372 REGISTER_PKCS11_CONSTANT(CKM_SHA3_224);
373 REGISTER_PKCS11_CONSTANT(CKM_SHA3_224_HMAC);
374 REGISTER_PKCS11_CONSTANT(CKM_SHA3_224_HMAC_GENERAL);
375 REGISTER_PKCS11_CONSTANT(CKM_SHA3_224_KEY_GEN);
376 REGISTER_PKCS11_CONSTANT(CKM_SHA3_384);
377 REGISTER_PKCS11_CONSTANT(CKM_SHA3_384_HMAC);
378 REGISTER_PKCS11_CONSTANT(CKM_SHA3_384_HMAC_GENERAL);
379 REGISTER_PKCS11_CONSTANT(CKM_SHA3_384_KEY_GEN);
380 REGISTER_PKCS11_CONSTANT(CKM_SHA3_512);
381 REGISTER_PKCS11_CONSTANT(CKM_SHA3_512_HMAC);
382 REGISTER_PKCS11_CONSTANT(CKM_SHA3_512_HMAC_GENERAL);
383 REGISTER_PKCS11_CONSTANT(CKM_SHA3_512_KEY_GEN);
384 REGISTER_PKCS11_CONSTANT(CKM_CAST_KEY_GEN);
385 REGISTER_PKCS11_CONSTANT(CKM_CAST_ECB);
386 REGISTER_PKCS11_CONSTANT(CKM_CAST_CBC);
387 REGISTER_PKCS11_CONSTANT(CKM_CAST_MAC);
388 REGISTER_PKCS11_CONSTANT(CKM_CAST_MAC_GENERAL);
389 REGISTER_PKCS11_CONSTANT(CKM_CAST_CBC_PAD);
390 REGISTER_PKCS11_CONSTANT(CKM_CAST3_KEY_GEN);
391 REGISTER_PKCS11_CONSTANT(CKM_CAST3_ECB);
392 REGISTER_PKCS11_CONSTANT(CKM_CAST3_CBC);
393 REGISTER_PKCS11_CONSTANT(CKM_CAST3_MAC);
394 REGISTER_PKCS11_CONSTANT(CKM_CAST3_MAC_GENERAL);
395 REGISTER_PKCS11_CONSTANT(CKM_CAST3_CBC_PAD);
396 REGISTER_PKCS11_CONSTANT(CKM_CAST5_KEY_GEN);
397 REGISTER_PKCS11_CONSTANT(CKM_CAST128_KEY_GEN);
398 REGISTER_PKCS11_CONSTANT(CKM_CAST5_ECB);
399 REGISTER_PKCS11_CONSTANT(CKM_CAST128_ECB);
400 REGISTER_PKCS11_CONSTANT(CKM_CAST5_CBC);
401 REGISTER_PKCS11_CONSTANT(CKM_CAST128_CBC);
402 REGISTER_PKCS11_CONSTANT(CKM_CAST5_MAC);
403 REGISTER_PKCS11_CONSTANT(CKM_CAST128_MAC);
404 REGISTER_PKCS11_CONSTANT(CKM_CAST5_MAC_GENERAL);
405 REGISTER_PKCS11_CONSTANT(CKM_CAST128_MAC_GENERAL);
406 REGISTER_PKCS11_CONSTANT(CKM_CAST5_CBC_PAD);
407 REGISTER_PKCS11_CONSTANT(CKM_CAST128_CBC_PAD);
408 REGISTER_PKCS11_CONSTANT(CKM_RC5_KEY_GEN);
409 REGISTER_PKCS11_CONSTANT(CKM_RC5_ECB);
410 REGISTER_PKCS11_CONSTANT(CKM_RC5_CBC);
411 REGISTER_PKCS11_CONSTANT(CKM_RC5_MAC);
412 REGISTER_PKCS11_CONSTANT(CKM_RC5_MAC_GENERAL);
413 REGISTER_PKCS11_CONSTANT(CKM_RC5_CBC_PAD);
414 REGISTER_PKCS11_CONSTANT(CKM_IDEA_KEY_GEN);
415 REGISTER_PKCS11_CONSTANT(CKM_IDEA_ECB);
416 REGISTER_PKCS11_CONSTANT(CKM_IDEA_CBC);
417 REGISTER_PKCS11_CONSTANT(CKM_IDEA_MAC);
418 REGISTER_PKCS11_CONSTANT(CKM_IDEA_MAC_GENERAL);
419 REGISTER_PKCS11_CONSTANT(CKM_IDEA_CBC_PAD);
420 REGISTER_PKCS11_CONSTANT(CKM_GENERIC_SECRET_KEY_GEN);
421 REGISTER_PKCS11_CONSTANT(CKM_CONCATENATE_BASE_AND_KEY);
422 REGISTER_PKCS11_CONSTANT(CKM_CONCATENATE_BASE_AND_DATA);
423 REGISTER_PKCS11_CONSTANT(CKM_CONCATENATE_DATA_AND_BASE);
424 REGISTER_PKCS11_CONSTANT(CKM_XOR_BASE_AND_DATA);
425 REGISTER_PKCS11_CONSTANT(CKM_EXTRACT_KEY_FROM_KEY);
426 REGISTER_PKCS11_CONSTANT(CKM_SSL3_PRE_MASTER_KEY_GEN);
427 REGISTER_PKCS11_CONSTANT(CKM_SSL3_MASTER_KEY_DERIVE);
428 REGISTER_PKCS11_CONSTANT(CKM_SSL3_KEY_AND_MAC_DERIVE);
429 REGISTER_PKCS11_CONSTANT(CKM_SSL3_MASTER_KEY_DERIVE_DH);
430 REGISTER_PKCS11_CONSTANT(CKM_TLS_PRE_MASTER_KEY_GEN);
431 REGISTER_PKCS11_CONSTANT(CKM_TLS_MASTER_KEY_DERIVE);
432 REGISTER_PKCS11_CONSTANT(CKM_TLS_KEY_AND_MAC_DERIVE);
433 REGISTER_PKCS11_CONSTANT(CKM_TLS_MASTER_KEY_DERIVE_DH);
434 REGISTER_PKCS11_CONSTANT(CKM_TLS_PRF);
435 REGISTER_PKCS11_CONSTANT(CKM_SSL3_MD5_MAC);
436 REGISTER_PKCS11_CONSTANT(CKM_SSL3_SHA1_MAC);
437 REGISTER_PKCS11_CONSTANT(CKM_MD5_KEY_DERIVATION);
438 REGISTER_PKCS11_CONSTANT(CKM_MD2_KEY_DERIVATION);
439 REGISTER_PKCS11_CONSTANT(CKM_SHA1_KEY_DERIVATION);
440 REGISTER_PKCS11_CONSTANT(CKM_SHA256_KEY_DERIVATION);
441 REGISTER_PKCS11_CONSTANT(CKM_SHA384_KEY_DERIVATION);
442 REGISTER_PKCS11_CONSTANT(CKM_SHA512_KEY_DERIVATION);
443 REGISTER_PKCS11_CONSTANT(CKM_SHA224_KEY_DERIVATION);
444 REGISTER_PKCS11_CONSTANT(CKM_SHA3_256_KEY_DERIVATION);
445 REGISTER_PKCS11_CONSTANT(CKM_SHA3_224_KEY_DERIVATION);
446 REGISTER_PKCS11_CONSTANT(CKM_SHA3_384_KEY_DERIVATION);
447 REGISTER_PKCS11_CONSTANT(CKM_SHA3_512_KEY_DERIVATION);
448 REGISTER_PKCS11_CONSTANT(CKM_SHAKE_128_KEY_DERIVATION);
449 REGISTER_PKCS11_CONSTANT(CKM_SHAKE_256_KEY_DERIVATION);
450 REGISTER_PKCS11_CONSTANT(CKM_SHA3_256_KEY_DERIVE);
451 REGISTER_PKCS11_CONSTANT(CKM_SHA3_224_KEY_DERIVE);
452 REGISTER_PKCS11_CONSTANT(CKM_SHA3_384_KEY_DERIVE);
453 REGISTER_PKCS11_CONSTANT(CKM_SHA3_512_KEY_DERIVE);
454 REGISTER_PKCS11_CONSTANT(CKM_SHAKE_128_KEY_DERIVE);
455 REGISTER_PKCS11_CONSTANT(CKM_SHAKE_256_KEY_DERIVE);
456 REGISTER_PKCS11_CONSTANT(CKM_PBE_MD2_DES_CBC);
457 REGISTER_PKCS11_CONSTANT(CKM_PBE_MD5_DES_CBC);
458 REGISTER_PKCS11_CONSTANT(CKM_PBE_MD5_CAST_CBC);
459 REGISTER_PKCS11_CONSTANT(CKM_PBE_MD5_CAST3_CBC);
460 REGISTER_PKCS11_CONSTANT(CKM_PBE_MD5_CAST5_CBC);
461 REGISTER_PKCS11_CONSTANT(CKM_PBE_MD5_CAST128_CBC);
462 REGISTER_PKCS11_CONSTANT(CKM_PBE_SHA1_CAST5_CBC);
463 REGISTER_PKCS11_CONSTANT(CKM_PBE_SHA1_CAST128_CBC);
464 REGISTER_PKCS11_CONSTANT(CKM_PBE_SHA1_RC4_128);
465 REGISTER_PKCS11_CONSTANT(CKM_PBE_SHA1_RC4_40);
466 REGISTER_PKCS11_CONSTANT(CKM_PBE_SHA1_DES3_EDE_CBC);
467 REGISTER_PKCS11_CONSTANT(CKM_PBE_SHA1_DES2_EDE_CBC);
468 REGISTER_PKCS11_CONSTANT(CKM_PBE_SHA1_RC2_128_CBC);
469 REGISTER_PKCS11_CONSTANT(CKM_PBE_SHA1_RC2_40_CBC);
470 REGISTER_PKCS11_CONSTANT(CKM_PKCS5_PBKD2);
471 REGISTER_PKCS11_CONSTANT(CKM_PBA_SHA1_WITH_SHA1_HMAC);
472 REGISTER_PKCS11_CONSTANT(CKM_WTLS_PRE_MASTER_KEY_GEN);
473 REGISTER_PKCS11_CONSTANT(CKM_WTLS_MASTER_KEY_DERIVE);
474 REGISTER_PKCS11_CONSTANT(CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC);
475 REGISTER_PKCS11_CONSTANT(CKM_WTLS_PRF);
476 REGISTER_PKCS11_CONSTANT(CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE);
477 REGISTER_PKCS11_CONSTANT(CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE);
478 REGISTER_PKCS11_CONSTANT(CKM_TLS12_MAC);
479 REGISTER_PKCS11_CONSTANT(CKM_TLS12_KDF);
480 REGISTER_PKCS11_CONSTANT(CKM_TLS12_MASTER_KEY_DERIVE);
481 REGISTER_PKCS11_CONSTANT(CKM_TLS12_KEY_AND_MAC_DERIVE);
482 REGISTER_PKCS11_CONSTANT(CKM_TLS12_MASTER_KEY_DERIVE_DH);
483 REGISTER_PKCS11_CONSTANT(CKM_TLS12_KEY_SAFE_DERIVE);
484 REGISTER_PKCS11_CONSTANT(CKM_TLS_MAC);
485 REGISTER_PKCS11_CONSTANT(CKM_TLS_KDF);
486 REGISTER_PKCS11_CONSTANT(CKM_KEY_WRAP_LYNKS);
487 REGISTER_PKCS11_CONSTANT(CKM_KEY_WRAP_SET_OAEP);
488 REGISTER_PKCS11_CONSTANT(CKM_CMS_SIG);
489 REGISTER_PKCS11_CONSTANT(CKM_KIP_DERIVE);
490 REGISTER_PKCS11_CONSTANT(CKM_KIP_WRAP);
491 REGISTER_PKCS11_CONSTANT(CKM_KIP_MAC);
492 REGISTER_PKCS11_CONSTANT(CKM_CAMELLIA_KEY_GEN);
493 REGISTER_PKCS11_CONSTANT(CKM_CAMELLIA_ECB);
494 REGISTER_PKCS11_CONSTANT(CKM_CAMELLIA_CBC);
495 REGISTER_PKCS11_CONSTANT(CKM_CAMELLIA_MAC);
496 REGISTER_PKCS11_CONSTANT(CKM_CAMELLIA_MAC_GENERAL);
497 REGISTER_PKCS11_CONSTANT(CKM_CAMELLIA_CBC_PAD);
498 REGISTER_PKCS11_CONSTANT(CKM_CAMELLIA_ECB_ENCRYPT_DATA);
499 REGISTER_PKCS11_CONSTANT(CKM_CAMELLIA_CBC_ENCRYPT_DATA);
500 REGISTER_PKCS11_CONSTANT(CKM_CAMELLIA_CTR);
501 REGISTER_PKCS11_CONSTANT(CKM_ARIA_KEY_GEN);
502 REGISTER_PKCS11_CONSTANT(CKM_ARIA_ECB);
503 REGISTER_PKCS11_CONSTANT(CKM_ARIA_CBC);
504 REGISTER_PKCS11_CONSTANT(CKM_ARIA_MAC);
505 REGISTER_PKCS11_CONSTANT(CKM_ARIA_MAC_GENERAL);
506 REGISTER_PKCS11_CONSTANT(CKM_ARIA_CBC_PAD);
507 REGISTER_PKCS11_CONSTANT(CKM_ARIA_ECB_ENCRYPT_DATA);
508 REGISTER_PKCS11_CONSTANT(CKM_ARIA_CBC_ENCRYPT_DATA);
509 REGISTER_PKCS11_CONSTANT(CKM_SEED_KEY_GEN);
510 REGISTER_PKCS11_CONSTANT(CKM_SEED_ECB);
511 REGISTER_PKCS11_CONSTANT(CKM_SEED_CBC);
512 REGISTER_PKCS11_CONSTANT(CKM_SEED_MAC);
513 REGISTER_PKCS11_CONSTANT(CKM_SEED_MAC_GENERAL);
514 REGISTER_PKCS11_CONSTANT(CKM_SEED_CBC_PAD);
515 REGISTER_PKCS11_CONSTANT(CKM_SEED_ECB_ENCRYPT_DATA);
516 REGISTER_PKCS11_CONSTANT(CKM_SEED_CBC_ENCRYPT_DATA);
517 REGISTER_PKCS11_CONSTANT(CKM_SKIPJACK_KEY_GEN);
518 REGISTER_PKCS11_CONSTANT(CKM_SKIPJACK_ECB64);
519 REGISTER_PKCS11_CONSTANT(CKM_SKIPJACK_CBC64);
520 REGISTER_PKCS11_CONSTANT(CKM_SKIPJACK_OFB64);
521 REGISTER_PKCS11_CONSTANT(CKM_SKIPJACK_CFB64);
522 REGISTER_PKCS11_CONSTANT(CKM_SKIPJACK_CFB32);
523 REGISTER_PKCS11_CONSTANT(CKM_SKIPJACK_CFB16);
524 REGISTER_PKCS11_CONSTANT(CKM_SKIPJACK_CFB8);
525 REGISTER_PKCS11_CONSTANT(CKM_SKIPJACK_WRAP);
526 REGISTER_PKCS11_CONSTANT(CKM_SKIPJACK_PRIVATE_WRAP);
527 REGISTER_PKCS11_CONSTANT(CKM_SKIPJACK_RELAYX);
528 REGISTER_PKCS11_CONSTANT(CKM_KEA_KEY_PAIR_GEN);
529 REGISTER_PKCS11_CONSTANT(CKM_KEA_KEY_DERIVE);
530 REGISTER_PKCS11_CONSTANT(CKM_KEA_DERIVE);
531 REGISTER_PKCS11_CONSTANT(CKM_FORTEZZA_TIMESTAMP);
532 REGISTER_PKCS11_CONSTANT(CKM_BATON_KEY_GEN);
533 REGISTER_PKCS11_CONSTANT(CKM_BATON_ECB128);
534 REGISTER_PKCS11_CONSTANT(CKM_BATON_ECB96);
535 REGISTER_PKCS11_CONSTANT(CKM_BATON_CBC128);
536 REGISTER_PKCS11_CONSTANT(CKM_BATON_COUNTER);
537 REGISTER_PKCS11_CONSTANT(CKM_BATON_SHUFFLE);
538 REGISTER_PKCS11_CONSTANT(CKM_BATON_WRAP);
539 REGISTER_PKCS11_CONSTANT(CKM_ECDSA_KEY_PAIR_GEN);
540 REGISTER_PKCS11_CONSTANT(CKM_EC_KEY_PAIR_GEN);
541 REGISTER_PKCS11_CONSTANT(CKM_ECDSA);
542 REGISTER_PKCS11_CONSTANT(CKM_ECDSA_SHA1);
543 REGISTER_PKCS11_CONSTANT(CKM_ECDSA_SHA224);
544 REGISTER_PKCS11_CONSTANT(CKM_ECDSA_SHA256);
545 REGISTER_PKCS11_CONSTANT(CKM_ECDSA_SHA384);
546 REGISTER_PKCS11_CONSTANT(CKM_ECDSA_SHA512);
547 REGISTER_PKCS11_CONSTANT(CKM_EC_KEY_PAIR_GEN_W_EXTRA_BITS);
548 REGISTER_PKCS11_CONSTANT(CKM_ECDH1_DERIVE);
549 REGISTER_PKCS11_CONSTANT(CKM_ECDH1_COFACTOR_DERIVE);
550 REGISTER_PKCS11_CONSTANT(CKM_ECMQV_DERIVE);
551 REGISTER_PKCS11_CONSTANT(CKM_ECDH_AES_KEY_WRAP);
552 REGISTER_PKCS11_CONSTANT(CKM_RSA_AES_KEY_WRAP);
553 REGISTER_PKCS11_CONSTANT(CKM_JUNIPER_KEY_GEN);
554 REGISTER_PKCS11_CONSTANT(CKM_JUNIPER_ECB128);
555 REGISTER_PKCS11_CONSTANT(CKM_JUNIPER_CBC128);
556 REGISTER_PKCS11_CONSTANT(CKM_JUNIPER_COUNTER);
557 REGISTER_PKCS11_CONSTANT(CKM_JUNIPER_SHUFFLE);
558 REGISTER_PKCS11_CONSTANT(CKM_JUNIPER_WRAP);
559 REGISTER_PKCS11_CONSTANT(CKM_FASTHASH);
560 REGISTER_PKCS11_CONSTANT(CKM_AES_XTS);
561 REGISTER_PKCS11_CONSTANT(CKM_AES_XTS_KEY_GEN);
562 REGISTER_PKCS11_CONSTANT(CKM_AES_KEY_GEN);
563 REGISTER_PKCS11_CONSTANT(CKM_AES_ECB);
564 REGISTER_PKCS11_CONSTANT(CKM_AES_CBC);
565 REGISTER_PKCS11_CONSTANT(CKM_AES_MAC);
566 REGISTER_PKCS11_CONSTANT(CKM_AES_MAC_GENERAL);
567 REGISTER_PKCS11_CONSTANT(CKM_AES_CBC_PAD);
568 REGISTER_PKCS11_CONSTANT(CKM_AES_CTR);
569 REGISTER_PKCS11_CONSTANT(CKM_AES_GCM);
570 REGISTER_PKCS11_CONSTANT(CKM_AES_CCM);
571 REGISTER_PKCS11_CONSTANT(CKM_AES_CTS);
572 REGISTER_PKCS11_CONSTANT(CKM_AES_CMAC);
573 REGISTER_PKCS11_CONSTANT(CKM_AES_CMAC_GENERAL);
574 REGISTER_PKCS11_CONSTANT(CKM_AES_XCBC_MAC);
575 REGISTER_PKCS11_CONSTANT(CKM_AES_XCBC_MAC_96);
576 REGISTER_PKCS11_CONSTANT(CKM_AES_GMAC);
577 REGISTER_PKCS11_CONSTANT(CKM_BLOWFISH_KEY_GEN);
578 REGISTER_PKCS11_CONSTANT(CKM_BLOWFISH_CBC);
579 REGISTER_PKCS11_CONSTANT(CKM_TWOFISH_KEY_GEN);
580 REGISTER_PKCS11_CONSTANT(CKM_TWOFISH_CBC);
581 REGISTER_PKCS11_CONSTANT(CKM_BLOWFISH_CBC_PAD);
582 REGISTER_PKCS11_CONSTANT(CKM_TWOFISH_CBC_PAD);
583 REGISTER_PKCS11_CONSTANT(CKM_DES_ECB_ENCRYPT_DATA);
584 REGISTER_PKCS11_CONSTANT(CKM_DES_CBC_ENCRYPT_DATA);
585 REGISTER_PKCS11_CONSTANT(CKM_DES3_ECB_ENCRYPT_DATA);
586 REGISTER_PKCS11_CONSTANT(CKM_DES3_CBC_ENCRYPT_DATA);
587 REGISTER_PKCS11_CONSTANT(CKM_AES_ECB_ENCRYPT_DATA);
588 REGISTER_PKCS11_CONSTANT(CKM_AES_CBC_ENCRYPT_DATA);
589 REGISTER_PKCS11_CONSTANT(CKM_GOSTR3410_KEY_PAIR_GEN);
590 REGISTER_PKCS11_CONSTANT(CKM_GOSTR3410);
591 REGISTER_PKCS11_CONSTANT(CKM_GOSTR3410_WITH_GOSTR3411);
592 REGISTER_PKCS11_CONSTANT(CKM_GOSTR3410_KEY_WRAP);
593 REGISTER_PKCS11_CONSTANT(CKM_GOSTR3410_DERIVE);
594 REGISTER_PKCS11_CONSTANT(CKM_GOSTR3411);
595 REGISTER_PKCS11_CONSTANT(CKM_GOSTR3411_HMAC);
596 REGISTER_PKCS11_CONSTANT(CKM_GOST28147_KEY_GEN);
597 REGISTER_PKCS11_CONSTANT(CKM_GOST28147_ECB);
598 REGISTER_PKCS11_CONSTANT(CKM_GOST28147);
599 REGISTER_PKCS11_CONSTANT(CKM_GOST28147_MAC);
600 REGISTER_PKCS11_CONSTANT(CKM_GOST28147_KEY_WRAP);
601 REGISTER_PKCS11_CONSTANT(CKM_CHACHA20_KEY_GEN);
602 REGISTER_PKCS11_CONSTANT(CKM_CHACHA20);
603 REGISTER_PKCS11_CONSTANT(CKM_POLY1305_KEY_GEN);
604 REGISTER_PKCS11_CONSTANT(CKM_POLY1305);
605 REGISTER_PKCS11_CONSTANT(CKM_DSA_PARAMETER_GEN);
606 REGISTER_PKCS11_CONSTANT(CKM_DH_PKCS_PARAMETER_GEN);
607 REGISTER_PKCS11_CONSTANT(CKM_X9_42_DH_PARAMETER_GEN);
608 REGISTER_PKCS11_CONSTANT(CKM_DSA_PROBABILISTIC_PARAMETER_GEN);
609 REGISTER_PKCS11_CONSTANT(CKM_DSA_PROBABLISTIC_PARAMETER_GEN);
610 REGISTER_PKCS11_CONSTANT(CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN);
611 REGISTER_PKCS11_CONSTANT(CKM_DSA_FIPS_G_GEN);
612 REGISTER_PKCS11_CONSTANT(CKM_AES_OFB);
613 REGISTER_PKCS11_CONSTANT(CKM_AES_CFB64);
614 REGISTER_PKCS11_CONSTANT(CKM_AES_CFB8);
615 REGISTER_PKCS11_CONSTANT(CKM_AES_CFB128);
616 REGISTER_PKCS11_CONSTANT(CKM_AES_CFB1);
617 REGISTER_PKCS11_CONSTANT(CKM_AES_KEY_WRAP);
618 REGISTER_PKCS11_CONSTANT(CKM_AES_KEY_WRAP_PAD);
619 REGISTER_PKCS11_CONSTANT(CKM_AES_KEY_WRAP_KWP);
620 REGISTER_PKCS11_CONSTANT(CKM_RSA_PKCS_TPM_1_1);
621 REGISTER_PKCS11_CONSTANT(CKM_RSA_PKCS_OAEP_TPM_1_1);
622 REGISTER_PKCS11_CONSTANT(CKM_SHA_1_KEY_GEN);
623 REGISTER_PKCS11_CONSTANT(CKM_SHA224_KEY_GEN);
624 REGISTER_PKCS11_CONSTANT(CKM_SHA256_KEY_GEN);
625 REGISTER_PKCS11_CONSTANT(CKM_SHA384_KEY_GEN);
626 REGISTER_PKCS11_CONSTANT(CKM_SHA512_KEY_GEN);
627 REGISTER_PKCS11_CONSTANT(CKM_SHA512_224_KEY_GEN);
628 REGISTER_PKCS11_CONSTANT(CKM_SHA512_256_KEY_GEN);
629 REGISTER_PKCS11_CONSTANT(CKM_SHA512_T_KEY_GEN);
630 REGISTER_PKCS11_CONSTANT(CKM_NULL);
631 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_160);
632 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_160_HMAC);
633 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_160_HMAC_GENERAL);
634 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_160_KEY_DERIVE);
635 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_160_KEY_GEN);
636 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_256);
637 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_256_HMAC);
638 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_256_HMAC_GENERAL);
639 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_256_KEY_DERIVE);
640 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_256_KEY_GEN);
641 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_384);
642 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_384_HMAC);
643 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_384_HMAC_GENERAL);
644 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_384_KEY_DERIVE);
645 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_384_KEY_GEN);
646 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_512);
647 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_512_HMAC);
648 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_512_HMAC_GENERAL);
649 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_512_KEY_DERIVE);
650 REGISTER_PKCS11_CONSTANT(CKM_BLAKE2B_512_KEY_GEN);
651 REGISTER_PKCS11_CONSTANT(CKM_SALSA20);
652 REGISTER_PKCS11_CONSTANT(CKM_CHACHA20_POLY1305);
653 REGISTER_PKCS11_CONSTANT(CKM_SALSA20_POLY1305);
654 REGISTER_PKCS11_CONSTANT(CKM_X3DH_INITIALIZE);
655 REGISTER_PKCS11_CONSTANT(CKM_X3DH_RESPOND);
656 REGISTER_PKCS11_CONSTANT(CKM_X2RATCHET_INITIALIZE);
657 REGISTER_PKCS11_CONSTANT(CKM_X2RATCHET_RESPOND);
658 REGISTER_PKCS11_CONSTANT(CKM_X2RATCHET_ENCRYPT);
659 REGISTER_PKCS11_CONSTANT(CKM_X2RATCHET_DECRYPT);
660 REGISTER_PKCS11_CONSTANT(CKM_XEDDSA);
661 REGISTER_PKCS11_CONSTANT(CKM_HKDF_DERIVE);
662 REGISTER_PKCS11_CONSTANT(CKM_HKDF_DATA);
663 REGISTER_PKCS11_CONSTANT(CKM_HKDF_KEY_GEN);
664 REGISTER_PKCS11_CONSTANT(CKM_SALSA20_KEY_GEN);
665 REGISTER_PKCS11_CONSTANT(CKM_ECDSA_SHA3_224);
666 REGISTER_PKCS11_CONSTANT(CKM_ECDSA_SHA3_256);
667 REGISTER_PKCS11_CONSTANT(CKM_ECDSA_SHA3_384);
668 REGISTER_PKCS11_CONSTANT(CKM_ECDSA_SHA3_512);
669 REGISTER_PKCS11_CONSTANT(CKM_EC_EDWARDS_KEY_PAIR_GEN);
670 REGISTER_PKCS11_CONSTANT(CKM_EC_MONTGOMERY_KEY_PAIR_GEN);
671 REGISTER_PKCS11_CONSTANT(CKM_EDDSA);
672 REGISTER_PKCS11_CONSTANT(CKM_SP800_108_COUNTER_KDF);
673 REGISTER_PKCS11_CONSTANT(CKM_SP800_108_FEEDBACK_KDF);
674 REGISTER_PKCS11_CONSTANT(CKM_SP800_108_DOUBLE_PIPELINE_KDF);
675 REGISTER_PKCS11_CONSTANT(CKM_VENDOR_DEFINED);
676
677 REGISTER_PKCS11_CONSTANT(CKF_TOKEN_PRESENT);
678 REGISTER_PKCS11_CONSTANT(CKF_REMOVABLE_DEVICE);
679 REGISTER_PKCS11_CONSTANT(CKF_HW_SLOT);
680 REGISTER_PKCS11_CONSTANT(CKF_RNG);
681 REGISTER_PKCS11_CONSTANT(CKF_WRITE_PROTECTED);
682 REGISTER_PKCS11_CONSTANT(CKF_LOGIN_REQUIRED);
683 REGISTER_PKCS11_CONSTANT(CKF_USER_PIN_INITIALIZED);
684 REGISTER_PKCS11_CONSTANT(CKF_RESTORE_KEY_NOT_NEEDED);
685 REGISTER_PKCS11_CONSTANT(CKF_CLOCK_ON_TOKEN);
686 REGISTER_PKCS11_CONSTANT(CKF_PROTECTED_AUTHENTICATION_PATH);
687 REGISTER_PKCS11_CONSTANT(CKF_DUAL_CRYPTO_OPERATIONS);
688 REGISTER_PKCS11_CONSTANT(CKF_TOKEN_INITIALIZED);
689 REGISTER_PKCS11_CONSTANT(CKF_SECONDARY_AUTHENTICATION);
690 REGISTER_PKCS11_CONSTANT(CKF_USER_PIN_COUNT_LOW);
691 REGISTER_PKCS11_CONSTANT(CKF_USER_PIN_FINAL_TRY);
692 REGISTER_PKCS11_CONSTANT(CKF_USER_PIN_LOCKED);
693 REGISTER_PKCS11_CONSTANT(CKF_USER_PIN_TO_BE_CHANGED);
694 REGISTER_PKCS11_CONSTANT(CKF_SO_PIN_COUNT_LOW);
695 REGISTER_PKCS11_CONSTANT(CKF_SO_PIN_FINAL_TRY);
696 REGISTER_PKCS11_CONSTANT(CKF_SO_PIN_LOCKED);
697 REGISTER_PKCS11_CONSTANT(CKF_SO_PIN_TO_BE_CHANGED);
698 REGISTER_PKCS11_CONSTANT(CKF_ERROR_STATE);
699 REGISTER_PKCS11_CONSTANT(CKF_RW_SESSION);
700 REGISTER_PKCS11_CONSTANT(CKF_SERIAL_SESSION);
701 REGISTER_PKCS11_CONSTANT(CKF_ARRAY_ATTRIBUTE);
702 REGISTER_PKCS11_CONSTANT(CKF_HW);
703 REGISTER_PKCS11_CONSTANT(CKF_MESSAGE_ENCRYPT);
704 REGISTER_PKCS11_CONSTANT(CKF_MESSAGE_DECRYPT);
705 REGISTER_PKCS11_CONSTANT(CKF_MESSAGE_SIGN);
706 REGISTER_PKCS11_CONSTANT(CKF_MESSAGE_VERIFY);
707 REGISTER_PKCS11_CONSTANT(CKF_MULTI_MESSAGE);
708 REGISTER_PKCS11_CONSTANT(CKF_MULTI_MESSGE);
709 REGISTER_PKCS11_CONSTANT(CKF_FIND_OBJECTS);
710 REGISTER_PKCS11_CONSTANT(CKF_ENCRYPT);
711 REGISTER_PKCS11_CONSTANT(CKF_DECRYPT);
712 REGISTER_PKCS11_CONSTANT(CKF_DIGEST);
713 REGISTER_PKCS11_CONSTANT(CKF_SIGN);
714 REGISTER_PKCS11_CONSTANT(CKF_SIGN_RECOVER);
715 REGISTER_PKCS11_CONSTANT(CKF_VERIFY);
716 REGISTER_PKCS11_CONSTANT(CKF_VERIFY_RECOVER);
717 REGISTER_PKCS11_CONSTANT(CKF_GENERATE);
718 REGISTER_PKCS11_CONSTANT(CKF_GENERATE_KEY_PAIR);
719 REGISTER_PKCS11_CONSTANT(CKF_WRAP);
720 REGISTER_PKCS11_CONSTANT(CKF_UNWRAP);
721 REGISTER_PKCS11_CONSTANT(CKF_DERIVE);
722 REGISTER_PKCS11_CONSTANT(CKF_EC_F_P);
723 REGISTER_PKCS11_CONSTANT(CKF_EC_F_2M);
724 REGISTER_PKCS11_CONSTANT(CKF_EC_ECPARAMETERS);
725 REGISTER_PKCS11_CONSTANT(CKF_EC_OID);
726 REGISTER_PKCS11_CONSTANT(CKF_EC_NAMEDCURVE);
727 REGISTER_PKCS11_CONSTANT(CKF_EC_UNCOMPRESS);
728 REGISTER_PKCS11_CONSTANT(CKF_EC_COMPRESS);
729 REGISTER_PKCS11_CONSTANT(CKF_EC_CURVENAME);
730 REGISTER_PKCS11_CONSTANT(CKF_EXTENSION);
731 REGISTER_PKCS11_CONSTANT(CKF_END_OF_MESSAGE);
732 REGISTER_PKCS11_CONSTANT(CKF_INTERFACE_FORK_SAFE);
733 REGISTER_PKCS11_CONSTANT(CKF_LIBRARY_CANT_CREATE_OS_THREADS);
734 REGISTER_PKCS11_CONSTANT(CKF_OS_LOCKING_OK);
735 REGISTER_PKCS11_CONSTANT(CKF_DONT_BLOCK);
736 REGISTER_PKCS11_CONSTANT(CKF_NEXT_OTP);
737 REGISTER_PKCS11_CONSTANT(CKF_EXCLUDE_TIME);
738 REGISTER_PKCS11_CONSTANT(CKF_EXCLUDE_COUNTER);
739 REGISTER_PKCS11_CONSTANT(CKF_EXCLUDE_CHALLENGE);
740 REGISTER_PKCS11_CONSTANT(CKF_EXCLUDE_PIN);
741 REGISTER_PKCS11_CONSTANT(CKF_USER_FRIENDLY_OTP);
742 REGISTER_PKCS11_CONSTANT(CKF_HKDF_SALT_NULL);
743 REGISTER_PKCS11_CONSTANT(CKF_HKDF_SALT_DATA);
744 REGISTER_PKCS11_CONSTANT(CKF_HKDF_SALT_KEY);
745
746 REGISTER_PKCS11_CONSTANT(CKU_SO);
747 REGISTER_PKCS11_CONSTANT(CKU_USER);
748 REGISTER_PKCS11_CONSTANT(CKU_CONTEXT_SPECIFIC);
749
750 REGISTER_PKCS11_CONSTANT(CKS_RO_PUBLIC_SESSION);
751 REGISTER_PKCS11_CONSTANT(CKS_RO_USER_FUNCTIONS);
752 REGISTER_PKCS11_CONSTANT(CKS_RW_PUBLIC_SESSION);
753 REGISTER_PKCS11_CONSTANT(CKS_RW_USER_FUNCTIONS);
754 REGISTER_PKCS11_CONSTANT(CKS_RW_SO_FUNCTIONS);
755
756 REGISTER_PKCS11_CONSTANT(CKA_CLASS);
757 REGISTER_PKCS11_CONSTANT(CKA_TOKEN);
758 REGISTER_PKCS11_CONSTANT(CKA_PRIVATE);
759 REGISTER_PKCS11_CONSTANT(CKA_LABEL);
760 REGISTER_PKCS11_CONSTANT(CKA_APPLICATION);
761 REGISTER_PKCS11_CONSTANT(CKA_VALUE);
762 REGISTER_PKCS11_CONSTANT(CKA_OBJECT_ID);
763 REGISTER_PKCS11_CONSTANT(CKA_CERTIFICATE_TYPE);
764 REGISTER_PKCS11_CONSTANT(CKA_ISSUER);
765 REGISTER_PKCS11_CONSTANT(CKA_SERIAL_NUMBER);
766 REGISTER_PKCS11_CONSTANT(CKA_AC_ISSUER);
767 REGISTER_PKCS11_CONSTANT(CKA_OWNER);
768 REGISTER_PKCS11_CONSTANT(CKA_ATTR_TYPES);
769 REGISTER_PKCS11_CONSTANT(CKA_TRUSTED);
770 REGISTER_PKCS11_CONSTANT(CKA_CERTIFICATE_CATEGORY);
771 REGISTER_PKCS11_CONSTANT(CKA_JAVA_MIDP_SECURITY_DOMAIN);
772 REGISTER_PKCS11_CONSTANT(CKA_URL);
773 REGISTER_PKCS11_CONSTANT(CKA_HASH_OF_SUBJECT_PUBLIC_KEY);
774 REGISTER_PKCS11_CONSTANT(CKA_HASH_OF_ISSUER_PUBLIC_KEY);
775 REGISTER_PKCS11_CONSTANT(CKA_NAME_HASH_ALGORITHM);
776 REGISTER_PKCS11_CONSTANT(CKA_CHECK_VALUE);
777 REGISTER_PKCS11_CONSTANT(CKA_KEY_TYPE);
778 REGISTER_PKCS11_CONSTANT(CKA_SUBJECT);
779 REGISTER_PKCS11_CONSTANT(CKA_ID);
780 REGISTER_PKCS11_CONSTANT(CKA_SENSITIVE);
781 REGISTER_PKCS11_CONSTANT(CKA_ENCRYPT);
782 REGISTER_PKCS11_CONSTANT(CKA_DECRYPT);
783 REGISTER_PKCS11_CONSTANT(CKA_WRAP);
784 REGISTER_PKCS11_CONSTANT(CKA_UNWRAP);
785 REGISTER_PKCS11_CONSTANT(CKA_SIGN);
786 REGISTER_PKCS11_CONSTANT(CKA_SIGN_RECOVER);
787 REGISTER_PKCS11_CONSTANT(CKA_VERIFY);
788 REGISTER_PKCS11_CONSTANT(CKA_VERIFY_RECOVER);
789 REGISTER_PKCS11_CONSTANT(CKA_DERIVE);
790 REGISTER_PKCS11_CONSTANT(CKA_START_DATE);
791 REGISTER_PKCS11_CONSTANT(CKA_END_DATE);
792 REGISTER_PKCS11_CONSTANT(CKA_MODULUS);
793 REGISTER_PKCS11_CONSTANT(CKA_MODULUS_BITS);
794 REGISTER_PKCS11_CONSTANT(CKA_PUBLIC_EXPONENT);
795 REGISTER_PKCS11_CONSTANT(CKA_PRIVATE_EXPONENT);
796 REGISTER_PKCS11_CONSTANT(CKA_PRIME_1);
797 REGISTER_PKCS11_CONSTANT(CKA_PRIME_2);
798 REGISTER_PKCS11_CONSTANT(CKA_EXPONENT_1);
799 REGISTER_PKCS11_CONSTANT(CKA_EXPONENT_2);
800 REGISTER_PKCS11_CONSTANT(CKA_COEFFICIENT);
801 REGISTER_PKCS11_CONSTANT(CKA_PUBLIC_KEY_INFO);
802 REGISTER_PKCS11_CONSTANT(CKA_PRIME);
803 REGISTER_PKCS11_CONSTANT(CKA_SUBPRIME);
804 REGISTER_PKCS11_CONSTANT(CKA_BASE);
805 REGISTER_PKCS11_CONSTANT(CKA_PRIME_BITS);
806 REGISTER_PKCS11_CONSTANT(CKA_SUBPRIME_BITS);
807 REGISTER_PKCS11_CONSTANT(CKA_SUB_PRIME_BITS);
808 REGISTER_PKCS11_CONSTANT(CKA_VALUE_BITS);
809 REGISTER_PKCS11_CONSTANT(CKA_VALUE_LEN);
810 REGISTER_PKCS11_CONSTANT(CKA_EXTRACTABLE);
811 REGISTER_PKCS11_CONSTANT(CKA_LOCAL);
812 REGISTER_PKCS11_CONSTANT(CKA_NEVER_EXTRACTABLE);
813 REGISTER_PKCS11_CONSTANT(CKA_ALWAYS_SENSITIVE);
814 REGISTER_PKCS11_CONSTANT(CKA_KEY_GEN_MECHANISM);
815 REGISTER_PKCS11_CONSTANT(CKA_MODIFIABLE);
816 REGISTER_PKCS11_CONSTANT(CKA_COPYABLE);
817 REGISTER_PKCS11_CONSTANT(CKA_DESTROYABLE);
818 REGISTER_PKCS11_CONSTANT(CKA_ECDSA_PARAMS);
819 REGISTER_PKCS11_CONSTANT(CKA_EC_PARAMS);
820 REGISTER_PKCS11_CONSTANT(CKA_EC_POINT);
821 REGISTER_PKCS11_CONSTANT(CKA_SECONDARY_AUTH);
822 REGISTER_PKCS11_CONSTANT(CKA_AUTH_PIN_FLAGS);
823 REGISTER_PKCS11_CONSTANT(CKA_ALWAYS_AUTHENTICATE);
824 REGISTER_PKCS11_CONSTANT(CKA_WRAP_WITH_TRUSTED);
825 REGISTER_PKCS11_CONSTANT(CKA_WRAP_TEMPLATE);
826 REGISTER_PKCS11_CONSTANT(CKA_UNWRAP_TEMPLATE);
827 REGISTER_PKCS11_CONSTANT(CKA_DERIVE_TEMPLATE);
828 REGISTER_PKCS11_CONSTANT(CKA_OTP_FORMAT);
829 REGISTER_PKCS11_CONSTANT(CKA_OTP_LENGTH);
830 REGISTER_PKCS11_CONSTANT(CKA_OTP_TIME_INTERVAL);
831 REGISTER_PKCS11_CONSTANT(CKA_OTP_USER_FRIENDLY_MODE);
832 REGISTER_PKCS11_CONSTANT(CKA_OTP_CHALLENGE_REQUIREMENT);
833 REGISTER_PKCS11_CONSTANT(CKA_OTP_TIME_REQUIREMENT);
834 REGISTER_PKCS11_CONSTANT(CKA_OTP_COUNTER_REQUIREMENT);
835 REGISTER_PKCS11_CONSTANT(CKA_OTP_PIN_REQUIREMENT);
836 REGISTER_PKCS11_CONSTANT(CKA_OTP_COUNTER);
837 REGISTER_PKCS11_CONSTANT(CKA_OTP_TIME);
838 REGISTER_PKCS11_CONSTANT(CKA_OTP_USER_IDENTIFIER);
839 REGISTER_PKCS11_CONSTANT(CKA_OTP_SERVICE_IDENTIFIER);
840 REGISTER_PKCS11_CONSTANT(CKA_OTP_SERVICE_LOGO);
841 REGISTER_PKCS11_CONSTANT(CKA_OTP_SERVICE_LOGO_TYPE);
842 REGISTER_PKCS11_CONSTANT(CKA_GOSTR3410_PARAMS);
843 REGISTER_PKCS11_CONSTANT(CKA_GOSTR3411_PARAMS);
844 REGISTER_PKCS11_CONSTANT(CKA_GOST28147_PARAMS);
845 REGISTER_PKCS11_CONSTANT(CKA_HW_FEATURE_TYPE);
846 REGISTER_PKCS11_CONSTANT(CKA_RESET_ON_INIT);
847 REGISTER_PKCS11_CONSTANT(CKA_HAS_RESET);
848 REGISTER_PKCS11_CONSTANT(CKA_PIXEL_X);
849 REGISTER_PKCS11_CONSTANT(CKA_PIXEL_Y);
850 REGISTER_PKCS11_CONSTANT(CKA_RESOLUTION);
851 REGISTER_PKCS11_CONSTANT(CKA_CHAR_ROWS);
852 REGISTER_PKCS11_CONSTANT(CKA_CHAR_COLUMNS);
853 REGISTER_PKCS11_CONSTANT(CKA_COLOR);
854 REGISTER_PKCS11_CONSTANT(CKA_BITS_PER_PIXEL);
855 REGISTER_PKCS11_CONSTANT(CKA_CHAR_SETS);
856 REGISTER_PKCS11_CONSTANT(CKA_ENCODING_METHODS);
857 REGISTER_PKCS11_CONSTANT(CKA_MIME_TYPES);
858 REGISTER_PKCS11_CONSTANT(CKA_MECHANISM_TYPE);
859 REGISTER_PKCS11_CONSTANT(CKA_REQUIRED_CMS_ATTRIBUTES);
860 REGISTER_PKCS11_CONSTANT(CKA_DEFAULT_CMS_ATTRIBUTES);
861 REGISTER_PKCS11_CONSTANT(CKA_SUPPORTED_CMS_ATTRIBUTES);
862 REGISTER_PKCS11_CONSTANT(CKA_ALLOWED_MECHANISMS);
863
864 REGISTER_PKCS11_CONSTANT(CKA_PROFILE_ID);
865 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_BAG);
866 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_BAGSIZE);
867 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_BOBS1STMSG);
868 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_CKR);
869 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_CKS);
870 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_DHP);
871 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_DHR);
872 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_DHS);
873 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_HKR);
874 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_HKS);
875 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_ISALICE);
876 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_NHKR);
877 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_NHKS);
878 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_NR);
879 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_NS);
880 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_PNS);
881 REGISTER_PKCS11_CONSTANT(CKA_X2RATCHET_RK);
882
883 REGISTER_PKCS11_CONSTANT(CKA_VENDOR_DEFINED);
884
885 REGISTER_PKCS11_CONSTANT(CKO_DATA);
886 REGISTER_PKCS11_CONSTANT(CKO_CERTIFICATE);
887 REGISTER_PKCS11_CONSTANT(CKO_PUBLIC_KEY);
888 REGISTER_PKCS11_CONSTANT(CKO_PRIVATE_KEY);
889 REGISTER_PKCS11_CONSTANT(CKO_SECRET_KEY);
890 REGISTER_PKCS11_CONSTANT(CKO_HW_FEATURE);
891 REGISTER_PKCS11_CONSTANT(CKO_DOMAIN_PARAMETERS);
892 REGISTER_PKCS11_CONSTANT(CKO_MECHANISM);
893 REGISTER_PKCS11_CONSTANT(CKO_OTP_KEY);
894 REGISTER_PKCS11_CONSTANT(CKO_VENDOR_DEFINED);
895
896 REGISTER_PKCS11_CONSTANT(CKK_RSA);
897 REGISTER_PKCS11_CONSTANT(CKK_DSA);
898 REGISTER_PKCS11_CONSTANT(CKK_DH);
899 REGISTER_PKCS11_CONSTANT(CKK_ECDSA);
900 REGISTER_PKCS11_CONSTANT(CKK_EC);
901 REGISTER_PKCS11_CONSTANT(CKK_X9_42_DH);
902 REGISTER_PKCS11_CONSTANT(CKK_KEA);
903 REGISTER_PKCS11_CONSTANT(CKK_GENERIC_SECRET);
904 REGISTER_PKCS11_CONSTANT(CKK_RC2);
905 REGISTER_PKCS11_CONSTANT(CKK_RC4);
906 REGISTER_PKCS11_CONSTANT(CKK_DES);
907 REGISTER_PKCS11_CONSTANT(CKK_DES2);
908 REGISTER_PKCS11_CONSTANT(CKK_DES3);
909 REGISTER_PKCS11_CONSTANT(CKK_CAST);
910 REGISTER_PKCS11_CONSTANT(CKK_CAST3);
911 REGISTER_PKCS11_CONSTANT(CKK_CAST5);
912 REGISTER_PKCS11_CONSTANT(CKK_CAST128);
913 REGISTER_PKCS11_CONSTANT(CKK_RC5);
914 REGISTER_PKCS11_CONSTANT(CKK_IDEA);
915 REGISTER_PKCS11_CONSTANT(CKK_SKIPJACK);
916 REGISTER_PKCS11_CONSTANT(CKK_BATON);
917 REGISTER_PKCS11_CONSTANT(CKK_JUNIPER);
918 REGISTER_PKCS11_CONSTANT(CKK_CDMF);
919 REGISTER_PKCS11_CONSTANT(CKK_AES);
920 REGISTER_PKCS11_CONSTANT(CKK_BLOWFISH);
921 REGISTER_PKCS11_CONSTANT(CKK_TWOFISH);
922 REGISTER_PKCS11_CONSTANT(CKK_SECURID);
923 REGISTER_PKCS11_CONSTANT(CKK_HOTP);
924 REGISTER_PKCS11_CONSTANT(CKK_ACTI);
925 REGISTER_PKCS11_CONSTANT(CKK_CAMELLIA);
926 REGISTER_PKCS11_CONSTANT(CKK_ARIA);
927 REGISTER_PKCS11_CONSTANT(CKK_MD5_HMAC);
928 REGISTER_PKCS11_CONSTANT(CKK_SHA_1_HMAC);
929 REGISTER_PKCS11_CONSTANT(CKK_RIPEMD128_HMAC);
930 REGISTER_PKCS11_CONSTANT(CKK_RIPEMD160_HMAC);
931 REGISTER_PKCS11_CONSTANT(CKK_SHA256_HMAC);
932 REGISTER_PKCS11_CONSTANT(CKK_SHA384_HMAC);
933 REGISTER_PKCS11_CONSTANT(CKK_SHA512_HMAC);
934 REGISTER_PKCS11_CONSTANT(CKK_SHA224_HMAC);
935 REGISTER_PKCS11_CONSTANT(CKK_SEED);
936 REGISTER_PKCS11_CONSTANT(CKK_GOSTR3410);
937 REGISTER_PKCS11_CONSTANT(CKK_GOSTR3411);
938 REGISTER_PKCS11_CONSTANT(CKK_GOST28147);
939 REGISTER_PKCS11_CONSTANT(CKK_CHACHA20);
940 REGISTER_PKCS11_CONSTANT(CKK_POLY1305);
941 REGISTER_PKCS11_CONSTANT(CKK_AES_XTS);
942 REGISTER_PKCS11_CONSTANT(CKK_SHA3_224_HMAC);
943 REGISTER_PKCS11_CONSTANT(CKK_SHA3_256_HMAC);
944 REGISTER_PKCS11_CONSTANT(CKK_SHA3_384_HMAC);
945 REGISTER_PKCS11_CONSTANT(CKK_SHA3_512_HMAC);
946 REGISTER_PKCS11_CONSTANT(CKK_BLAKE2B_160_HMAC);
947 REGISTER_PKCS11_CONSTANT(CKK_BLAKE2B_256_HMAC);
948 REGISTER_PKCS11_CONSTANT(CKK_BLAKE2B_384_HMAC);
949 REGISTER_PKCS11_CONSTANT(CKK_BLAKE2B_512_HMAC);
950 REGISTER_PKCS11_CONSTANT(CKK_SALSA20);
951 REGISTER_PKCS11_CONSTANT(CKK_X2RATCHET);
952 REGISTER_PKCS11_CONSTANT(CKK_EC_EDWARDS);
953 REGISTER_PKCS11_CONSTANT(CKK_EC_MONTGOMERY);
954 REGISTER_PKCS11_CONSTANT(CKK_HKDF);
955 REGISTER_PKCS11_CONSTANT(CKK_SHA512_224_HMAC);
956 REGISTER_PKCS11_CONSTANT(CKK_SHA512_256_HMAC);
957 REGISTER_PKCS11_CONSTANT(CKK_SHA512_T_HMAC);
958 REGISTER_PKCS11_CONSTANT(CKK_VENDOR_DEFINED);
959
960 REGISTER_PKCS11_CONSTANT(CKG_MGF1_SHA1);
961 REGISTER_PKCS11_CONSTANT(CKG_MGF1_SHA256);
962 REGISTER_PKCS11_CONSTANT(CKG_MGF1_SHA384);
963 REGISTER_PKCS11_CONSTANT(CKG_MGF1_SHA512);
964 REGISTER_PKCS11_CONSTANT(CKG_MGF1_SHA224);
965 REGISTER_PKCS11_CONSTANT(CKG_MGF1_SHA3_224);
966 REGISTER_PKCS11_CONSTANT(CKG_MGF1_SHA3_256);
967 REGISTER_PKCS11_CONSTANT(CKG_MGF1_SHA3_384);
968 REGISTER_PKCS11_CONSTANT(CKG_MGF1_SHA3_512);
969
970 REGISTER_PKCS11_CONSTANT(CKZ_DATA_SPECIFIED);
971
972 REGISTER_PKCS11_CONSTANT(CKD_NULL);
973 REGISTER_PKCS11_CONSTANT(CKD_SHA1_KDF);
974 REGISTER_PKCS11_CONSTANT(CKD_SHA1_KDF_ASN1);
975 REGISTER_PKCS11_CONSTANT(CKD_SHA1_KDF_CONCATENATE);
976 REGISTER_PKCS11_CONSTANT(CKD_SHA224_KDF);
977 REGISTER_PKCS11_CONSTANT(CKD_SHA256_KDF);
978 REGISTER_PKCS11_CONSTANT(CKD_SHA384_KDF);
979 REGISTER_PKCS11_CONSTANT(CKD_SHA512_KDF);
980 REGISTER_PKCS11_CONSTANT(CKD_CPDIVERSIFY_KDF);
981 REGISTER_PKCS11_CONSTANT(CKD_SHA3_224_KDF);
982 REGISTER_PKCS11_CONSTANT(CKD_SHA3_256_KDF);
983 REGISTER_PKCS11_CONSTANT(CKD_SHA3_384_KDF);
984 REGISTER_PKCS11_CONSTANT(CKD_SHA3_512_KDF);
985 REGISTER_PKCS11_CONSTANT(CKD_SHA1_KDF_SP800);
986 REGISTER_PKCS11_CONSTANT(CKD_SHA224_KDF_SP800);
987 REGISTER_PKCS11_CONSTANT(CKD_SHA256_KDF_SP800);
988 REGISTER_PKCS11_CONSTANT(CKD_SHA384_KDF_SP800);
989 REGISTER_PKCS11_CONSTANT(CKD_SHA512_KDF_SP800);
990 REGISTER_PKCS11_CONSTANT(CKD_SHA3_224_KDF_SP800);
991 REGISTER_PKCS11_CONSTANT(CKD_SHA3_256_KDF_SP800);
992 REGISTER_PKCS11_CONSTANT(CKD_SHA3_384_KDF_SP800);
993 REGISTER_PKCS11_CONSTANT(CKD_SHA3_512_KDF_SP800);
994 REGISTER_PKCS11_CONSTANT(CKD_BLAKE2B_160_KDF);
995 REGISTER_PKCS11_CONSTANT(CKD_BLAKE2B_256_KDF);
996 REGISTER_PKCS11_CONSTANT(CKD_BLAKE2B_384_KDF);
997 REGISTER_PKCS11_CONSTANT(CKD_BLAKE2B_512_KDF);
998
999 REGISTER_PKCS11_CONSTANT(CKR_OK);
1000 REGISTER_PKCS11_CONSTANT(CKR_CANCEL);
1001 REGISTER_PKCS11_CONSTANT(CKR_HOST_MEMORY);
1002 REGISTER_PKCS11_CONSTANT(CKR_SLOT_ID_INVALID);
1003 REGISTER_PKCS11_CONSTANT(CKR_GENERAL_ERROR);
1004 REGISTER_PKCS11_CONSTANT(CKR_FUNCTION_FAILED);
1005 REGISTER_PKCS11_CONSTANT(CKR_ARGUMENTS_BAD);
1006 REGISTER_PKCS11_CONSTANT(CKR_NO_EVENT);
1007 REGISTER_PKCS11_CONSTANT(CKR_NEED_TO_CREATE_THREADS);
1008 REGISTER_PKCS11_CONSTANT(CKR_CANT_LOCK);
1009 REGISTER_PKCS11_CONSTANT(CKR_ATTRIBUTE_READ_ONLY);
1010 REGISTER_PKCS11_CONSTANT(CKR_ATTRIBUTE_SENSITIVE);
1011 REGISTER_PKCS11_CONSTANT(CKR_ATTRIBUTE_TYPE_INVALID);
1012 REGISTER_PKCS11_CONSTANT(CKR_ATTRIBUTE_VALUE_INVALID);
1013 REGISTER_PKCS11_CONSTANT(CKR_DATA_INVALID);
1014 REGISTER_PKCS11_CONSTANT(CKR_DATA_LEN_RANGE);
1015 REGISTER_PKCS11_CONSTANT(CKR_DEVICE_ERROR);
1016 REGISTER_PKCS11_CONSTANT(CKR_DEVICE_MEMORY);
1017 REGISTER_PKCS11_CONSTANT(CKR_DEVICE_REMOVED);
1018 REGISTER_PKCS11_CONSTANT(CKR_ENCRYPTED_DATA_INVALID);
1019 REGISTER_PKCS11_CONSTANT(CKR_ENCRYPTED_DATA_LEN_RANGE);
1020 REGISTER_PKCS11_CONSTANT(CKR_FUNCTION_CANCELED);
1021 REGISTER_PKCS11_CONSTANT(CKR_FUNCTION_NOT_PARALLEL);
1022 REGISTER_PKCS11_CONSTANT(CKR_FUNCTION_NOT_SUPPORTED);
1023 REGISTER_PKCS11_CONSTANT(CKR_KEY_HANDLE_INVALID);
1024 REGISTER_PKCS11_CONSTANT(CKR_KEY_SIZE_RANGE);
1025 REGISTER_PKCS11_CONSTANT(CKR_KEY_TYPE_INCONSISTENT);
1026 REGISTER_PKCS11_CONSTANT(CKR_KEY_NOT_NEEDED);
1027 REGISTER_PKCS11_CONSTANT(CKR_KEY_CHANGED);
1028 REGISTER_PKCS11_CONSTANT(CKR_KEY_NEEDED);
1029 REGISTER_PKCS11_CONSTANT(CKR_KEY_INDIGESTIBLE);
1030 REGISTER_PKCS11_CONSTANT(CKR_KEY_FUNCTION_NOT_PERMITTED);
1031 REGISTER_PKCS11_CONSTANT(CKR_KEY_NOT_WRAPPABLE);
1032 REGISTER_PKCS11_CONSTANT(CKR_KEY_UNEXTRACTABLE);
1033 REGISTER_PKCS11_CONSTANT(CKR_MECHANISM_INVALID);
1034 REGISTER_PKCS11_CONSTANT(CKR_MECHANISM_PARAM_INVALID);
1035 REGISTER_PKCS11_CONSTANT(CKR_OBJECT_HANDLE_INVALID);
1036 REGISTER_PKCS11_CONSTANT(CKR_OPERATION_ACTIVE);
1037 REGISTER_PKCS11_CONSTANT(CKR_OPERATION_NOT_INITIALIZED);
1038 REGISTER_PKCS11_CONSTANT(CKR_PIN_INCORRECT);
1039 REGISTER_PKCS11_CONSTANT(CKR_PIN_INVALID);
1040 REGISTER_PKCS11_CONSTANT(CKR_PIN_LEN_RANGE);
1041 REGISTER_PKCS11_CONSTANT(CKR_PIN_EXPIRED);
1042 REGISTER_PKCS11_CONSTANT(CKR_PIN_LOCKED);
1043 REGISTER_PKCS11_CONSTANT(CKR_SESSION_CLOSED);
1044 REGISTER_PKCS11_CONSTANT(CKR_SESSION_COUNT);
1045 REGISTER_PKCS11_CONSTANT(CKR_SESSION_HANDLE_INVALID);
1046 REGISTER_PKCS11_CONSTANT(CKR_SESSION_PARALLEL_NOT_SUPPORTED);
1047 REGISTER_PKCS11_CONSTANT(CKR_SESSION_READ_ONLY);
1048 REGISTER_PKCS11_CONSTANT(CKR_SESSION_EXISTS);
1049 REGISTER_PKCS11_CONSTANT(CKR_SESSION_READ_ONLY_EXISTS);
1050 REGISTER_PKCS11_CONSTANT(CKR_SESSION_READ_WRITE_SO_EXISTS);
1051 REGISTER_PKCS11_CONSTANT(CKR_SIGNATURE_INVALID);
1052 REGISTER_PKCS11_CONSTANT(CKR_SIGNATURE_LEN_RANGE);
1053 REGISTER_PKCS11_CONSTANT(CKR_TEMPLATE_INCOMPLETE);
1054 REGISTER_PKCS11_CONSTANT(CKR_TEMPLATE_INCONSISTENT);
1055 REGISTER_PKCS11_CONSTANT(CKR_TOKEN_NOT_PRESENT);
1056 REGISTER_PKCS11_CONSTANT(CKR_TOKEN_NOT_RECOGNIZED);
1057 REGISTER_PKCS11_CONSTANT(CKR_TOKEN_WRITE_PROTECTED);
1058 REGISTER_PKCS11_CONSTANT(CKR_UNWRAPPING_KEY_HANDLE_INVALID);
1059 REGISTER_PKCS11_CONSTANT(CKR_UNWRAPPING_KEY_SIZE_RANGE);
1060 REGISTER_PKCS11_CONSTANT(CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT);
1061 REGISTER_PKCS11_CONSTANT(CKR_USER_ALREADY_LOGGED_IN);
1062 REGISTER_PKCS11_CONSTANT(CKR_USER_NOT_LOGGED_IN);
1063 REGISTER_PKCS11_CONSTANT(CKR_USER_PIN_NOT_INITIALIZED);
1064 REGISTER_PKCS11_CONSTANT(CKR_USER_TYPE_INVALID);
1065 REGISTER_PKCS11_CONSTANT(CKR_USER_ANOTHER_ALREADY_LOGGED_IN);
1066 REGISTER_PKCS11_CONSTANT(CKR_USER_TOO_MANY_TYPES);
1067 REGISTER_PKCS11_CONSTANT(CKR_WRAPPED_KEY_INVALID);
1068 REGISTER_PKCS11_CONSTANT(CKR_WRAPPED_KEY_LEN_RANGE);
1069 REGISTER_PKCS11_CONSTANT(CKR_WRAPPING_KEY_HANDLE_INVALID);
1070 REGISTER_PKCS11_CONSTANT(CKR_WRAPPING_KEY_SIZE_RANGE);
1071 REGISTER_PKCS11_CONSTANT(CKR_WRAPPING_KEY_TYPE_INCONSISTENT);
1072 REGISTER_PKCS11_CONSTANT(CKR_RANDOM_SEED_NOT_SUPPORTED);
1073 REGISTER_PKCS11_CONSTANT(CKR_RANDOM_NO_RNG);
1074 REGISTER_PKCS11_CONSTANT(CKR_DOMAIN_PARAMS_INVALID);
1075 REGISTER_PKCS11_CONSTANT(CKR_BUFFER_TOO_SMALL);
1076 REGISTER_PKCS11_CONSTANT(CKR_SAVED_STATE_INVALID);
1077 REGISTER_PKCS11_CONSTANT(CKR_INFORMATION_SENSITIVE);
1078 REGISTER_PKCS11_CONSTANT(CKR_STATE_UNSAVEABLE);
1079 REGISTER_PKCS11_CONSTANT(CKR_CRYPTOKI_NOT_INITIALIZED);
1080 REGISTER_PKCS11_CONSTANT(CKR_CRYPTOKI_ALREADY_INITIALIZED);
1081 REGISTER_PKCS11_CONSTANT(CKR_MUTEX_BAD);
1082 REGISTER_PKCS11_CONSTANT(CKR_MUTEX_NOT_LOCKED);
1083 REGISTER_PKCS11_CONSTANT(CKR_FUNCTION_REJECTED);
1084 REGISTER_PKCS11_CONSTANT(CKR_VENDOR_DEFINED);
1085
1086 return SUCCESS;
1087 }
1088
1089
PHP_MINFO_FUNCTION(pkcs11)1090 PHP_MINFO_FUNCTION(pkcs11)
1091 {
1092 php_info_print_table_start();
1093 php_info_print_table_header(2, "PKCS#11 support", "enabled");
1094 php_info_print_table_end();
1095 }
1096
1097 zend_module_entry pkcs11_module_entry = {
1098 STANDARD_MODULE_HEADER,
1099 PHP_PKCS11_NAME,
1100 NULL, /* zend_function_entry */
1101 PHP_MINIT(pkcs11), /* PHP_MINIT - Module initialization */
1102 NULL, /* PHP_MSHUTDOWN - Module shutdown */
1103 NULL, /* PHP_RINIT - Request initialization */
1104 NULL, /* PHP_RSHUTDOWN - Request shutdown */
1105 PHP_MINFO(pkcs11), /* PHP_MINFO - Module info */
1106 PHP_PKCS11_VERSION, /* Version */
1107 STANDARD_MODULE_PROPERTIES
1108 };
1109
1110 #ifdef COMPILE_DL_PKCS11
1111 # ifdef ZTS
1112 ZEND_TSRMLS_CACHE_DEFINE()
1113 # endif
1114 ZEND_GET_MODULE(pkcs11)
1115 #endif
1116