Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
pkcs11t.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) OASIS Open 2014. All rights reserved.
3  * OASIS trademark, IPR and other policies apply.
4  * http://www.oasis-open.org/policies-guidelines/ipr
5  */
6 
7 /* See top of pkcs11.h for information about the macros that
8  * must be defined and the structure-packing conventions that
9  * must be set before including this file. */
10 
11 #ifndef _PKCS11T_H_
12 #define _PKCS11T_H_ 1
13 
14 #define CRYPTOKI_VERSION_MAJOR 2
15 #define CRYPTOKI_VERSION_MINOR 40
16 #define CRYPTOKI_VERSION_AMENDMENT 0
17 
18 #define CK_TRUE 1
19 #define CK_FALSE 0
20 
21 #ifndef CK_DISABLE_TRUE_FALSE
22 #ifndef FALSE
23 #define FALSE CK_FALSE
24 #endif
25 
26 #ifndef TRUE
27 #define TRUE CK_TRUE
28 #endif
29 #endif
30 
31 /* an unsigned 8-bit value */
32 typedef unsigned char CK_BYTE;
33 
34 /* an unsigned 8-bit character */
35 typedef CK_BYTE CK_CHAR;
36 
37 /* an 8-bit UTF-8 character */
39 
40 /* a BYTE-sized Boolean flag */
41 typedef CK_BYTE CK_BBOOL;
42 
43 /* an unsigned value, at least 32 bits long */
44 typedef unsigned long int CK_ULONG;
45 
46 /* a signed value, the same size as a CK_ULONG */
47 typedef long int CK_LONG;
48 
49 /* at least 32 bits; each bit is a Boolean flag */
51 
52 
53 /* some special values for certain CK_ULONG variables */
54 #define CK_UNAVAILABLE_INFORMATION (~0UL)
55 #define CK_EFFECTIVELY_INFINITE 0UL
56 
57 
62 typedef void CK_PTR CK_VOID_PTR;
63 
64 /* Pointer to a CK_VOID_PTR-- i.e., pointer to pointer to void */
66 
67 
68 /* The following value is always invalid if used as a session */
69 /* handle or object handle */
70 #define CK_INVALID_HANDLE 0UL
71 
72 
73 typedef struct CK_VERSION {
74  CK_BYTE major; /* integer portion of version number */
75  CK_BYTE minor; /* 1/100ths portion of version number */
76 } CK_VERSION;
77 
79 
80 
81 typedef struct CK_INFO {
82  /* manufacturerID and libraryDecription have been changed from
83  * CK_CHAR to CK_UTF8CHAR for v2.10 */
84  CK_VERSION cryptokiVersion; /* Cryptoki interface ver */
85  CK_UTF8CHAR manufacturerID[32]; /* blank padded */
86  CK_FLAGS flags; /* must be zero */
87 
88  CK_UTF8CHAR libraryDescription[32]; /* blank padded */
89  CK_VERSION libraryVersion; /* version of library */
90 } CK_INFO;
91 
93 
94 
95 /* CK_NOTIFICATION enumerates the types of notifications that
96  * Cryptoki provides to an application */
98 #define CKN_SURRENDER 0UL
99 #define CKN_OTP_CHANGED 1UL
100 
101 
103 
105 
106 
107 /* CK_SLOT_INFO provides information about a slot */
108 typedef struct CK_SLOT_INFO {
109  /* slotDescription and manufacturerID have been changed from
110  * CK_CHAR to CK_UTF8CHAR for v2.10 */
111  CK_UTF8CHAR slotDescription[64]; /* blank padded */
112  CK_UTF8CHAR manufacturerID[32]; /* blank padded */
114 
115  CK_VERSION hardwareVersion; /* version of hardware */
116  CK_VERSION firmwareVersion; /* version of firmware */
117 } CK_SLOT_INFO;
118 
119 /* flags: bit flags that provide capabilities of the slot
120  * Bit Flag Mask Meaning
121  */
122 #define CKF_TOKEN_PRESENT 0x00000001UL /* a token is there */
123 #define CKF_REMOVABLE_DEVICE 0x00000002UL /* removable devices*/
124 #define CKF_HW_SLOT 0x00000004UL /* hardware slot */
125 
127 
128 
129 /* CK_TOKEN_INFO provides information about a token */
130 typedef struct CK_TOKEN_INFO {
131  /* label, manufacturerID, and model have been changed from
132  * CK_CHAR to CK_UTF8CHAR for v2.10 */
133  CK_UTF8CHAR label[32]; /* blank padded */
134  CK_UTF8CHAR manufacturerID[32]; /* blank padded */
135  CK_UTF8CHAR model[16]; /* blank padded */
136  CK_CHAR serialNumber[16]; /* blank padded */
137  CK_FLAGS flags; /* see below */
138 
139  CK_ULONG ulMaxSessionCount; /* max open sessions */
140  CK_ULONG ulSessionCount; /* sess. now open */
141  CK_ULONG ulMaxRwSessionCount; /* max R/W sessions */
142  CK_ULONG ulRwSessionCount; /* R/W sess. now open */
143  CK_ULONG ulMaxPinLen; /* in bytes */
144  CK_ULONG ulMinPinLen; /* in bytes */
146  CK_ULONG ulFreePublicMemory; /* in bytes */
149  CK_VERSION hardwareVersion; /* version of hardware */
150  CK_VERSION firmwareVersion; /* version of firmware */
151  CK_CHAR utcTime[16]; /* time */
152 } CK_TOKEN_INFO;
153 
154 /* The flags parameter is defined as follows:
155  * Bit Flag Mask Meaning
156  */
157 #define CKF_RNG 0x00000001UL /* has random #
158  * generator */
159 #define CKF_WRITE_PROTECTED 0x00000002UL /* token is
160  * write-
161  * protected */
162 #define CKF_LOGIN_REQUIRED 0x00000004UL /* user must
163  * login */
164 #define CKF_USER_PIN_INITIALIZED 0x00000008UL /* normal user's
165  * PIN is set */
166 
167 /* CKF_RESTORE_KEY_NOT_NEEDED. If it is set,
168  * that means that *every* time the state of cryptographic
169  * operations of a session is successfully saved, all keys
170  * needed to continue those operations are stored in the state */
171 #define CKF_RESTORE_KEY_NOT_NEEDED 0x00000020UL
172 
173 /* CKF_CLOCK_ON_TOKEN. If it is set, that means
174  * that the token has some sort of clock. The time on that
175  * clock is returned in the token info structure */
176 #define CKF_CLOCK_ON_TOKEN 0x00000040UL
177 
178 /* CKF_PROTECTED_AUTHENTICATION_PATH. If it is
179  * set, that means that there is some way for the user to login
180  * without sending a PIN through the Cryptoki library itself */
181 #define CKF_PROTECTED_AUTHENTICATION_PATH 0x00000100UL
182 
183 /* CKF_DUAL_CRYPTO_OPERATIONS. If it is true,
184  * that means that a single session with the token can perform
185  * dual simultaneous cryptographic operations (digest and
186  * encrypt; decrypt and digest; sign and encrypt; and decrypt
187  * and sign) */
188 #define CKF_DUAL_CRYPTO_OPERATIONS 0x00000200UL
189 
190 /* CKF_TOKEN_INITIALIZED. If it is true, the
191  * token has been initialized using C_InitializeToken or an
192  * equivalent mechanism outside the scope of PKCS #11.
193  * Calling C_InitializeToken when this flag is set will cause
194  * the token to be reinitialized. */
195 #define CKF_TOKEN_INITIALIZED 0x00000400UL
196 
197 /* CKF_SECONDARY_AUTHENTICATION. If it is
198  * true, the token supports secondary authentication for
199  * private key objects. This flag is deprecated in v2.11 and
200  onwards. */
201 #define CKF_SECONDARY_AUTHENTICATION 0x00000800UL
202 
203 /* CKF_USER_PIN_COUNT_LOW. If it is true, an
204  * incorrect user login PIN has been entered at least once
205  * since the last successful authentication. */
206 #define CKF_USER_PIN_COUNT_LOW 0x00010000UL
207 
208 /* CKF_USER_PIN_FINAL_TRY. If it is true,
209  * supplying an incorrect user PIN will it to become locked. */
210 #define CKF_USER_PIN_FINAL_TRY 0x00020000UL
211 
212 /* CKF_USER_PIN_LOCKED. If it is true, the
213  * user PIN has been locked. User login to the token is not
214  * possible. */
215 #define CKF_USER_PIN_LOCKED 0x00040000UL
216 
217 /* CKF_USER_PIN_TO_BE_CHANGED. If it is true,
218  * the user PIN value is the default value set by token
219  * initialization or manufacturing, or the PIN has been
220  * expired by the card. */
221 #define CKF_USER_PIN_TO_BE_CHANGED 0x00080000UL
222 
223 /* CKF_SO_PIN_COUNT_LOW. If it is true, an
224  * incorrect SO login PIN has been entered at least once since
225  * the last successful authentication. */
226 #define CKF_SO_PIN_COUNT_LOW 0x00100000UL
227 
228 /* CKF_SO_PIN_FINAL_TRY. If it is true,
229  * supplying an incorrect SO PIN will it to become locked. */
230 #define CKF_SO_PIN_FINAL_TRY 0x00200000UL
231 
232 /* CKF_SO_PIN_LOCKED if new for v2.10. If it is true, the SO
233  * PIN has been locked. SO login to the token is not possible.
234  */
235 #define CKF_SO_PIN_LOCKED 0x00400000UL
236 
237 /* CKF_SO_PIN_TO_BE_CHANGED. If it is true,
238  * the SO PIN value is the default value set by token
239  * initialization or manufacturing, or the PIN has been
240  * expired by the card. */
241 #define CKF_SO_PIN_TO_BE_CHANGED 0x00800000UL
242 
243 #define CKF_ERROR_STATE 0x01000000UL
244 
246 
247 
248 /* CK_SESSION_HANDLE is a Cryptoki-assigned value that
249  * identifies a session */
251 
253 
254 
255 /* CK_USER_TYPE enumerates the types of Cryptoki users */
257 /* Security Officer */
258 #define CKU_SO 0UL
259 /* Normal user */
260 #define CKU_USER 1UL
261 /* Context specific */
262 #define CKU_CONTEXT_SPECIFIC 2UL
263 
264 /* CK_STATE enumerates the session states */
266 #define CKS_RO_PUBLIC_SESSION 0UL
267 #define CKS_RO_USER_FUNCTIONS 1UL
268 #define CKS_RW_PUBLIC_SESSION 2UL
269 #define CKS_RW_USER_FUNCTIONS 3UL
270 #define CKS_RW_SO_FUNCTIONS 4UL
271 
272 
273 /* CK_SESSION_INFO provides information about a session */
274 typedef struct CK_SESSION_INFO {
277  CK_FLAGS flags; /* see below */
278  CK_ULONG ulDeviceError; /* device-dependent error code */
280 
281 /* The flags are defined in the following table:
282  * Bit Flag Mask Meaning
283  */
284 #define CKF_RW_SESSION 0x00000002UL /* session is r/w */
285 #define CKF_SERIAL_SESSION 0x00000004UL /* no parallel */
286 
288 
289 
290 /* CK_OBJECT_HANDLE is a token-specific identifier for an
291  * object */
293 
295 
296 
297 /* CK_OBJECT_CLASS is a value that identifies the classes (or
298  * types) of objects that Cryptoki recognizes. It is defined
299  * as follows: */
301 
302 /* The following classes of objects are defined: */
303 #define CKO_DATA 0x00000000UL
304 #define CKO_CERTIFICATE 0x00000001UL
305 #define CKO_PUBLIC_KEY 0x00000002UL
306 #define CKO_PRIVATE_KEY 0x00000003UL
307 #define CKO_SECRET_KEY 0x00000004UL
308 #define CKO_HW_FEATURE 0x00000005UL
309 #define CKO_DOMAIN_PARAMETERS 0x00000006UL
310 #define CKO_MECHANISM 0x00000007UL
311 #define CKO_OTP_KEY 0x00000008UL
312 
313 #define CKO_VENDOR_DEFINED 0x80000000UL
314 
316 
317 /* CK_HW_FEATURE_TYPE is a
318  * value that identifies the hardware feature type of an object
319  * with CK_OBJECT_CLASS equal to CKO_HW_FEATURE. */
321 
322 /* The following hardware feature types are defined */
323 #define CKH_MONOTONIC_COUNTER 0x00000001UL
324 #define CKH_CLOCK 0x00000002UL
325 #define CKH_USER_INTERFACE 0x00000003UL
326 #define CKH_VENDOR_DEFINED 0x80000000UL
327 
328 /* CK_KEY_TYPE is a value that identifies a key type */
330 
331 /* the following key types are defined: */
332 #define CKK_RSA 0x00000000UL
333 #define CKK_DSA 0x00000001UL
334 #define CKK_DH 0x00000002UL
335 /* CKK_ECDSA is deprecated in v2.11, CKK_EC is preferred. */
336 #define CKK_ECDSA 0x00000003UL
337 #define CKK_EC 0x00000003UL
338 #define CKK_X9_42_DH 0x00000004UL
339 #define CKK_KEA 0x00000005UL
340 #define CKK_GENERIC_SECRET 0x00000010UL
341 #define CKK_RC2 0x00000011UL
342 #define CKK_RC4 0x00000012UL
343 #define CKK_DES 0x00000013UL
344 #define CKK_DES2 0x00000014UL
345 #define CKK_DES3 0x00000015UL
346 #define CKK_CAST 0x00000016UL
347 #define CKK_CAST3 0x00000017UL
348 /* CKK_CAST5 is deprecated in v2.11, CKK_CAST128 is preferred. */
349 #define CKK_CAST5 0x00000018UL
350 #define CKK_CAST128 0x00000018UL
351 #define CKK_RC5 0x00000019UL
352 #define CKK_IDEA 0x0000001AUL
353 #define CKK_SKIPJACK 0x0000001BUL
354 #define CKK_BATON 0x0000001CUL
355 #define CKK_JUNIPER 0x0000001DUL
356 #define CKK_CDMF 0x0000001EUL
357 #define CKK_AES 0x0000001FUL
358 #define CKK_BLOWFISH 0x00000020UL
359 #define CKK_TWOFISH 0x00000021UL
360 #define CKK_SECURID 0x00000022UL
361 #define CKK_HOTP 0x00000023UL
362 #define CKK_ACTI 0x00000024UL
363 #define CKK_CAMELLIA 0x00000025UL
364 #define CKK_ARIA 0x00000026UL
365 
366 /* new for v2.40 */
367 #define CKK_SHA512_224_HMAC 0x00000027UL
368 #define CKK_SHA512_256_HMAC 0x00000028UL
369 #define CKK_SHA512_T_HMAC 0x00000029UL
370 
371 #define CKK_SHA_1_HMAC 0x00000040UL
372 #define CKK_SHA224_HMAC 0x00000041UL
373 #define CKK_SHA256_HMAC 0x00000042UL
374 #define CKK_SHA384_HMAC 0x00000043UL
375 #define CKK_SHA512_HMAC 0x00000044UL
376 
377 #define CKK_SEED 0x00000050UL
378 
379 #define CKK_GOSTR3410 0x00000060UL
380 #define CKK_GOSTR3411 0x00000061UL
381 #define CKK_GOST28147 0x00000062UL
382 
383 #define CKK_VENDOR_DEFINED 0x80000000UL
384 
385 
386 /* CK_CERTIFICATE_TYPE is a value that identifies a certificate
387  * type */
389 
390 /* new for v2.40 */
391 #define CK_CERTIFICATE_CATEGORY_UNSPECIFIED 0UL
392 #define CK_CERTIFICATE_CATEGORY_TOKEN_USER 1UL
393 #define CK_CERTIFICATE_CATEGORY_AUTHORITY 2UL
394 #define CK_CERTIFICATE_CATEGORY_OTHER_ENTITY 3UL
395 
396 /* new for v2.40 */
397 #define CK_SECURITY_DOMAIN_UNSPECIFIED 0UL
398 #define CK_SECURITY_DOMAIN_MANUFACTURER 1UL
399 #define CK_SECURITY_DOMAIN_OPERATOR 2UL
400 #define CK_SECURITY_DOMAIN_THIRD_PARTY 3UL
401 
402 
403 /* The following certificate types are defined: */
404 #define CKC_X_509 0x00000000UL
405 #define CKC_X_509_ATTR_CERT 0x00000001UL
406 #define CKC_WTLS 0x00000002UL
407 #define CKC_VENDOR_DEFINED 0x80000000UL
408 
409 
410 /* CK_ATTRIBUTE_TYPE is a value that identifies an attribute
411  * type */
413 
414 /* The CKF_ARRAY_ATTRIBUTE flag identifies an attribute which
415  consists of an array of values. */
416 #define CKF_ARRAY_ATTRIBUTE 0x40000000UL
417 
418 /* The following OTP-related defines relate to the CKA_OTP_FORMAT attribute */
419 #define CK_OTP_FORMAT_DECIMAL 0UL
420 #define CK_OTP_FORMAT_HEXADECIMAL 1UL
421 #define CK_OTP_FORMAT_ALPHANUMERIC 2UL
422 #define CK_OTP_FORMAT_BINARY 3UL
423 
424 /* The following OTP-related defines relate to the CKA_OTP_..._REQUIREMENT attributes */
425 #define CK_OTP_PARAM_IGNORED 0UL
426 #define CK_OTP_PARAM_OPTIONAL 1UL
427 #define CK_OTP_PARAM_MANDATORY 2UL
428 
429 /* The following attribute types are defined: */
430 #define CKA_CLASS 0x00000000UL
431 #define CKA_TOKEN 0x00000001UL
432 #define CKA_PRIVATE 0x00000002UL
433 #define CKA_LABEL 0x00000003UL
434 #define CKA_APPLICATION 0x00000010UL
435 #define CKA_VALUE 0x00000011UL
436 #define CKA_OBJECT_ID 0x00000012UL
437 #define CKA_CERTIFICATE_TYPE 0x00000080UL
438 #define CKA_ISSUER 0x00000081UL
439 #define CKA_SERIAL_NUMBER 0x00000082UL
440 #define CKA_AC_ISSUER 0x00000083UL
441 #define CKA_OWNER 0x00000084UL
442 #define CKA_ATTR_TYPES 0x00000085UL
443 #define CKA_TRUSTED 0x00000086UL
444 #define CKA_CERTIFICATE_CATEGORY 0x00000087UL
445 #define CKA_JAVA_MIDP_SECURITY_DOMAIN 0x00000088UL
446 #define CKA_URL 0x00000089UL
447 #define CKA_HASH_OF_SUBJECT_PUBLIC_KEY 0x0000008AUL
448 #define CKA_HASH_OF_ISSUER_PUBLIC_KEY 0x0000008BUL
449 #define CKA_NAME_HASH_ALGORITHM 0x0000008CUL
450 #define CKA_CHECK_VALUE 0x00000090UL
451 
452 #define CKA_KEY_TYPE 0x00000100UL
453 #define CKA_SUBJECT 0x00000101UL
454 #define CKA_ID 0x00000102UL
455 #define CKA_SENSITIVE 0x00000103UL
456 #define CKA_ENCRYPT 0x00000104UL
457 #define CKA_DECRYPT 0x00000105UL
458 #define CKA_WRAP 0x00000106UL
459 #define CKA_UNWRAP 0x00000107UL
460 #define CKA_SIGN 0x00000108UL
461 #define CKA_SIGN_RECOVER 0x00000109UL
462 #define CKA_VERIFY 0x0000010AUL
463 #define CKA_VERIFY_RECOVER 0x0000010BUL
464 #define CKA_DERIVE 0x0000010CUL
465 #define CKA_START_DATE 0x00000110UL
466 #define CKA_END_DATE 0x00000111UL
467 #define CKA_MODULUS 0x00000120UL
468 #define CKA_MODULUS_BITS 0x00000121UL
469 #define CKA_PUBLIC_EXPONENT 0x00000122UL
470 #define CKA_PRIVATE_EXPONENT 0x00000123UL
471 #define CKA_PRIME_1 0x00000124UL
472 #define CKA_PRIME_2 0x00000125UL
473 #define CKA_EXPONENT_1 0x00000126UL
474 #define CKA_EXPONENT_2 0x00000127UL
475 #define CKA_COEFFICIENT 0x00000128UL
476 #define CKA_PUBLIC_KEY_INFO 0x00000129UL
477 #define CKA_PRIME 0x00000130UL
478 #define CKA_SUBPRIME 0x00000131UL
479 #define CKA_BASE 0x00000132UL
480 
481 #define CKA_PRIME_BITS 0x00000133UL
482 #define CKA_SUBPRIME_BITS 0x00000134UL
483 /* (To retain backwards-compatibility) */
484 #define CKA_SUB_PRIME_BITS CKA_SUBPRIME_BITS
485 
486 #define CKA_VALUE_BITS 0x00000160UL
487 #define CKA_VALUE_LEN 0x00000161UL
488 #define CKA_EXTRACTABLE 0x00000162UL
489 #define CKA_LOCAL 0x00000163UL
490 #define CKA_NEVER_EXTRACTABLE 0x00000164UL
491 #define CKA_ALWAYS_SENSITIVE 0x00000165UL
492 #define CKA_KEY_GEN_MECHANISM 0x00000166UL
493 
494 #define CKA_MODIFIABLE 0x00000170UL
495 #define CKA_COPYABLE 0x00000171UL
496 
497 /* new for v2.40 */
498 #define CKA_DESTROYABLE 0x00000172UL
499 
500 /* CKA_ECDSA_PARAMS is deprecated in v2.11,
501  * CKA_EC_PARAMS is preferred. */
502 #define CKA_ECDSA_PARAMS 0x00000180UL
503 #define CKA_EC_PARAMS 0x00000180UL
504 
505 #define CKA_EC_POINT 0x00000181UL
506 
507 /* CKA_SECONDARY_AUTH, CKA_AUTH_PIN_FLAGS,
508  * are new for v2.10. Deprecated in v2.11 and onwards. */
509 #define CKA_SECONDARY_AUTH 0x00000200UL /* Deprecated */
510 #define CKA_AUTH_PIN_FLAGS 0x00000201UL /* Deprecated */
511 
512 #define CKA_ALWAYS_AUTHENTICATE 0x00000202UL
513 
514 #define CKA_WRAP_WITH_TRUSTED 0x00000210UL
515 #define CKA_WRAP_TEMPLATE (CKF_ARRAY_ATTRIBUTE|0x00000211UL)
516 #define CKA_UNWRAP_TEMPLATE (CKF_ARRAY_ATTRIBUTE|0x00000212UL)
517 
518 #define CKA_OTP_FORMAT 0x00000220UL
519 #define CKA_OTP_LENGTH 0x00000221UL
520 #define CKA_OTP_TIME_INTERVAL 0x00000222UL
521 #define CKA_OTP_USER_FRIENDLY_MODE 0x00000223UL
522 #define CKA_OTP_CHALLENGE_REQUIREMENT 0x00000224UL
523 #define CKA_OTP_TIME_REQUIREMENT 0x00000225UL
524 #define CKA_OTP_COUNTER_REQUIREMENT 0x00000226UL
525 #define CKA_OTP_PIN_REQUIREMENT 0x00000227UL
526 #define CKA_OTP_COUNTER 0x0000022EUL
527 #define CKA_OTP_TIME 0x0000022FUL
528 #define CKA_OTP_USER_IDENTIFIER 0x0000022AUL
529 #define CKA_OTP_SERVICE_IDENTIFIER 0x0000022BUL
530 #define CKA_OTP_SERVICE_LOGO 0x0000022CUL
531 #define CKA_OTP_SERVICE_LOGO_TYPE 0x0000022DUL
532 
533 #define CKA_GOSTR3410_PARAMS 0x00000250UL
534 #define CKA_GOSTR3411_PARAMS 0x00000251UL
535 #define CKA_GOST28147_PARAMS 0x00000252UL
536 
537 #define CKA_HW_FEATURE_TYPE 0x00000300UL
538 #define CKA_RESET_ON_INIT 0x00000301UL
539 #define CKA_HAS_RESET 0x00000302UL
540 
541 #define CKA_PIXEL_X 0x00000400UL
542 #define CKA_PIXEL_Y 0x00000401UL
543 #define CKA_RESOLUTION 0x00000402UL
544 #define CKA_CHAR_ROWS 0x00000403UL
545 #define CKA_CHAR_COLUMNS 0x00000404UL
546 #define CKA_COLOR 0x00000405UL
547 #define CKA_BITS_PER_PIXEL 0x00000406UL
548 #define CKA_CHAR_SETS 0x00000480UL
549 #define CKA_ENCODING_METHODS 0x00000481UL
550 #define CKA_MIME_TYPES 0x00000482UL
551 #define CKA_MECHANISM_TYPE 0x00000500UL
552 #define CKA_REQUIRED_CMS_ATTRIBUTES 0x00000501UL
553 #define CKA_DEFAULT_CMS_ATTRIBUTES 0x00000502UL
554 #define CKA_SUPPORTED_CMS_ATTRIBUTES 0x00000503UL
555 #define CKA_ALLOWED_MECHANISMS (CKF_ARRAY_ATTRIBUTE|0x00000600UL)
556 
557 #define CKA_VENDOR_DEFINED 0x80000000UL
558 
559 /* CK_ATTRIBUTE is a structure that includes the type, length
560  * and value of an attribute */
561 typedef struct CK_ATTRIBUTE {
564  CK_ULONG ulValueLen; /* in bytes */
565 } CK_ATTRIBUTE;
566 
568 
569 
570 /* CK_DATE is a structure that defines a date */
571 typedef struct CK_DATE{
572  CK_CHAR year[4]; /* the year ("1900" - "9999") */
573  CK_CHAR month[2]; /* the month ("01" - "12") */
574  CK_CHAR day[2]; /* the day ("01" - "31") */
575 } CK_DATE;
576 
577 
578 /* CK_MECHANISM_TYPE is a value that identifies a mechanism
579  * type */
581 
582 /* the following mechanism types are defined: */
583 #define CKM_RSA_PKCS_KEY_PAIR_GEN 0x00000000UL
584 #define CKM_RSA_PKCS 0x00000001UL
585 #define CKM_RSA_9796 0x00000002UL
586 #define CKM_RSA_X_509 0x00000003UL
587 
588 #define CKM_MD2_RSA_PKCS 0x00000004UL
589 #define CKM_MD5_RSA_PKCS 0x00000005UL
590 #define CKM_SHA1_RSA_PKCS 0x00000006UL
591 
592 #define CKM_RIPEMD128_RSA_PKCS 0x00000007UL
593 #define CKM_RIPEMD160_RSA_PKCS 0x00000008UL
594 #define CKM_RSA_PKCS_OAEP 0x00000009UL
595 
596 #define CKM_RSA_X9_31_KEY_PAIR_GEN 0x0000000AUL
597 #define CKM_RSA_X9_31 0x0000000BUL
598 #define CKM_SHA1_RSA_X9_31 0x0000000CUL
599 #define CKM_RSA_PKCS_PSS 0x0000000DUL
600 #define CKM_SHA1_RSA_PKCS_PSS 0x0000000EUL
601 
602 /* new for v2.40 */
603 #define CKM_DSA_KEY_PAIR_GEN 0x00000010UL
604 #define CKM_DSA 0x00000011UL
605 #define CKM_DSA_SHA1 0x00000012UL
606 #define CKM_DSA_FIPS_G_GEN 0x00000013UL
607 #define CKM_DSA_SHA224 0x00000014UL
608 #define CKM_DSA_SHA256 0x00000015UL
609 #define CKM_DSA_SHA384 0x00000016UL
610 #define CKM_DSA_SHA512 0x00000017UL
611 
612 #define CKM_DH_PKCS_KEY_PAIR_GEN 0x00000020UL
613 #define CKM_DH_PKCS_DERIVE 0x00000021UL
614 
615 #define CKM_X9_42_DH_KEY_PAIR_GEN 0x00000030UL
616 #define CKM_X9_42_DH_DERIVE 0x00000031UL
617 #define CKM_X9_42_DH_HYBRID_DERIVE 0x00000032UL
618 #define CKM_X9_42_MQV_DERIVE 0x00000033UL
619 
620 #define CKM_SHA256_RSA_PKCS 0x00000040UL
621 #define CKM_SHA384_RSA_PKCS 0x00000041UL
622 #define CKM_SHA512_RSA_PKCS 0x00000042UL
623 #define CKM_SHA256_RSA_PKCS_PSS 0x00000043UL
624 #define CKM_SHA384_RSA_PKCS_PSS 0x00000044UL
625 #define CKM_SHA512_RSA_PKCS_PSS 0x00000045UL
626 
627 #define CKM_SHA224_RSA_PKCS 0x00000046UL
628 #define CKM_SHA224_RSA_PKCS_PSS 0x00000047UL
629 
630 /* new for v2.40 */
631 #define CKM_SHA512_224 0x00000048UL
632 #define CKM_SHA512_224_HMAC 0x00000049UL
633 #define CKM_SHA512_224_HMAC_GENERAL 0x0000004AUL
634 #define CKM_SHA512_224_KEY_DERIVATION 0x0000004BUL
635 #define CKM_SHA512_256 0x0000004CUL
636 #define CKM_SHA512_256_HMAC 0x0000004DUL
637 #define CKM_SHA512_256_HMAC_GENERAL 0x0000004EUL
638 #define CKM_SHA512_256_KEY_DERIVATION 0x0000004FUL
639 
640 #define CKM_SHA512_T 0x00000050UL
641 #define CKM_SHA512_T_HMAC 0x00000051UL
642 #define CKM_SHA512_T_HMAC_GENERAL 0x00000052UL
643 #define CKM_SHA512_T_KEY_DERIVATION 0x00000053UL
644 
645 #define CKM_RC2_KEY_GEN 0x00000100UL
646 #define CKM_RC2_ECB 0x00000101UL
647 #define CKM_RC2_CBC 0x00000102UL
648 #define CKM_RC2_MAC 0x00000103UL
649 
650 #define CKM_RC2_MAC_GENERAL 0x00000104UL
651 #define CKM_RC2_CBC_PAD 0x00000105UL
652 
653 #define CKM_RC4_KEY_GEN 0x00000110UL
654 #define CKM_RC4 0x00000111UL
655 #define CKM_DES_KEY_GEN 0x00000120UL
656 #define CKM_DES_ECB 0x00000121UL
657 #define CKM_DES_CBC 0x00000122UL
658 #define CKM_DES_MAC 0x00000123UL
659 
660 #define CKM_DES_MAC_GENERAL 0x00000124UL
661 #define CKM_DES_CBC_PAD 0x00000125UL
662 
663 #define CKM_DES2_KEY_GEN 0x00000130UL
664 #define CKM_DES3_KEY_GEN 0x00000131UL
665 #define CKM_DES3_ECB 0x00000132UL
666 #define CKM_DES3_CBC 0x00000133UL
667 #define CKM_DES3_MAC 0x00000134UL
668 
669 #define CKM_DES3_MAC_GENERAL 0x00000135UL
670 #define CKM_DES3_CBC_PAD 0x00000136UL
671 #define CKM_DES3_CMAC_GENERAL 0x00000137UL
672 #define CKM_DES3_CMAC 0x00000138UL
673 #define CKM_CDMF_KEY_GEN 0x00000140UL
674 #define CKM_CDMF_ECB 0x00000141UL
675 #define CKM_CDMF_CBC 0x00000142UL
676 #define CKM_CDMF_MAC 0x00000143UL
677 #define CKM_CDMF_MAC_GENERAL 0x00000144UL
678 #define CKM_CDMF_CBC_PAD 0x00000145UL
679 
680 #define CKM_DES_OFB64 0x00000150UL
681 #define CKM_DES_OFB8 0x00000151UL
682 #define CKM_DES_CFB64 0x00000152UL
683 #define CKM_DES_CFB8 0x00000153UL
684 
685 #define CKM_MD2 0x00000200UL
686 
687 #define CKM_MD2_HMAC 0x00000201UL
688 #define CKM_MD2_HMAC_GENERAL 0x00000202UL
689 
690 #define CKM_MD5 0x00000210UL
691 
692 #define CKM_MD5_HMAC 0x00000211UL
693 #define CKM_MD5_HMAC_GENERAL 0x00000212UL
694 
695 #define CKM_SHA_1 0x00000220UL
696 
697 #define CKM_SHA_1_HMAC 0x00000221UL
698 #define CKM_SHA_1_HMAC_GENERAL 0x00000222UL
699 
700 #define CKM_RIPEMD128 0x00000230UL
701 #define CKM_RIPEMD128_HMAC 0x00000231UL
702 #define CKM_RIPEMD128_HMAC_GENERAL 0x00000232UL
703 #define CKM_RIPEMD160 0x00000240UL
704 #define CKM_RIPEMD160_HMAC 0x00000241UL
705 #define CKM_RIPEMD160_HMAC_GENERAL 0x00000242UL
706 
707 #define CKM_SHA256 0x00000250UL
708 #define CKM_SHA256_HMAC 0x00000251UL
709 #define CKM_SHA256_HMAC_GENERAL 0x00000252UL
710 #define CKM_SHA224 0x00000255UL
711 #define CKM_SHA224_HMAC 0x00000256UL
712 #define CKM_SHA224_HMAC_GENERAL 0x00000257UL
713 #define CKM_SHA384 0x00000260UL
714 #define CKM_SHA384_HMAC 0x00000261UL
715 #define CKM_SHA384_HMAC_GENERAL 0x00000262UL
716 #define CKM_SHA512 0x00000270UL
717 #define CKM_SHA512_HMAC 0x00000271UL
718 #define CKM_SHA512_HMAC_GENERAL 0x00000272UL
719 #define CKM_SECURID_KEY_GEN 0x00000280UL
720 #define CKM_SECURID 0x00000282UL
721 #define CKM_HOTP_KEY_GEN 0x00000290UL
722 #define CKM_HOTP 0x00000291UL
723 #define CKM_ACTI 0x000002A0UL
724 #define CKM_ACTI_KEY_GEN 0x000002A1UL
725 
726 /* new for v2.40 */
727 #define CKM_CAST_KEY_GEN 0x00000300UL
728 #define CKM_CAST_ECB 0x00000301UL
729 #define CKM_CAST_CBC 0x00000302UL
730 #define CKM_CAST_MAC 0x00000303UL
731 #define CKM_CAST_MAC_GENERAL 0x00000304UL
732 #define CKM_CAST_CBC_PAD 0x00000305UL
733 #define CKM_CAST3_KEY_GEN 0x00000310UL
734 #define CKM_CAST3_ECB 0x00000311UL
735 #define CKM_CAST3_CBC 0x00000312UL
736 #define CKM_CAST3_MAC 0x00000313UL
737 #define CKM_CAST3_MAC_GENERAL 0x00000314UL
738 #define CKM_CAST3_CBC_PAD 0x00000315UL
739 /* Note that CAST128 and CAST5 are the same algorithm */
740 #define CKM_CAST5_KEY_GEN 0x00000320UL
741 #define CKM_CAST128_KEY_GEN 0x00000320UL
742 #define CKM_CAST5_ECB 0x00000321UL
743 #define CKM_CAST128_ECB 0x00000321UL
744 #define CKM_CAST5_CBC 0x00000322UL
745 #define CKM_CAST128_CBC 0x00000322UL
746 #define CKM_CAST5_MAC 0x00000323UL
747 #define CKM_CAST128_MAC 0x00000323UL
748 #define CKM_CAST5_MAC_GENERAL 0x00000324UL
749 #define CKM_CAST128_MAC_GENERAL 0x00000324UL
750 #define CKM_CAST5_CBC_PAD 0x00000325UL
751 #define CKM_CAST128_CBC_PAD 0x00000325UL
752 #define CKM_RC5_KEY_GEN 0x00000330UL
753 #define CKM_RC5_ECB 0x00000331UL
754 #define CKM_RC5_CBC 0x00000332UL
755 #define CKM_RC5_MAC 0x00000333UL
756 #define CKM_RC5_MAC_GENERAL 0x00000334UL
757 #define CKM_RC5_CBC_PAD 0x00000335UL
758 #define CKM_IDEA_KEY_GEN 0x00000340UL
759 #define CKM_IDEA_ECB 0x00000341UL
760 #define CKM_IDEA_CBC 0x00000342UL
761 #define CKM_IDEA_MAC 0x00000343UL
762 #define CKM_IDEA_MAC_GENERAL 0x00000344UL
763 #define CKM_IDEA_CBC_PAD 0x00000345UL
764 #define CKM_GENERIC_SECRET_KEY_GEN 0x00000350UL
765 #define CKM_CONCATENATE_BASE_AND_KEY 0x00000360UL
766 #define CKM_CONCATENATE_BASE_AND_DATA 0x00000362UL
767 #define CKM_CONCATENATE_DATA_AND_BASE 0x00000363UL
768 #define CKM_XOR_BASE_AND_DATA 0x00000364UL
769 #define CKM_EXTRACT_KEY_FROM_KEY 0x00000365UL
770 #define CKM_SSL3_PRE_MASTER_KEY_GEN 0x00000370UL
771 #define CKM_SSL3_MASTER_KEY_DERIVE 0x00000371UL
772 #define CKM_SSL3_KEY_AND_MAC_DERIVE 0x00000372UL
773 
774 #define CKM_SSL3_MASTER_KEY_DERIVE_DH 0x00000373UL
775 #define CKM_TLS_PRE_MASTER_KEY_GEN 0x00000374UL
776 #define CKM_TLS_MASTER_KEY_DERIVE 0x00000375UL
777 #define CKM_TLS_KEY_AND_MAC_DERIVE 0x00000376UL
778 #define CKM_TLS_MASTER_KEY_DERIVE_DH 0x00000377UL
779 
780 #define CKM_TLS_PRF 0x00000378UL
781 
782 #define CKM_SSL3_MD5_MAC 0x00000380UL
783 #define CKM_SSL3_SHA1_MAC 0x00000381UL
784 #define CKM_MD5_KEY_DERIVATION 0x00000390UL
785 #define CKM_MD2_KEY_DERIVATION 0x00000391UL
786 #define CKM_SHA1_KEY_DERIVATION 0x00000392UL
787 
788 #define CKM_SHA256_KEY_DERIVATION 0x00000393UL
789 #define CKM_SHA384_KEY_DERIVATION 0x00000394UL
790 #define CKM_SHA512_KEY_DERIVATION 0x00000395UL
791 #define CKM_SHA224_KEY_DERIVATION 0x00000396UL
792 
793 /* new for v2.40 */
794 #define CKM_PBE_MD2_DES_CBC 0x000003A0UL
795 #define CKM_PBE_MD5_DES_CBC 0x000003A1UL
796 #define CKM_PBE_MD5_CAST_CBC 0x000003A2UL
797 #define CKM_PBE_MD5_CAST3_CBC 0x000003A3UL
798 #define CKM_PBE_MD5_CAST5_CBC 0x000003A4UL
799 #define CKM_PBE_MD5_CAST128_CBC 0x000003A4UL
800 #define CKM_PBE_SHA1_CAST5_CBC 0x000003A5UL
801 #define CKM_PBE_SHA1_CAST128_CBC 0x000003A5UL
802 #define CKM_PBE_SHA1_RC4_128 0x000003A6UL
803 #define CKM_PBE_SHA1_RC4_40 0x000003A7UL
804 #define CKM_PBE_SHA1_DES3_EDE_CBC 0x000003A8UL
805 #define CKM_PBE_SHA1_DES2_EDE_CBC 0x000003A9UL
806 #define CKM_PBE_SHA1_RC2_128_CBC 0x000003AAUL
807 #define CKM_PBE_SHA1_RC2_40_CBC 0x000003ABUL
808 
809 #define CKM_PKCS5_PBKD2 0x000003B0UL
810 
811 #define CKM_PBA_SHA1_WITH_SHA1_HMAC 0x000003C0UL
812 
813 #define CKM_WTLS_PRE_MASTER_KEY_GEN 0x000003D0UL
814 #define CKM_WTLS_MASTER_KEY_DERIVE 0x000003D1UL
815 #define CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC 0x000003D2UL
816 #define CKM_WTLS_PRF 0x000003D3UL
817 #define CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE 0x000003D4UL
818 #define CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE 0x000003D5UL
819 
820 /* new for v2.40 */
821 #define CKM_TLS10_MAC_SERVER 0x000003D6UL
822 #define CKM_TLS10_MAC_CLIENT 0x000003D7UL
823 #define CKM_TLS12_MAC 0x000003D8UL
824 #define CKM_TLS12_KDF 0x000003D9UL
825 #define CKM_TLS12_MASTER_KEY_DERIVE 0x000003E0UL
826 #define CKM_TLS12_KEY_AND_MAC_DERIVE 0x000003E1UL
827 #define CKM_TLS12_MASTER_KEY_DERIVE_DH 0x000003E2UL
828 #define CKM_TLS12_KEY_SAFE_DERIVE 0x000003E3UL
829 #define CKM_TLS_MAC 0x000003E4UL
830 #define CKM_TLS_KDF 0x000003E5UL
831 
832 #define CKM_KEY_WRAP_LYNKS 0x00000400UL
833 #define CKM_KEY_WRAP_SET_OAEP 0x00000401UL
834 
835 #define CKM_CMS_SIG 0x00000500UL
836 /* new for v2.40 */
837 #define CKM_KIP_DERIVE 0x00000510UL
838 #define CKM_KIP_WRAP 0x00000511UL
839 #define CKM_KIP_MAC 0x00000512UL
840 
841 #define CKM_CAMELLIA_KEY_GEN 0x00000550UL
842 #define CKM_CAMELLIA_ECB 0x00000551UL
843 #define CKM_CAMELLIA_CBC 0x00000552UL
844 #define CKM_CAMELLIA_MAC 0x00000553UL
845 #define CKM_CAMELLIA_MAC_GENERAL 0x00000554UL
846 #define CKM_CAMELLIA_CBC_PAD 0x00000555UL
847 #define CKM_CAMELLIA_ECB_ENCRYPT_DATA 0x00000556UL
848 #define CKM_CAMELLIA_CBC_ENCRYPT_DATA 0x00000557UL
849 #define CKM_CAMELLIA_CTR 0x00000558UL
850 
851 #define CKM_ARIA_KEY_GEN 0x00000560UL
852 #define CKM_ARIA_ECB 0x00000561UL
853 #define CKM_ARIA_CBC 0x00000562UL
854 #define CKM_ARIA_MAC 0x00000563UL
855 #define CKM_ARIA_MAC_GENERAL 0x00000564UL
856 #define CKM_ARIA_CBC_PAD 0x00000565UL
857 #define CKM_ARIA_ECB_ENCRYPT_DATA 0x00000566UL
858 #define CKM_ARIA_CBC_ENCRYPT_DATA 0x00000567UL
859 
860 #define CKM_SEED_KEY_GEN 0x00000650UL
861 #define CKM_SEED_ECB 0x00000651UL
862 #define CKM_SEED_CBC 0x00000652UL
863 #define CKM_SEED_MAC 0x00000653UL
864 #define CKM_SEED_MAC_GENERAL 0x00000654UL
865 #define CKM_SEED_CBC_PAD 0x00000655UL
866 #define CKM_SEED_ECB_ENCRYPT_DATA 0x00000656UL
867 #define CKM_SEED_CBC_ENCRYPT_DATA 0x00000657UL
868 
869 #define CKM_SKIPJACK_KEY_GEN 0x00001000UL
870 #define CKM_SKIPJACK_ECB64 0x00001001UL
871 #define CKM_SKIPJACK_CBC64 0x00001002UL
872 #define CKM_SKIPJACK_OFB64 0x00001003UL
873 #define CKM_SKIPJACK_CFB64 0x00001004UL
874 #define CKM_SKIPJACK_CFB32 0x00001005UL
875 #define CKM_SKIPJACK_CFB16 0x00001006UL
876 #define CKM_SKIPJACK_CFB8 0x00001007UL
877 #define CKM_SKIPJACK_WRAP 0x00001008UL
878 #define CKM_SKIPJACK_PRIVATE_WRAP 0x00001009UL
879 #define CKM_SKIPJACK_RELAYX 0x0000100aUL
880 #define CKM_KEA_KEY_PAIR_GEN 0x00001010UL
881 #define CKM_KEA_KEY_DERIVE 0x00001011UL
882 #define CKM_KEA_DERIVE 0x00001012UL
883 #define CKM_FORTEZZA_TIMESTAMP 0x00001020UL
884 #define CKM_BATON_KEY_GEN 0x00001030UL
885 #define CKM_BATON_ECB128 0x00001031UL
886 #define CKM_BATON_ECB96 0x00001032UL
887 #define CKM_BATON_CBC128 0x00001033UL
888 #define CKM_BATON_COUNTER 0x00001034UL
889 #define CKM_BATON_SHUFFLE 0x00001035UL
890 #define CKM_BATON_WRAP 0x00001036UL
891 
892 /* CKM_ECDSA_KEY_PAIR_GEN is deprecated in v2.11,
893  * CKM_EC_KEY_PAIR_GEN is preferred */
894 #define CKM_ECDSA_KEY_PAIR_GEN 0x00001040UL
895 #define CKM_EC_KEY_PAIR_GEN 0x00001040UL
896 
897 #define CKM_ECDSA 0x00001041UL
898 #define CKM_ECDSA_SHA1 0x00001042UL
899 
900 #define CKM_ECDH1_DERIVE 0x00001050UL
901 #define CKM_ECDH1_COFACTOR_DERIVE 0x00001051UL
902 #define CKM_ECMQV_DERIVE 0x00001052UL
903 
904 /* new for v2.40 */
905 #define CKM_ECDH_AES_KEY_WRAP 0x00001053UL
906 #define CKM_RSA_AES_KEY_WRAP 0x00001054UL
907 
908 #define CKM_JUNIPER_KEY_GEN 0x00001060UL
909 #define CKM_JUNIPER_ECB128 0x00001061UL
910 #define CKM_JUNIPER_CBC128 0x00001062UL
911 #define CKM_JUNIPER_COUNTER 0x00001063UL
912 #define CKM_JUNIPER_SHUFFLE 0x00001064UL
913 #define CKM_JUNIPER_WRAP 0x00001065UL
914 #define CKM_FASTHASH 0x00001070UL
915 
916 #define CKM_AES_KEY_GEN 0x00001080UL
917 #define CKM_AES_ECB 0x00001081UL
918 #define CKM_AES_CBC 0x00001082UL
919 #define CKM_AES_MAC 0x00001083UL
920 #define CKM_AES_MAC_GENERAL 0x00001084UL
921 #define CKM_AES_CBC_PAD 0x00001085UL
922 #define CKM_AES_CTR 0x00001086UL
923 #define CKM_AES_GCM 0x00001087UL
924 #define CKM_AES_CCM 0x00001088UL
925 #define CKM_AES_CMAC_GENERAL 0x00001089UL
926 #define CKM_AES_CMAC 0x0000108AUL
927 #define CKM_AES_CTS 0x0000108BUL
928 
929 /* new for v2.40 */
930 #define CKM_AES_XCBC_MAC 0x0000108CUL
931 #define CKM_AES_XCBC_MAC_96 0x0000108DUL
932 #define CKM_AES_GMAC 0x0000108EUL
933 
934 #define CKM_BLOWFISH_KEY_GEN 0x00001090UL
935 #define CKM_BLOWFISH_CBC 0x00001091UL
936 #define CKM_TWOFISH_KEY_GEN 0x00001092UL
937 #define CKM_TWOFISH_CBC 0x00001093UL
938 #define CKM_BLOWFISH_CBC_PAD 0x00001094UL
939 #define CKM_TWOFISH_CBC_PAD 0x00001095UL
940 
941 #define CKM_DES_ECB_ENCRYPT_DATA 0x00001100UL
942 #define CKM_DES_CBC_ENCRYPT_DATA 0x00001101UL
943 #define CKM_DES3_ECB_ENCRYPT_DATA 0x00001102UL
944 #define CKM_DES3_CBC_ENCRYPT_DATA 0x00001103UL
945 #define CKM_AES_ECB_ENCRYPT_DATA 0x00001104UL
946 #define CKM_AES_CBC_ENCRYPT_DATA 0x00001105UL
947 
948 #define CKM_GOSTR3410_KEY_PAIR_GEN 0x00001200UL
949 #define CKM_GOSTR3410 0x00001201UL
950 #define CKM_GOSTR3410_WITH_GOSTR3411 0x00001202UL
951 #define CKM_GOSTR3410_KEY_WRAP 0x00001203UL
952 #define CKM_GOSTR3410_DERIVE 0x00001204UL
953 #define CKM_GOSTR3411 0x00001210UL
954 #define CKM_GOSTR3411_HMAC 0x00001211UL
955 #define CKM_GOST28147_KEY_GEN 0x00001220UL
956 #define CKM_GOST28147_ECB 0x00001221UL
957 #define CKM_GOST28147 0x00001222UL
958 #define CKM_GOST28147_MAC 0x00001223UL
959 #define CKM_GOST28147_KEY_WRAP 0x00001224UL
960 
961 #define CKM_DSA_PARAMETER_GEN 0x00002000UL
962 #define CKM_DH_PKCS_PARAMETER_GEN 0x00002001UL
963 #define CKM_X9_42_DH_PARAMETER_GEN 0x00002002UL
964 #define CKM_DSA_PROBABLISTIC_PARAMETER_GEN 0x00002003UL
965 #define CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN 0x00002004UL
966 
967 #define CKM_AES_OFB 0x00002104UL
968 #define CKM_AES_CFB64 0x00002105UL
969 #define CKM_AES_CFB8 0x00002106UL
970 #define CKM_AES_CFB128 0x00002107UL
971 
972 /* new for v2.40 */
973 #define CKM_AES_CFB1 0x00002108UL
974 #define CKM_AES_KEY_WRAP 0x00002109UL
975 #define CKM_AES_KEY_WRAP_PAD 0x0000210AUL
976 
977 #define CKM_RSA_PKCS_TPM_1_1 0x00004001UL
978 #define CKM_RSA_PKCS_OAEP_TPM_1_1 0x00004002UL
979 
980 #define CKM_VENDOR_DEFINED 0x80000000UL
981 
983 
984 
985 /* CK_MECHANISM is a structure that specifies a particular
986  * mechanism */
987 typedef struct CK_MECHANISM {
990  CK_ULONG ulParameterLen; /* in bytes */
991 } CK_MECHANISM;
992 
994 
995 
996 /* CK_MECHANISM_INFO provides information about a particular
997  * mechanism */
998 typedef struct CK_MECHANISM_INFO {
1003 
1004 /* The flags are defined as follows:
1005  * Bit Flag Mask Meaning */
1006 #define CKF_HW 0x00000001UL /* performed by HW */
1007 
1008 /* Specify whether or not a mechanism can be used for a particular task */
1009 #define CKF_ENCRYPT 0x00000100UL
1010 #define CKF_DECRYPT 0x00000200UL
1011 #define CKF_DIGEST 0x00000400UL
1012 #define CKF_SIGN 0x00000800UL
1013 #define CKF_SIGN_RECOVER 0x00001000UL
1014 #define CKF_VERIFY 0x00002000UL
1015 #define CKF_VERIFY_RECOVER 0x00004000UL
1016 #define CKF_GENERATE 0x00008000UL
1017 #define CKF_GENERATE_KEY_PAIR 0x00010000UL
1018 #define CKF_WRAP 0x00020000UL
1019 #define CKF_UNWRAP 0x00040000UL
1020 #define CKF_DERIVE 0x00080000UL
1021 
1022 /* Describe a token's EC capabilities not available in mechanism
1023  * information. */
1024 #define CKF_EC_F_P 0x00100000UL
1025 #define CKF_EC_F_2M 0x00200000UL
1026 #define CKF_EC_ECPARAMETERS 0x00400000UL
1027 #define CKF_EC_NAMEDCURVE 0x00800000UL
1028 #define CKF_EC_UNCOMPRESS 0x01000000UL
1029 #define CKF_EC_COMPRESS 0x02000000UL
1030 
1031 #define CKF_EXTENSION 0x80000000UL /* FALSE for this version */
1032 
1034 
1035 
1036 /* CK_RV is a value that identifies the return value of a
1037  * Cryptoki function */
1038 typedef CK_ULONG CK_RV;
1039 
1040 #define CKR_OK 0x00000000UL
1041 #define CKR_CANCEL 0x00000001UL
1042 #define CKR_HOST_MEMORY 0x00000002UL
1043 #define CKR_SLOT_ID_INVALID 0x00000003UL
1044 
1045 /* CKR_FLAGS_INVALID was removed for v2.0 */
1046 
1047 #define CKR_GENERAL_ERROR 0x00000005UL
1048 #define CKR_FUNCTION_FAILED 0x00000006UL
1049 
1050 #define CKR_ARGUMENTS_BAD 0x00000007UL
1051 #define CKR_NO_EVENT 0x00000008UL
1052 #define CKR_NEED_TO_CREATE_THREADS 0x00000009UL
1053 #define CKR_CANT_LOCK 0x0000000AUL
1054 
1055 #define CKR_ATTRIBUTE_READ_ONLY 0x00000010UL
1056 #define CKR_ATTRIBUTE_SENSITIVE 0x00000011UL
1057 #define CKR_ATTRIBUTE_TYPE_INVALID 0x00000012UL
1058 #define CKR_ATTRIBUTE_VALUE_INVALID 0x00000013UL
1059 
1060 /* new for v2.40 */
1061 #define CKR_ACTION_PROHIBITED 0x0000001BUL
1062 
1063 #define CKR_DATA_INVALID 0x00000020UL
1064 #define CKR_DATA_LEN_RANGE 0x00000021UL
1065 #define CKR_DEVICE_ERROR 0x00000030UL
1066 #define CKR_DEVICE_MEMORY 0x00000031UL
1067 #define CKR_DEVICE_REMOVED 0x00000032UL
1068 #define CKR_ENCRYPTED_DATA_INVALID 0x00000040UL
1069 #define CKR_ENCRYPTED_DATA_LEN_RANGE 0x00000041UL
1070 #define CKR_FUNCTION_CANCELED 0x00000050UL
1071 #define CKR_FUNCTION_NOT_PARALLEL 0x00000051UL
1072 
1073 #define CKR_FUNCTION_NOT_SUPPORTED 0x00000054UL
1074 
1075 #define CKR_KEY_HANDLE_INVALID 0x00000060UL
1076 
1077 /* CKR_KEY_SENSITIVE was removed for v2.0 */
1078 
1079 #define CKR_KEY_SIZE_RANGE 0x00000062UL
1080 #define CKR_KEY_TYPE_INCONSISTENT 0x00000063UL
1081 
1082 #define CKR_KEY_NOT_NEEDED 0x00000064UL
1083 #define CKR_KEY_CHANGED 0x00000065UL
1084 #define CKR_KEY_NEEDED 0x00000066UL
1085 #define CKR_KEY_INDIGESTIBLE 0x00000067UL
1086 #define CKR_KEY_FUNCTION_NOT_PERMITTED 0x00000068UL
1087 #define CKR_KEY_NOT_WRAPPABLE 0x00000069UL
1088 #define CKR_KEY_UNEXTRACTABLE 0x0000006AUL
1089 
1090 #define CKR_MECHANISM_INVALID 0x00000070UL
1091 #define CKR_MECHANISM_PARAM_INVALID 0x00000071UL
1092 
1093 /* CKR_OBJECT_CLASS_INCONSISTENT and CKR_OBJECT_CLASS_INVALID
1094  * were removed for v2.0 */
1095 #define CKR_OBJECT_HANDLE_INVALID 0x00000082UL
1096 #define CKR_OPERATION_ACTIVE 0x00000090UL
1097 #define CKR_OPERATION_NOT_INITIALIZED 0x00000091UL
1098 #define CKR_PIN_INCORRECT 0x000000A0UL
1099 #define CKR_PIN_INVALID 0x000000A1UL
1100 #define CKR_PIN_LEN_RANGE 0x000000A2UL
1101 
1102 #define CKR_PIN_EXPIRED 0x000000A3UL
1103 #define CKR_PIN_LOCKED 0x000000A4UL
1104 
1105 #define CKR_SESSION_CLOSED 0x000000B0UL
1106 #define CKR_SESSION_COUNT 0x000000B1UL
1107 #define CKR_SESSION_HANDLE_INVALID 0x000000B3UL
1108 #define CKR_SESSION_PARALLEL_NOT_SUPPORTED 0x000000B4UL
1109 #define CKR_SESSION_READ_ONLY 0x000000B5UL
1110 #define CKR_SESSION_EXISTS 0x000000B6UL
1111 
1112 #define CKR_SESSION_READ_ONLY_EXISTS 0x000000B7UL
1113 #define CKR_SESSION_READ_WRITE_SO_EXISTS 0x000000B8UL
1114 
1115 #define CKR_SIGNATURE_INVALID 0x000000C0UL
1116 #define CKR_SIGNATURE_LEN_RANGE 0x000000C1UL
1117 #define CKR_TEMPLATE_INCOMPLETE 0x000000D0UL
1118 #define CKR_TEMPLATE_INCONSISTENT 0x000000D1UL
1119 #define CKR_TOKEN_NOT_PRESENT 0x000000E0UL
1120 #define CKR_TOKEN_NOT_RECOGNIZED 0x000000E1UL
1121 #define CKR_TOKEN_WRITE_PROTECTED 0x000000E2UL
1122 #define CKR_UNWRAPPING_KEY_HANDLE_INVALID 0x000000F0UL
1123 #define CKR_UNWRAPPING_KEY_SIZE_RANGE 0x000000F1UL
1124 #define CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT 0x000000F2UL
1125 #define CKR_USER_ALREADY_LOGGED_IN 0x00000100UL
1126 #define CKR_USER_NOT_LOGGED_IN 0x00000101UL
1127 #define CKR_USER_PIN_NOT_INITIALIZED 0x00000102UL
1128 #define CKR_USER_TYPE_INVALID 0x00000103UL
1129 
1130 #define CKR_USER_ANOTHER_ALREADY_LOGGED_IN 0x00000104UL
1131 #define CKR_USER_TOO_MANY_TYPES 0x00000105UL
1132 
1133 #define CKR_WRAPPED_KEY_INVALID 0x00000110UL
1134 #define CKR_WRAPPED_KEY_LEN_RANGE 0x00000112UL
1135 #define CKR_WRAPPING_KEY_HANDLE_INVALID 0x00000113UL
1136 #define CKR_WRAPPING_KEY_SIZE_RANGE 0x00000114UL
1137 #define CKR_WRAPPING_KEY_TYPE_INCONSISTENT 0x00000115UL
1138 #define CKR_RANDOM_SEED_NOT_SUPPORTED 0x00000120UL
1139 
1140 #define CKR_RANDOM_NO_RNG 0x00000121UL
1141 
1142 #define CKR_DOMAIN_PARAMS_INVALID 0x00000130UL
1143 
1144 /* new for v2.40 */
1145 #define CKR_CURVE_NOT_SUPPORTED 0x00000140UL
1146 
1147 #define CKR_BUFFER_TOO_SMALL 0x00000150UL
1148 #define CKR_SAVED_STATE_INVALID 0x00000160UL
1149 #define CKR_INFORMATION_SENSITIVE 0x00000170UL
1150 #define CKR_STATE_UNSAVEABLE 0x00000180UL
1151 
1152 #define CKR_CRYPTOKI_NOT_INITIALIZED 0x00000190UL
1153 #define CKR_CRYPTOKI_ALREADY_INITIALIZED 0x00000191UL
1154 #define CKR_MUTEX_BAD 0x000001A0UL
1155 #define CKR_MUTEX_NOT_LOCKED 0x000001A1UL
1156 
1157 #define CKR_NEW_PIN_MODE 0x000001B0UL
1158 #define CKR_NEXT_OTP 0x000001B1UL
1159 
1160 #define CKR_EXCEEDED_MAX_ITERATIONS 0x000001C0UL
1161 #define CKR_FIPS_SELF_TEST_FAILED 0x000001C1UL
1162 #define CKR_LIBRARY_LOAD_FAILED 0x000001C2UL
1163 #define CKR_PIN_TOO_WEAK 0x000001C3UL
1164 #define CKR_PUBLIC_KEY_INVALID 0x000001C4UL
1165 
1166 #define CKR_FUNCTION_REJECTED 0x00000200UL
1167 
1168 #define CKR_VENDOR_DEFINED 0x80000000UL
1169 
1170 
1171 /* CK_NOTIFY is an application callback that processes events */
1172 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_NOTIFY)(
1173  CK_SESSION_HANDLE hSession, /* the session's handle */
1175  CK_VOID_PTR pApplication /* passed to C_OpenSession */
1176 );
1177 
1178 
1179 /* CK_FUNCTION_LIST is a structure holding a Cryptoki spec
1180  * version and pointers of appropriate types to all the
1181  * Cryptoki functions */
1183 
1185 
1187 
1188 
1189 /* CK_CREATEMUTEX is an application callback for creating a
1190  * mutex object */
1191 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_CREATEMUTEX)(
1192  CK_VOID_PTR_PTR ppMutex /* location to receive ptr to mutex */
1193 );
1194 
1195 
1196 /* CK_DESTROYMUTEX is an application callback for destroying a
1197  * mutex object */
1198 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_DESTROYMUTEX)(
1199  CK_VOID_PTR pMutex /* pointer to mutex */
1200 );
1201 
1202 
1203 /* CK_LOCKMUTEX is an application callback for locking a mutex */
1204 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_LOCKMUTEX)(
1205  CK_VOID_PTR pMutex /* pointer to mutex */
1206 );
1207 
1208 
1209 /* CK_UNLOCKMUTEX is an application callback for unlocking a
1210  * mutex */
1211 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_UNLOCKMUTEX)(
1212  CK_VOID_PTR pMutex /* pointer to mutex */
1213 );
1214 
1215 
1216 /* CK_C_INITIALIZE_ARGS provides the optional arguments to
1217  * C_Initialize */
1218 typedef struct CK_C_INITIALIZE_ARGS {
1219  CK_CREATEMUTEX CreateMutex;
1220  CK_DESTROYMUTEX DestroyMutex;
1221  CK_LOCKMUTEX LockMutex;
1222  CK_UNLOCKMUTEX UnlockMutex;
1226 
1227 /* flags: bit flags that provide capabilities of the slot
1228  * Bit Flag Mask Meaning
1229  */
1230 #define CKF_LIBRARY_CANT_CREATE_OS_THREADS 0x00000001UL
1231 #define CKF_OS_LOCKING_OK 0x00000002UL
1232 
1234 
1235 
1236 /* additional flags for parameters to functions */
1237 
1238 /* CKF_DONT_BLOCK is for the function C_WaitForSlotEvent */
1239 #define CKF_DONT_BLOCK 1
1240 
1241 /*
1242  * CK_RSA_PKCS_MGF_TYPE is used to indicate the Message
1243  * Generation Function (MGF) applied to a message block when
1244  * formatting a message block for the PKCS #1 OAEP encryption
1245  * scheme. */
1247 
1249 
1250 /* The following MGFs are defined */
1251 #define CKG_MGF1_SHA1 0x00000001UL
1252 #define CKG_MGF1_SHA256 0x00000002UL
1253 #define CKG_MGF1_SHA384 0x00000003UL
1254 #define CKG_MGF1_SHA512 0x00000004UL
1255 #define CKG_MGF1_SHA224 0x00000005UL
1256 
1257 /*
1258  * CK_RSA_PKCS_OAEP_SOURCE_TYPE is used to indicate the source
1259  * of the encoding parameter when formatting a message block
1260  * for the PKCS #1 OAEP encryption scheme. */
1262 
1264 
1265 /* The following encoding parameter sources are defined */
1266 #define CKZ_DATA_SPECIFIED 0x00000001UL
1267 
1268 /*
1269  * CK_RSA_PKCS_OAEP_PARAMS provides the parameters to the
1270  * CKM_RSA_PKCS_OAEP mechanism. */
1271 typedef struct CK_RSA_PKCS_OAEP_PARAMS {
1278 
1280 
1281 /*
1282  * CK_RSA_PKCS_PSS_PARAMS provides the parameters to the
1283  * CKM_RSA_PKCS_PSS mechanism(s). */
1284 typedef struct CK_RSA_PKCS_PSS_PARAMS {
1289 
1291 
1293 
1294 /* The following EC Key Derivation Functions are defined */
1295 #define CKD_NULL 0x00000001UL
1296 #define CKD_SHA1_KDF 0x00000002UL
1297 /* The following X9.42 DH key derivation functions are defined */
1298 #define CKD_SHA1_KDF_ASN1 0x00000003UL
1299 #define CKD_SHA1_KDF_CONCATENATE 0x00000004UL
1300 #define CKD_SHA224_KDF 0x00000005UL
1301 #define CKD_SHA256_KDF 0x00000006UL
1302 #define CKD_SHA384_KDF 0x00000007UL
1303 #define CKD_SHA512_KDF 0x00000008UL
1304 #define CKD_CPDIVERSIFY_KDF 0x00000009UL
1305 
1306 
1307 /*
1308  * CK_ECDH1_DERIVE_PARAMS provides the parameters to the
1309  * CKM_ECDH1_DERIVE and CKM_ECDH1_COFACTOR_DERIVE mechanisms,
1310  * where each party contributes one key pair.
1311  */
1312 typedef struct CK_ECDH1_DERIVE_PARAMS {
1319 
1321 
1322 typedef struct CK_ECMQV_DERIVE_PARAMS {
1334 
1336 
1337 /* Typedefs and defines for the CKM_X9_42_DH_KEY_PAIR_GEN and the
1338  * CKM_X9_42_DH_PARAMETER_GEN mechanisms */
1341 
1342 /*
1343  * CK_X9_42_DH1_DERIVE_PARAMS provides the parameters to the
1344  * CKM_X9_42_DH_DERIVE key derivation mechanism, where each party
1345  * contributes one key pair */
1353 
1355 
1356 /*
1357  * CK_X9_42_DH2_DERIVE_PARAMS provides the parameters to the
1358  * CKM_X9_42_DH_HYBRID_DERIVE and CKM_X9_42_MQV_DERIVE key derivation
1359  * mechanisms, where each party contributes two key pairs */
1371 
1373 
1386 
1388 
1389 /* CK_KEA_DERIVE_PARAMS provides the parameters to the
1390  * CKM_KEA_DERIVE mechanism */
1391 typedef struct CK_KEA_DERIVE_PARAMS {
1399 
1401 
1402 
1403 /* CK_RC2_PARAMS provides the parameters to the CKM_RC2_ECB and
1404  * CKM_RC2_MAC mechanisms. An instance of CK_RC2_PARAMS just
1405  * holds the effective keysize */
1407 
1409 
1410 
1411 /* CK_RC2_CBC_PARAMS provides the parameters to the CKM_RC2_CBC
1412  * mechanism */
1413 typedef struct CK_RC2_CBC_PARAMS {
1414  CK_ULONG ulEffectiveBits; /* effective bits (1-1024) */
1415 
1416  CK_BYTE iv[8]; /* IV for CBC mode */
1418 
1420 
1421 
1422 /* CK_RC2_MAC_GENERAL_PARAMS provides the parameters for the
1423  * CKM_RC2_MAC_GENERAL mechanism */
1425  CK_ULONG ulEffectiveBits; /* effective bits (1-1024) */
1426  CK_ULONG ulMacLength; /* Length of MAC in bytes */
1428 
1431 
1432 
1433 /* CK_RC5_PARAMS provides the parameters to the CKM_RC5_ECB and
1434  * CKM_RC5_MAC mechanisms */
1435 typedef struct CK_RC5_PARAMS {
1436  CK_ULONG ulWordsize; /* wordsize in bits */
1437  CK_ULONG ulRounds; /* number of rounds */
1438 } CK_RC5_PARAMS;
1439 
1441 
1442 
1443 /* CK_RC5_CBC_PARAMS provides the parameters to the CKM_RC5_CBC
1444  * mechanism */
1445 typedef struct CK_RC5_CBC_PARAMS {
1446  CK_ULONG ulWordsize; /* wordsize in bits */
1447  CK_ULONG ulRounds; /* number of rounds */
1448  CK_BYTE_PTR pIv; /* pointer to IV */
1449  CK_ULONG ulIvLen; /* length of IV in bytes */
1451 
1453 
1454 
1455 /* CK_RC5_MAC_GENERAL_PARAMS provides the parameters for the
1456  * CKM_RC5_MAC_GENERAL mechanism */
1458  CK_ULONG ulWordsize; /* wordsize in bits */
1459  CK_ULONG ulRounds; /* number of rounds */
1460  CK_ULONG ulMacLength; /* Length of MAC in bytes */
1462 
1465 
1466 
1467 /* CK_MAC_GENERAL_PARAMS provides the parameters to most block
1468  * ciphers' MAC_GENERAL mechanisms. Its value is the length of
1469  * the MAC */
1471 
1473 
1479 
1481 
1487 
1489 
1490 /* CK_SKIPJACK_PRIVATE_WRAP_PARAMS provides the parameters to the
1491  * CKM_SKIPJACK_PRIVATE_WRAP mechanism */
1505 
1508 
1509 
1510 /* CK_SKIPJACK_RELAYX_PARAMS provides the parameters to the
1511  * CKM_SKIPJACK_RELAYX mechanism */
1528 
1531 
1532 
1533 typedef struct CK_PBE_PARAMS {
1540 } CK_PBE_PARAMS;
1541 
1543 
1544 
1545 /* CK_KEY_WRAP_SET_OAEP_PARAMS provides the parameters to the
1546  * CKM_KEY_WRAP_SET_OAEP mechanism */
1548  CK_BYTE bBC; /* block contents byte */
1549  CK_BYTE_PTR pX; /* extra data */
1550  CK_ULONG ulXLen; /* length of extra data in bytes */
1552 
1555 
1556 
1557 typedef struct CK_SSL3_RANDOM_DATA {
1563 
1564 
1569 
1572 
1573 
1574 typedef struct CK_SSL3_KEY_MAT_OUT {
1582 
1584 
1585 
1586 typedef struct CK_SSL3_KEY_MAT_PARAMS {
1594 
1596 
1597 typedef struct CK_WTLS_RANDOM_DATA {
1603 
1605 
1611 
1614 
1615 typedef struct CK_WTLS_PRF_PARAMS {
1624 
1626 
1627 typedef struct CK_WTLS_KEY_MAT_OUT {
1632 
1634 
1635 typedef struct CK_WTLS_KEY_MAT_PARAMS {
1645 
1647 
1648 typedef struct CK_CMS_SIG_PARAMS {
1658 
1660 
1665 
1668 
1669 
1670 /* The CK_EXTRACT_PARAMS is used for the
1671  * CKM_EXTRACT_KEY_FROM_KEY mechanism. It specifies which bit
1672  * of the base key should be used as the first bit of the
1673  * derived key */
1675 
1677 
1678 /*
1679  * CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE is used to
1680  * indicate the Pseudo-Random Function (PRF) used to generate
1681  * key bits using PKCS #5 PBKDF2. */
1683 
1685 
1686 #define CKP_PKCS5_PBKD2_HMAC_SHA1 0x00000001UL
1687 /* new for v2.40 */
1688 #define CKP_PKCS5_PBKD2_HMAC_GOSTR3411 0x00000002UL
1689 #define CKP_PKCS5_PBKD2_HMAC_SHA224 0x00000003UL
1690 #define CKP_PKCS5_PBKD2_HMAC_SHA256 0x00000004UL
1691 #define CKP_PKCS5_PBKD2_HMAC_SHA384 0x00000005UL
1692 #define CKP_PKCS5_PBKD2_HMAC_SHA512 0x00000006UL
1693 #define CKP_PKCS5_PBKD2_HMAC_SHA512_224 0x00000007UL
1694 #define CKP_PKCS5_PBKD2_HMAC_SHA512_256 0x00000008UL
1695 
1696 /*
1697  * CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE is used to indicate the
1698  * source of the salt value when deriving a key using PKCS #5
1699  * PBKDF2. */
1701 
1703 
1704 /* The following salt value sources are defined in PKCS #5 v2.0. */
1705 #define CKZ_SALT_SPECIFIED 0x00000001UL
1706 
1707 /*
1708  * CK_PKCS5_PBKD2_PARAMS is a structure that provides the
1709  * parameters to the CKM_PKCS5_PBKD2 mechanism.
1710  */
1711 typedef struct CK_PKCS5_PBKD2_PARAMS {
1722 
1724 
1726 typedef CK_OTP_PARAM_TYPE CK_PARAM_TYPE; /* B/w compatibility */
1727 
1728 typedef struct CK_OTP_PARAM {
1732 } CK_OTP_PARAM;
1733 
1735 
1736 typedef struct CK_OTP_PARAMS {
1739 } CK_OTP_PARAMS;
1740 
1742 
1743 typedef struct CK_OTP_SIGNATURE_INFO {
1747 
1749 
1750 #define CK_OTP_VALUE 0UL
1751 #define CK_OTP_PIN 1UL
1752 #define CK_OTP_CHALLENGE 2UL
1753 #define CK_OTP_TIME 3UL
1754 #define CK_OTP_COUNTER 4UL
1755 #define CK_OTP_FLAGS 5UL
1756 #define CK_OTP_OUTPUT_LENGTH 6UL
1757 #define CK_OTP_OUTPUT_FORMAT 7UL
1758 
1759 #define CKF_NEXT_OTP 0x00000001UL
1760 #define CKF_EXCLUDE_TIME 0x00000002UL
1761 #define CKF_EXCLUDE_COUNTER 0x00000004UL
1762 #define CKF_EXCLUDE_CHALLENGE 0x00000008UL
1763 #define CKF_EXCLUDE_PIN 0x00000010UL
1764 #define CKF_USER_FRIENDLY_OTP 0x00000020UL
1765 
1766 typedef struct CK_KIP_PARAMS {
1771 } CK_KIP_PARAMS;
1772 
1774 
1775 typedef struct CK_AES_CTR_PARAMS {
1779 
1781 
1782 typedef struct CK_GCM_PARAMS {
1789 } CK_GCM_PARAMS;
1790 
1792 
1793 typedef struct CK_CCM_PARAMS {
1794  CK_ULONG ulDataLen; /*plaintext or ciphertext*/
1800 } CK_CCM_PARAMS;
1801 
1803 
1809 
1811 
1817 
1819 
1820 /* new for v2.40 */
1827 
1829 
1830 /* new for v2.40 */
1837 
1839 
1840 /* new for v2.40 */
1842 
1843 /* new for v2.40 */
1845 
1846 /* new for v2.40 */
1851 
1853 
1854 /* new for v2.40 */
1860 
1862 
1863 /* new for v2.40 */
1864 typedef struct CK_TLS12_KEY_MAT_PARAMS {
1873 
1875 
1876 /* new for v2.40 */
1877 typedef struct CK_TLS_KDF_PARAMS {
1885 
1887 
1888 /* new for v2.40 */
1889 typedef struct CK_TLS_MAC_PARAMS {
1894 
1896 
1904 
1906 
1914 
1916 
1917 #endif
CK_ECMQV_DERIVE_PARAMS CK_PTR CK_ECMQV_DERIVE_PARAMS_PTR
Definition: pkcs11t.h:1335
struct CK_ECMQV_DERIVE_PARAMS CK_ECMQV_DERIVE_PARAMS
CK_DES_CBC_ENCRYPT_DATA_PARAMS CK_PTR CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR
Definition: pkcs11t.h:1480
CK_X9_42_DH_KDF_TYPE kdf
Definition: pkcs11t.h:1361
CK_MECHANISM_TYPE prfHashMechanism
Definition: pkcs11t.h:1871
CK_ULONG CK_NOTIFICATION
Definition: pkcs11t.h:97
CK_ULONG CK_KEY_TYPE
Definition: pkcs11t.h:329
struct CK_X9_42_DH1_DERIVE_PARAMS CK_X9_42_DH1_DERIVE_PARAMS
CK_ULONG ulLabelLen
Definition: pkcs11t.h:1620
CK_VOID_PTR pSourceData
Definition: pkcs11t.h:1275
struct CK_KEY_WRAP_SET_OAEP_PARAMS CK_KEY_WRAP_SET_OAEP_PARAMS
CK_BYTE major
Definition: pkcs11t.h:74
CK_ULONG CK_ATTRIBUTE_TYPE
Definition: pkcs11t.h:412
CK_X9_42_DH_KDF_TYPE kdf
Definition: pkcs11t.h:1375
#define CK_CALLBACK_FUNCTION(returnType, name)
Definition: pkcs11.h:241
struct CK_X9_42_DH1_DERIVE_PARAMS CK_PTR CK_X9_42_DH1_DERIVE_PARAMS_PTR
Definition: pkcs11t.h:1354
CK_ULONG CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE
Definition: pkcs11t.h:1682
CK_MECHANISM_INFO CK_PTR CK_MECHANISM_INFO_PTR
Definition: pkcs11t.h:1033
CK_OBJECT_HANDLE hPrivateData
Definition: pkcs11t.h:1381
struct CK_SSL3_RANDOM_DATA CK_SSL3_RANDOM_DATA
CK_MECHANISM_TYPE prfMechanism
Definition: pkcs11t.h:1878
CK_ULONG ulWordsize
Definition: pkcs11t.h:1436
CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE CK_PTR CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE_PTR
Definition: pkcs11t.h:1702
struct CK_X9_42_DH2_DERIVE_PARAMS CK_X9_42_DH2_DERIVE_PARAMS
CK_ULONG CK_OBJECT_HANDLE
Definition: pkcs11t.h:292
CK_ULONG ulServerRandomLen
Definition: pkcs11t.h:1561
struct CK_WTLS_PRF_PARAMS CK_WTLS_PRF_PARAMS
CK_ULONG CK_JAVA_MIDP_SECURITY_DOMAIN
Definition: pkcs11t.h:1841
CK_ULONG ulPublicDataLen
Definition: pkcs11t.h:1396
CK_BYTE_PTR pServerRandom
Definition: pkcs11t.h:1600
CK_BYTE_PTR pPublicData2
Definition: pkcs11t.h:1331
CK_OTP_PARAM CK_PTR CK_OTP_PARAM_PTR
Definition: pkcs11t.h:1734
#define CK_PTR
Definition: pkcs11.h:97
CK_ULONG ulKeySizeInBits
Definition: pkcs11t.h:1588
CK_VERSION libraryVersion
Definition: pkcs11t.h:89
CK_FLAGS flags
Definition: pkcs11t.h:277
CK_ULONG CK_HW_FEATURE_TYPE
Definition: pkcs11t.h:320
CK_MECHANISM_TYPE DigestMechanism
Definition: pkcs11t.h:1607
CK_BYTE_PTR pRequiredAttributes
Definition: pkcs11t.h:1655
CK_LOCKMUTEX LockMutex
Definition: pkcs11t.h:1221
CK_OTP_PARAM_PTR pParams
Definition: pkcs11t.h:1737
CK_SSL3_RANDOM_DATA RandomInfo
Definition: pkcs11t.h:1856
CK_WTLS_KEY_MAT_OUT CK_PTR CK_WTLS_KEY_MAT_OUT_PTR
Definition: pkcs11t.h:1633
CK_ULONG ulWordsize
Definition: pkcs11t.h:1446
struct CK_SESSION_INFO CK_SESSION_INFO
CK_X9_42_DH_KDF_TYPE CK_PTR CK_X9_42_DH_KDF_TYPE_PTR
Definition: pkcs11t.h:1340
CK_MECHANISM_PTR pSigningMechanism
Definition: pkcs11t.h:1650
struct CK_RSA_AES_KEY_WRAP_PARAMS CK_RSA_AES_KEY_WRAP_PARAMS
CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE saltSource
Definition: pkcs11t.h:1712
CK_VERSION CK_PTR CK_VERSION_PTR
Definition: pkcs11t.h:78
CK_OBJECT_HANDLE CK_PTR CK_OBJECT_HANDLE_PTR
Definition: pkcs11t.h:294
CK_ULONG ulKeySizeInBits
Definition: pkcs11t.h:1638
CK_BYTE_PTR pIVServer
Definition: pkcs11t.h:1580
CK_CREATEMUTEX CreateMutex
Definition: pkcs11t.h:1219
CK_TLS12_KEY_MAT_PARAMS CK_PTR CK_TLS12_KEY_MAT_PARAMS_PTR
Definition: pkcs11t.h:1874
CK_ULONG CK_RSA_PKCS_MGF_TYPE
Definition: pkcs11t.h:1246
CK_ECDH1_DERIVE_PARAMS CK_PTR CK_ECDH1_DERIVE_PARAMS_PTR
Definition: pkcs11t.h:1320
CK_ULONG ulServerOrClient
Definition: pkcs11t.h:1892
struct CK_DES_CBC_ENCRYPT_DATA_PARAMS CK_DES_CBC_ENCRYPT_DATA_PARAMS
CK_VOID_PTR CK_PTR CK_VOID_PTR_PTR
Definition: pkcs11t.h:65
CK_RC5_PARAMS CK_PTR CK_RC5_PARAMS_PTR
Definition: pkcs11t.h:1440
CK_EC_KDF_TYPE kdf
Definition: pkcs11t.h:1313
CK_WTLS_RANDOM_DATA RandomInfo
Definition: pkcs11t.h:1642
CK_ULONG CK_CERTIFICATE_TYPE
Definition: pkcs11t.h:388
CK_BYTE_PTR pInitVector
Definition: pkcs11t.h:1534
CK_FLAGS flags
Definition: pkcs11t.h:113
CK_SKIPJACK_RELAYX_PARAMS CK_PTR CK_SKIPJACK_RELAYX_PARAMS_PTR
Definition: pkcs11t.h:1530
CK_BYTE_PTR pAAD
Definition: pkcs11t.h:1786
CK_ULONG ulMinKeySize
Definition: pkcs11t.h:999
CK_TLS12_MASTER_KEY_DERIVE_PARAMS CK_PTR CK_TLS12_MASTER_KEY_DERIVE_PARAMS_PTR
Definition: pkcs11t.h:1861
struct CK_INFO CK_INFO
CK_RSA_PKCS_OAEP_SOURCE_TYPE source
Definition: pkcs11t.h:1274
CK_ULONG ulRounds
Definition: pkcs11t.h:1437
CK_ULONG ulFreePublicMemory
Definition: pkcs11t.h:146
CK_RC5_MAC_GENERAL_PARAMS CK_PTR CK_RC5_MAC_GENERAL_PARAMS_PTR
Definition: pkcs11t.h:1464
CK_UTF8CHAR manufacturerID[32]
Definition: pkcs11t.h:134
CK_BYTE_PTR pPublicData
Definition: pkcs11t.h:1397
struct CK_ECDH_AES_KEY_WRAP_PARAMS CK_ECDH_AES_KEY_WRAP_PARAMS
CK_PBE_PARAMS CK_PTR CK_PBE_PARAMS_PTR
Definition: pkcs11t.h:1542
CK_MECHANISM_TYPE DigestMechanism
Definition: pkcs11t.h:1636
CK_ULONG ulMacLength
Definition: pkcs11t.h:1891
CK_ULONG ulAADLen
Definition: pkcs11t.h:1787
CK_ULONG ulKeySizeInBits
Definition: pkcs11t.h:1866
CK_WTLS_MASTER_KEY_DERIVE_PARAMS CK_PTR CK_WTLS_MASTER_KEY_DERIVE_PARAMS_PTR
Definition: pkcs11t.h:1613
CK_BYTE_PTR pSharedData
Definition: pkcs11t.h:1325
struct CK_AES_CBC_ENCRYPT_DATA_PARAMS CK_AES_CBC_ENCRYPT_DATA_PARAMS
CK_ULONG ulValueLen
Definition: pkcs11t.h:564
CK_BYTE_PTR pClientRandom
Definition: pkcs11t.h:1598
CK_CHAR month[2]
Definition: pkcs11t.h:573
CK_BYTE_PTR pAAD
Definition: pkcs11t.h:1797
CK_ULONG ulDeviceError
Definition: pkcs11t.h:278
CK_ULONG ulIvLen
Definition: pkcs11t.h:1784
CK_ULONG CK_MECHANISM_TYPE
Definition: pkcs11t.h:580
struct CK_RC5_PARAMS CK_RC5_PARAMS
CK_RSA_PKCS_OAEP_PARAMS_PTR pOAEPParams
Definition: pkcs11t.h:1849
CK_BYTE_PTR pSalt
Definition: pkcs11t.h:1537
CK_VOID_PTR pParameter
Definition: pkcs11t.h:989
CK_AES_CBC_ENCRYPT_DATA_PARAMS CK_PTR CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR
Definition: pkcs11t.h:1488
struct CK_RC5_CBC_PARAMS CK_RC5_CBC_PARAMS
CK_BYTE iv[8]
Definition: pkcs11t.h:1416
CK_RSA_PKCS_MGF_TYPE mgf
Definition: pkcs11t.h:1286
CK_ULONG ulMACLen
Definition: pkcs11t.h:1799
CK_UTF8CHAR label[32]
Definition: pkcs11t.h:133
struct CK_KEY_DERIVATION_STRING_DATA CK_KEY_DERIVATION_STRING_DATA
CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS CK_PTR CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR
Definition: pkcs11t.h:1810
struct CK_SLOT_INFO CK_SLOT_INFO
CK_ULONG ulSequenceNumber
Definition: pkcs11t.h:1640
CK_OBJECT_CLASS CK_PTR CK_OBJECT_CLASS_PTR
Definition: pkcs11t.h:315
CK_OBJECT_HANDLE certificateHandle
Definition: pkcs11t.h:1649
CK_VOID_PTR pPrfData
Definition: pkcs11t.h:1717
struct CK_ECDH1_DERIVE_PARAMS CK_ECDH1_DERIVE_PARAMS
CK_RSA_PKCS_MGF_TYPE mgf
Definition: pkcs11t.h:1273
CK_MECHANISM_TYPE CK_PTR CK_MECHANISM_TYPE_PTR
Definition: pkcs11t.h:982
CK_RC2_PARAMS CK_PTR CK_RC2_PARAMS_PTR
Definition: pkcs11t.h:1408
CK_SSL3_RANDOM_DATA RandomInfo
Definition: pkcs11t.h:1566
CK_BYTE_PTR pOutput
Definition: pkcs11t.h:1621
CK_BYTE_PTR pPublicData2
Definition: pkcs11t.h:1369
CK_SSL3_KEY_MAT_PARAMS CK_PTR CK_SSL3_KEY_MAT_PARAMS_PTR
Definition: pkcs11t.h:1595
struct CK_OTP_PARAMS CK_OTP_PARAMS
CK_ULONG_PTR pulOutputLen
Definition: pkcs11t.h:1622
struct CK_CCM_PARAMS CK_CCM_PARAMS
CK_ULONG ulSaltSourceDataLen
Definition: pkcs11t.h:1714
CK_ULONG ulIteration
Definition: pkcs11t.h:1539
CK_OBJECT_HANDLE hServerMacSecret
Definition: pkcs11t.h:1576
CK_ULONG ulParameterLen
Definition: pkcs11t.h:990
CK_SESSION_INFO CK_PTR CK_SESSION_INFO_PTR
Definition: pkcs11t.h:287
CK_MECHANISM CK_PTR CK_MECHANISM_PTR
Definition: pkcs11t.h:993
CK_BYTE_PTR pIv
Definition: pkcs11t.h:1783
CK_OBJECT_HANDLE hClientMacSecret
Definition: pkcs11t.h:1575
CK_OBJECT_HANDLE publicKey
Definition: pkcs11t.h:1384
CK_ULONG ulRequiredAttributesLen
Definition: pkcs11t.h:1656
CK_BYTE_PTR pOldPublicData
Definition: pkcs11t.h:1518
struct CK_WTLS_KEY_MAT_OUT CK_WTLS_KEY_MAT_OUT
CK_FUNCTION_LIST_PTR CK_PTR CK_FUNCTION_LIST_PTR_PTR
Definition: pkcs11t.h:1186
CK_GOSTR3410_KEY_WRAP_PARAMS CK_PTR CK_GOSTR3410_KEY_WRAP_PARAMS_PTR
Definition: pkcs11t.h:1915
CK_OTP_PARAM_PTR pParams
Definition: pkcs11t.h:1744
CK_ULONG ulFreePrivateMemory
Definition: pkcs11t.h:148
struct CK_TLS12_MASTER_KEY_DERIVE_PARAMS CK_TLS12_MASTER_KEY_DERIVE_PARAMS
struct CK_KIP_PARAMS CK_KIP_PARAMS
CK_ULONG ulMaxPinLen
Definition: pkcs11t.h:143
CK_MECHANISM_PTR pDigestMechanism
Definition: pkcs11t.h:1651
unsigned long int CK_ULONG
Definition: pkcs11t.h:44
CK_ULONG ulSharedDataLen
Definition: pkcs11t.h:1324
struct CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS
CK_PKCS5_PBKD2_PARAMS CK_PTR CK_PKCS5_PBKD2_PARAMS_PTR
Definition: pkcs11t.h:1723
CK_ULONG CK_MAC_GENERAL_PARAMS
Definition: pkcs11t.h:1470
CK_UTF8CHAR manufacturerID[32]
Definition: pkcs11t.h:112
CK_BYTE_PTR pPublicData
Definition: pkcs11t.h:1327
struct CK_RSA_PKCS_OAEP_PARAMS CK_RSA_PKCS_OAEP_PARAMS
CK_ULONG CK_FLAGS
Definition: pkcs11t.h:50
CK_UNLOCKMUTEX UnlockMutex
Definition: pkcs11t.h:1222
struct CK_X9_42_MQV_DERIVE_PARAMS CK_X9_42_MQV_DERIVE_PARAMS
CK_MECHANISM_TYPE hashAlg
Definition: pkcs11t.h:1285
CK_ULONG ulMacSizeInBits
Definition: pkcs11t.h:1865
CK_ULONG ulRequestedAttributesLen
Definition: pkcs11t.h:1654
CK_ULONG ulPublicDataLen2
Definition: pkcs11t.h:1330
CK_UTF8CHAR_PTR pPassword
Definition: pkcs11t.h:1535
CK_X9_42_MQV_DERIVE_PARAMS CK_PTR CK_X9_42_MQV_DERIVE_PARAMS_PTR
Definition: pkcs11t.h:1387
CK_BYTE_PTR pClientRandom
Definition: pkcs11t.h:1558
CK_MECHANISM_TYPE mechanism
Definition: pkcs11t.h:988
CK_INFO CK_PTR CK_INFO_PTR
Definition: pkcs11t.h:92
CK_MECHANISM_TYPE DigestMechanism
Definition: pkcs11t.h:1616
CK_RC2_CBC_PARAMS CK_PTR CK_RC2_CBC_PARAMS_PTR
Definition: pkcs11t.h:1419
CK_VERSION firmwareVersion
Definition: pkcs11t.h:150
CK_WTLS_RANDOM_DATA RandomInfo
Definition: pkcs11t.h:1608
CK_BYTE_PTR pIVClient
Definition: pkcs11t.h:1579
CK_FLAGS flags
Definition: pkcs11t.h:86
CK_TOKEN_INFO CK_PTR CK_TOKEN_INFO_PTR
Definition: pkcs11t.h:245
CK_ULONG ulSessionCount
Definition: pkcs11t.h:140
struct CK_TLS_KDF_PARAMS CK_TLS_KDF_PARAMS
CK_ECDH_AES_KEY_WRAP_PARAMS CK_PTR CK_ECDH_AES_KEY_WRAP_PARAMS_PTR
Definition: pkcs11t.h:1838
CK_KEY_DERIVATION_STRING_DATA CK_PTR CK_KEY_DERIVATION_STRING_DATA_PTR
Definition: pkcs11t.h:1667
struct CK_VERSION CK_VERSION
struct CK_GCM_PARAMS CK_GCM_PARAMS
CK_BYTE_PTR pRequestedAttributes
Definition: pkcs11t.h:1653
CK_OBJECT_HANDLE hPrivateData
Definition: pkcs11t.h:1329
CK_UTF8CHAR_PTR pPassword
Definition: pkcs11t.h:1719
CK_WTLS_RANDOM_DATA CK_PTR CK_WTLS_RANDOM_DATA_PTR
Definition: pkcs11t.h:1604
unsigned char CK_BYTE
Definition: pkcs11t.h:32
void CK_PTR CK_VOID_PTR
Definition: pkcs11t.h:62
CK_ULONG ulRounds
Definition: pkcs11t.h:1447
CK_MECHANISM_PTR pMechanism
Definition: pkcs11t.h:1767
CK_BYTE_PTR pServerRandom
Definition: pkcs11t.h:1560
CK_MECHANISM_TYPE prfHashMechanism
Definition: pkcs11t.h:1858
struct CK_GOSTR3410_KEY_WRAP_PARAMS CK_GOSTR3410_KEY_WRAP_PARAMS
CK_BYTE_PTR pPublicData2
Definition: pkcs11t.h:1383
CK_ULONG ulCounterBits
Definition: pkcs11t.h:1776
CK_UTF8CHAR model[16]
Definition: pkcs11t.h:135
CK_ULONG ulClientRandomLen
Definition: pkcs11t.h:1559
CK_BYTE CK_CHAR
Definition: pkcs11t.h:35
struct CK_KEA_DERIVE_PARAMS CK_KEA_DERIVE_PARAMS
CK_STATE state
Definition: pkcs11t.h:276
CK_ULONG ulAADLen
Definition: pkcs11t.h:1798
CK_WTLS_PRF_PARAMS CK_PTR CK_WTLS_PRF_PARAMS_PTR
Definition: pkcs11t.h:1625
CK_EXTRACT_PARAMS CK_PTR CK_EXTRACT_PARAMS_PTR
Definition: pkcs11t.h:1676
CK_RSA_PKCS_MGF_TYPE CK_PTR CK_RSA_PKCS_MGF_TYPE_PTR
Definition: pkcs11t.h:1248
struct CK_RC5_MAC_GENERAL_PARAMS CK_RC5_MAC_GENERAL_PARAMS
CK_RSA_AES_KEY_WRAP_PARAMS CK_PTR CK_RSA_AES_KEY_WRAP_PARAMS_PTR
Definition: pkcs11t.h:1852
CK_ULONG CK_RC2_PARAMS
Definition: pkcs11t.h:1406
CK_RSA_PKCS_OAEP_SOURCE_TYPE CK_PTR CK_RSA_PKCS_OAEP_SOURCE_TYPE_PTR
Definition: pkcs11t.h:1263
CK_ULONG ulValueLen
Definition: pkcs11t.h:1731
CK_MECHANISM_TYPE prfHashMechanism
Definition: pkcs11t.h:1890
CK_MAC_GENERAL_PARAMS CK_PTR CK_MAC_GENERAL_PARAMS_PTR
Definition: pkcs11t.h:1472
CK_OBJECT_HANDLE hMacSecret
Definition: pkcs11t.h:1628
CK_ULONG CK_SLOT_ID
Definition: pkcs11t.h:102
CK_ULONG ulDataLen
Definition: pkcs11t.h:1794
CK_UTF8CHAR slotDescription[64]
Definition: pkcs11t.h:111
struct CK_OTP_PARAM CK_OTP_PARAM
CK_BYTE_PTR pOldPassword
Definition: pkcs11t.h:1516
CK_TLS_KDF_PARAMS CK_PTR CK_TLS_KDF_PARAMS_PTR
Definition: pkcs11t.h:1886
CK_VOID_PTR pReserved
Definition: pkcs11t.h:1224
CK_OTP_PARAM_TYPE CK_PARAM_TYPE
Definition: pkcs11t.h:1726
CK_BYTE cb[16]
Definition: pkcs11t.h:1777
struct CK_TOKEN_INFO CK_TOKEN_INFO
CK_VERSION hardwareVersion
Definition: pkcs11t.h:149
struct CK_TLS_MAC_PARAMS CK_TLS_MAC_PARAMS
CK_ULONG ulMinPinLen
Definition: pkcs11t.h:144
CK_BYTE_PTR pOldWrappedX
Definition: pkcs11t.h:1514
struct CK_PKCS5_PBKD2_PARAMS CK_PKCS5_PBKD2_PARAMS
CK_OBJECT_HANDLE publicKey
Definition: pkcs11t.h:1332
struct CK_GOSTR3410_DERIVE_PARAMS CK_GOSTR3410_DERIVE_PARAMS
CK_OTP_PARAMS CK_PTR CK_OTP_PARAMS_PTR
Definition: pkcs11t.h:1741
CK_RSA_PKCS_OAEP_PARAMS CK_PTR CK_RSA_PKCS_OAEP_PARAMS_PTR
Definition: pkcs11t.h:1279
CK_FLAGS flags
Definition: pkcs11t.h:137
struct CK_ATTRIBUTE CK_ATTRIBUTE
struct CK_SSL3_MASTER_KEY_DERIVE_PARAMS CK_SSL3_MASTER_KEY_DERIVE_PARAMS
CK_OTP_SIGNATURE_INFO CK_PTR CK_OTP_SIGNATURE_INFO_PTR
Definition: pkcs11t.h:1748
CK_EC_KDF_TYPE kdf
Definition: pkcs11t.h:1323
struct CK_WTLS_MASTER_KEY_DERIVE_PARAMS CK_WTLS_MASTER_KEY_DERIVE_PARAMS
CK_SLOT_ID CK_PTR CK_SLOT_ID_PTR
Definition: pkcs11t.h:104
CK_CCM_PARAMS CK_PTR CK_CCM_PARAMS_PTR
Definition: pkcs11t.h:1802
CK_ULONG ulSourceDataLen
Definition: pkcs11t.h:1276
CK_SSL3_RANDOM_DATA RandomInfo
Definition: pkcs11t.h:1591
CK_ULONG ulClientRandomLen
Definition: pkcs11t.h:1599
struct CK_SKIPJACK_RELAYX_PARAMS CK_SKIPJACK_RELAYX_PARAMS
CK_ULONG ulPublicDataLen
Definition: pkcs11t.h:1316
CK_FUNCTION_LIST CK_PTR CK_FUNCTION_LIST_PTR
Definition: pkcs11t.h:1184
struct CK_MECHANISM_INFO CK_MECHANISM_INFO
CK_SSL3_KEY_MAT_OUT CK_PTR CK_SSL3_KEY_MAT_OUT_PTR
Definition: pkcs11t.h:1583
struct CK_PBE_PARAMS CK_PBE_PARAMS
CK_OBJECT_HANDLE hKey
Definition: pkcs11t.h:1629
struct CK_AES_CTR_PARAMS CK_AES_CTR_PARAMS
CK_ULONG CK_EXTRACT_PARAMS
Definition: pkcs11t.h:1674
CK_ULONG ulRwSessionCount
Definition: pkcs11t.h:142
CK_SKIPJACK_PRIVATE_WRAP_PARAMS CK_PTR CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR
Definition: pkcs11t.h:1507
CK_VERSION firmwareVersion
Definition: pkcs11t.h:116
struct CK_SSL3_MASTER_KEY_DERIVE_PARAMS CK_PTR CK_SSL3_MASTER_KEY_DERIVE_PARAMS_PTR
Definition: pkcs11t.h:1570
struct CK_TLS12_KEY_MAT_PARAMS CK_TLS12_KEY_MAT_PARAMS
CK_WTLS_KEY_MAT_PARAMS CK_PTR CK_WTLS_KEY_MAT_PARAMS_PTR
Definition: pkcs11t.h:1646
struct CK_OTP_SIGNATURE_INFO CK_OTP_SIGNATURE_INFO
CK_VOID_PTR pValue
Definition: pkcs11t.h:563
CK_ARIA_CBC_ENCRYPT_DATA_PARAMS CK_PTR CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR
Definition: pkcs11t.h:1818
CK_VOID_PTR pSaltSourceData
Definition: pkcs11t.h:1713
CK_BYTE_PTR pNonce
Definition: pkcs11t.h:1795
struct CK_RC2_MAC_GENERAL_PARAMS CK_RC2_MAC_GENERAL_PARAMS
CK_ULONG ulCount
Definition: pkcs11t.h:1738
CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial
Definition: pkcs11t.h:1870
CK_BYTE_PTR pPublicData
Definition: pkcs11t.h:1317
CK_C_INITIALIZE_ARGS CK_PTR CK_C_INITIALIZE_ARGS_PTR
Definition: pkcs11t.h:1233
CK_CMS_SIG_PARAMS CK_PTR CK_CMS_SIG_PARAMS_PTR
Definition: pkcs11t.h:1659
struct CK_DSA_PARAMETER_GEN_PARAM CK_DSA_PARAMETER_GEN_PARAM
CK_ULONG ulTagBits
Definition: pkcs11t.h:1788
CK_ULONG CK_OBJECT_CLASS
Definition: pkcs11t.h:300
CK_ULONG ulMaxRwSessionCount
Definition: pkcs11t.h:141
CK_TLS_MAC_PARAMS CK_PTR CK_TLS_MAC_PARAMS_PTR
Definition: pkcs11t.h:1895
CK_WTLS_KEY_MAT_OUT_PTR pReturnedKeyMaterial
Definition: pkcs11t.h:1643
CK_OBJECT_HANDLE hClientKey
Definition: pkcs11t.h:1577
CK_ULONG ulPasswordLen
Definition: pkcs11t.h:1536
struct CK_SSL3_KEY_MAT_OUT CK_SSL3_KEY_MAT_OUT
CK_BYTE_PTR pNewPassword
Definition: pkcs11t.h:1522
CK_DESTROYMUTEX DestroyMutex
Definition: pkcs11t.h:1220
CK_ULONG ulIvBits
Definition: pkcs11t.h:1785
CK_BYTE_PTR pIV
Definition: pkcs11t.h:1630
CK_ULONG ulPrivateDataLen
Definition: pkcs11t.h:1328
CK_ULONG ulTotalPublicMemory
Definition: pkcs11t.h:145
CK_ULONG ulIvLen
Definition: pkcs11t.h:1449
CK_CHAR utcTime[16]
Definition: pkcs11t.h:151
CK_ULONG ulIVSizeInBits
Definition: pkcs11t.h:1639
CK_MECHANISM_TYPE hash
Definition: pkcs11t.h:1822
CK_ULONG CK_CERTIFICATE_CATEGORY
Definition: pkcs11t.h:1844
CK_OBJECT_HANDLE hPrivateData
Definition: pkcs11t.h:1367
CK_BYTE_PTR pSeed
Definition: pkcs11t.h:1769
CK_OBJECT_HANDLE hServerKey
Definition: pkcs11t.h:1578
CK_BYTE_PTR pOldRandomA
Definition: pkcs11t.h:1520
CK_CHAR year[4]
Definition: pkcs11t.h:572
struct CK_RC2_CBC_PARAMS CK_RC2_CBC_PARAMS
CK_ULONG CK_STATE
Definition: pkcs11t.h:265
CK_CHAR CK_PTR CK_CHAR_PTR
Definition: pkcs11t.h:59
CK_ULONG CK_RSA_PKCS_OAEP_SOURCE_TYPE
Definition: pkcs11t.h:1261
struct CK_MECHANISM CK_MECHANISM
CK_X9_42_DH2_DERIVE_PARAMS CK_PTR CK_X9_42_DH2_DERIVE_PARAMS_PTR
Definition: pkcs11t.h:1372
CK_NOTIFICATION CK_VOID_PTR pApplication
Definition: pkcs11t.h:1174
CK_EC_KDF_TYPE kdf
Definition: pkcs11t.h:1898
CK_OBJECT_HANDLE hKey
Definition: pkcs11t.h:1912
CK_ULONG ulSaltLen
Definition: pkcs11t.h:1538
CK_X9_42_DH_KDF_TYPE kdf
Definition: pkcs11t.h:1347
CK_BYTE_PTR pRandomB
Definition: pkcs11t.h:1395
CK_GOSTR3410_DERIVE_PARAMS CK_PTR CK_GOSTR3410_DERIVE_PARAMS_PTR
Definition: pkcs11t.h:1905
CK_ULONG ulPrfDataLen
Definition: pkcs11t.h:1718
CK_BYTE_PTR pSeed
Definition: pkcs11t.h:1617
CK_UTF8CHAR manufacturerID[32]
Definition: pkcs11t.h:85
struct CK_DATE CK_DATE
CK_ULONG CK_EC_KDF_TYPE
Definition: pkcs11t.h:1292
CK_ULONG ulIVSizeInBits
Definition: pkcs11t.h:1589
CK_DSA_PARAMETER_GEN_PARAM CK_PTR CK_DSA_PARAMETER_GEN_PARAM_PTR
Definition: pkcs11t.h:1828
CK_ULONG ulContextDataLength
Definition: pkcs11t.h:1883
CK_ULONG ulMaxSessionCount
Definition: pkcs11t.h:139
struct CK_ARIA_CBC_ENCRYPT_DATA_PARAMS CK_ARIA_CBC_ENCRYPT_DATA_PARAMS
CK_ULONG CK_X9_42_DH_KDF_TYPE
Definition: pkcs11t.h:1339
CK_RC2_MAC_GENERAL_PARAMS CK_PTR CK_RC2_MAC_GENERAL_PARAMS_PTR
Definition: pkcs11t.h:1430
CK_SLOT_ID slotID
Definition: pkcs11t.h:275
CK_ULONG ulServerRandomLen
Definition: pkcs11t.h:1601
CK_ULONG CK_SESSION_HANDLE
Definition: pkcs11t.h:250
CK_CHAR day[2]
Definition: pkcs11t.h:574
CK_ULONG ulEffectiveBits
Definition: pkcs11t.h:1414
CK_BYTE CK_BBOOL
Definition: pkcs11t.h:41
CK_KEA_DERIVE_PARAMS CK_PTR CK_KEA_DERIVE_PARAMS_PTR
Definition: pkcs11t.h:1400
struct CK_WTLS_RANDOM_DATA CK_WTLS_RANDOM_DATA
struct CK_CMS_SIG_PARAMS CK_CMS_SIG_PARAMS
struct CK_SSL3_KEY_MAT_PARAMS CK_SSL3_KEY_MAT_PARAMS
CK_BYTE_PTR pRandomA
Definition: pkcs11t.h:1394
CK_BYTE_PTR pLabel
Definition: pkcs11t.h:1619
CK_BYTE_PTR pNewRandomA
Definition: pkcs11t.h:1526
CK_RC5_CBC_PARAMS CK_PTR CK_RC5_CBC_PARAMS_PTR
Definition: pkcs11t.h:1452
CK_ULONG ulSeedLen
Definition: pkcs11t.h:1770
CK_VERSION cryptokiVersion
Definition: pkcs11t.h:84
long int CK_LONG
Definition: pkcs11t.h:47
CK_BYTE_PTR pLabel
Definition: pkcs11t.h:1879
CK_VERSION hardwareVersion
Definition: pkcs11t.h:115
CK_SLOT_INFO CK_PTR CK_SLOT_INFO_PTR
Definition: pkcs11t.h:126
CK_OTP_PARAM_TYPE type
Definition: pkcs11t.h:1729
CK_ULONG ulLabelLength
Definition: pkcs11t.h:1880
struct CK_WTLS_KEY_MAT_PARAMS CK_WTLS_KEY_MAT_PARAMS
struct CK_C_INITIALIZE_ARGS CK_C_INITIALIZE_ARGS
CK_SSL3_RANDOM_DATA RandomInfo
Definition: pkcs11t.h:1881
CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE prf
Definition: pkcs11t.h:1716
CK_FLAGS flags
Definition: pkcs11t.h:1001
struct CK_SKIPJACK_PRIVATE_WRAP_PARAMS CK_SKIPJACK_PRIVATE_WRAP_PARAMS
CK_OBJECT_HANDLE hKey
Definition: pkcs11t.h:1768
CK_BYTE CK_PTR CK_BYTE_PTR
Definition: pkcs11t.h:58
CK_ULONG CK_OTP_PARAM_TYPE
Definition: pkcs11t.h:1725
CK_CHAR serialNumber[16]
Definition: pkcs11t.h:136
CK_BYTE minor
Definition: pkcs11t.h:75
CK_RSA_PKCS_PSS_PARAMS CK_PTR CK_RSA_PKCS_PSS_PARAMS_PTR
Definition: pkcs11t.h:1290
CK_ATTRIBUTE_TYPE type
Definition: pkcs11t.h:562
CK_MECHANISM_TYPE hashAlg
Definition: pkcs11t.h:1272
CK_BYTE_PTR pIv
Definition: pkcs11t.h:1448
CK_VOID_PTR pValue
Definition: pkcs11t.h:1730
CK_UTF8CHAR_PTR pContentType
Definition: pkcs11t.h:1652
CK_ULONG ulMacSizeInBits
Definition: pkcs11t.h:1637
CK_BYTE_PTR pContextData
Definition: pkcs11t.h:1882
CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE CK_PTR CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE_PTR
Definition: pkcs11t.h:1684
CK_ULONG ulTotalPrivateMemory
Definition: pkcs11t.h:147
CK_ULONG ulMaxKeySize
Definition: pkcs11t.h:1000
CK_ULONG_PTR ulPasswordLen
Definition: pkcs11t.h:1720
CK_ULONG ulNonceLen
Definition: pkcs11t.h:1796
CK_ULONG CK_PTR CK_ULONG_PTR
Definition: pkcs11t.h:61
CK_NOTIFICATION event
Definition: pkcs11t.h:1174
CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial
Definition: pkcs11t.h:1592
CK_ULONG ulPublicDataLen
Definition: pkcs11t.h:1326
CK_ULONG ulMacSizeInBits
Definition: pkcs11t.h:1587
CK_ULONG CK_USER_TYPE
Definition: pkcs11t.h:256
struct CK_RSA_PKCS_PSS_PARAMS CK_RSA_PKCS_PSS_PARAMS
CK_AES_CTR_PARAMS CK_PTR CK_AES_CTR_PARAMS_PTR
Definition: pkcs11t.h:1780
CK_GCM_PARAMS CK_PTR CK_GCM_PARAMS_PTR
Definition: pkcs11t.h:1791
CK_KEY_WRAP_SET_OAEP_PARAMS CK_PTR CK_KEY_WRAP_SET_OAEP_PARAMS_PTR
Definition: pkcs11t.h:1554
CK_ULONG CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE
Definition: pkcs11t.h:1700
CK_BYTE_PTR pNewPublicData
Definition: pkcs11t.h:1524
CK_ULONG CK_RV
Definition: pkcs11t.h:1038
CK_ULONG ulRandomLen
Definition: pkcs11t.h:1393
CK_SSL3_RANDOM_DATA RandomInfo
Definition: pkcs11t.h:1869
CK_ULONG ulSeedLen
Definition: pkcs11t.h:1618
CK_ATTRIBUTE CK_PTR CK_ATTRIBUTE_PTR
Definition: pkcs11t.h:567
CK_BYTE_PTR pSharedData
Definition: pkcs11t.h:1315
CK_BYTE CK_UTF8CHAR
Definition: pkcs11t.h:38
CK_KIP_PARAMS CK_PTR CK_KIP_PARAMS_PTR
Definition: pkcs11t.h:1773
CK_UTF8CHAR CK_PTR CK_UTF8CHAR_PTR
Definition: pkcs11t.h:60
CK_UTF8CHAR libraryDescription[32]
Definition: pkcs11t.h:88
CK_SESSION_HANDLE CK_PTR CK_SESSION_HANDLE_PTR
Definition: pkcs11t.h:252
CK_ULONG ulSharedDataLen
Definition: pkcs11t.h:1314