|
@@ -1,5 +1,6 @@
|
|
|
/* pkcs11.h
|
|
|
Copyright 2006 g10 Code GmbH
|
|
|
+ Copyright 2006 Andreas Jellinghaus
|
|
|
|
|
|
This file is free software; as a special exception the author gives
|
|
|
unlimited permission to copy and/or distribute it, with or without
|
|
@@ -10,10 +11,15 @@
|
|
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
|
PURPOSE. */
|
|
|
|
|
|
+/* Please submit changes back to the Scute project at
|
|
|
+ http://www.scute.org/ (or send them to marcus@g10code.com), so that
|
|
|
+ they can be picked up by other projects from there as well. */
|
|
|
+
|
|
|
/* This file is a modified implementation of the PKCS #11 standard by
|
|
|
- RSA Security Inc. The goal is ABI compatibility and conformance to
|
|
|
- the GNU coding standard in the API. For this, the following
|
|
|
- changes are made to the specification:
|
|
|
+ RSA Security Inc. The goal is ABI compatibility to the PKCS #11
|
|
|
+ standard on the one hand and conformance to the GNU coding standard
|
|
|
+ in the API on the other hand. For this, the following changes are
|
|
|
+ made to the specification:
|
|
|
|
|
|
All structure types are changed to a "struct ck_foo" where CK_FOO
|
|
|
is the type name in PKCS #11.
|
|
@@ -46,7 +52,6 @@
|
|
|
#define CRYPTOKI_COMPAT 1
|
|
|
#endif
|
|
|
|
|
|
-
|
|
|
/* System dependencies. */
|
|
|
|
|
|
#ifdef __WIN32
|
|
@@ -107,6 +112,7 @@ struct ck_slot_info
|
|
|
#define CKF_TOKEN_PRESENT (1 << 0)
|
|
|
#define CKF_REMOVABLE_DEVICE (1 << 1)
|
|
|
#define CKF_HW_SLOT (1 << 2)
|
|
|
+#define CKF_ARRAY_ATTRIBUTE (1 << 30)
|
|
|
|
|
|
|
|
|
struct ck_token_info
|
|
@@ -214,9 +220,32 @@ typedef unsigned long ck_hw_feature_type_t;
|
|
|
|
|
|
typedef unsigned long ck_key_type_t;
|
|
|
|
|
|
-/* FIXME: More can be added here. */
|
|
|
#define CKK_RSA (0)
|
|
|
#define CKK_DSA (1)
|
|
|
+#define CKK_DH (2)
|
|
|
+#define CKK_ECDSA (3)
|
|
|
+#define CKK_EC (3)
|
|
|
+#define CKK_X9_42_DH (4)
|
|
|
+#define CKK_KEA (5)
|
|
|
+#define CKK_GENERIC_SECRET (0x10)
|
|
|
+#define CKK_RC2 (0x11)
|
|
|
+#define CKK_RC4 (0x12)
|
|
|
+#define CKK_DES (0x13)
|
|
|
+#define CKK_DES2 (0x14)
|
|
|
+#define CKK_DES3 (0x15)
|
|
|
+#define CKK_CAST (0x16)
|
|
|
+#define CKK_CAST3 (0x17)
|
|
|
+#define CKK_CAST128 (0x18)
|
|
|
+#define CKK_RC5 (0x19)
|
|
|
+#define CKK_IDEA (0x1a)
|
|
|
+#define CKK_SKIPJACK (0x1b)
|
|
|
+#define CKK_BATON (0x1c)
|
|
|
+#define CKK_JUNIPER (0x1d)
|
|
|
+#define CKK_CDMF (0x1e)
|
|
|
+#define CKK_AES (0x1f)
|
|
|
+#define CKK_BLOWFISH (0x20)
|
|
|
+#define CKK_TWOFISH (0x21)
|
|
|
+#define CKK_VENDOR_DEFINED (1 << 31)
|
|
|
|
|
|
|
|
|
typedef unsigned long ck_certificate_type_t;
|
|
@@ -229,15 +258,19 @@ typedef unsigned long ck_certificate_type_t;
|
|
|
|
|
|
typedef unsigned long ck_attribute_type_t;
|
|
|
|
|
|
-/* FIXME: More can be added here. */
|
|
|
#define CKA_CLASS (0)
|
|
|
#define CKA_TOKEN (1)
|
|
|
#define CKA_PRIVATE (2)
|
|
|
#define CKA_LABEL (3)
|
|
|
+#define CKA_APPLICATION (0x10)
|
|
|
#define CKA_VALUE (0x11)
|
|
|
+#define CKA_OBJECT_ID (0x12)
|
|
|
#define CKA_CERTIFICATE_TYPE (0x80)
|
|
|
#define CKA_ISSUER (0x81)
|
|
|
#define CKA_SERIAL_NUMBER (0x82)
|
|
|
+#define CKA_AC_ISSUER (0x83)
|
|
|
+#define CKA_OWNER (0x84)
|
|
|
+#define CKA_ATTR_TYPES (0x85)
|
|
|
#define CKA_TRUSTED (0x86)
|
|
|
#define CKA_CERTIFICATE_CATEGORY (0x87)
|
|
|
#define CKA_JAVA_MIDP_SECURITY_DOMAIN (0x88)
|
|
@@ -246,28 +279,70 @@ typedef unsigned long ck_attribute_type_t;
|
|
|
#define CKA_HASH_OF_ISSUER_PUBLIC_KEY (0x8b)
|
|
|
#define CKA_CHECK_VALUE (0x90)
|
|
|
#define CKA_KEY_TYPE (0x100)
|
|
|
+#define CKA_SUBJECT (0x101)
|
|
|
+#define CKA_ID (0x102)
|
|
|
#define CKA_SENSITIVE (0x103)
|
|
|
+#define CKA_ENCRYPT (0x104)
|
|
|
#define CKA_DECRYPT (0x105)
|
|
|
+#define CKA_WRAP (0x106)
|
|
|
#define CKA_UNWRAP (0x107)
|
|
|
#define CKA_SIGN (0x108)
|
|
|
#define CKA_SIGN_RECOVER (0x109)
|
|
|
+#define CKA_VERIFY (0x10a)
|
|
|
+#define CKA_VERIFY_RECOVER (0x10b)
|
|
|
+#define CKA_DERIVE (0x10c)
|
|
|
#define CKA_START_DATE (0x110)
|
|
|
#define CKA_END_DATE (0x111)
|
|
|
#define CKA_MODULUS (0x120)
|
|
|
+#define CKA_MODULUS_BITS (0x121)
|
|
|
#define CKA_PUBLIC_EXPONENT (0x122)
|
|
|
-#define CKA_MODIFIABLE (0x170)
|
|
|
-#define CKA_SUBJECT (0x101)
|
|
|
-#define CKA_ID (0x102)
|
|
|
-#define CKA_DERIVE (0x10c)
|
|
|
+#define CKA_PRIVATE_EXPONENT (0x123)
|
|
|
+#define CKA_PRIME_1 (0x124)
|
|
|
+#define CKA_PRIME_2 (0x125)
|
|
|
+#define CKA_EXPONENT_1 (0x126)
|
|
|
+#define CKA_EXPONENT_2 (0x127)
|
|
|
+#define CKA_COEFFICIENT (0x128)
|
|
|
+#define CKA_PRIME (0x130)
|
|
|
+#define CKA_SUBPRIME (0x131)
|
|
|
+#define CKA_BASE (0x132)
|
|
|
+#define CKA_PRIME_BITS (0x133)
|
|
|
+#define CKA_SUB_PRIME_BITS (0x134)
|
|
|
+#define CKA_VALUE_BITS (0x160)
|
|
|
+#define CKA_VALUE_LEN (0x161)
|
|
|
#define CKA_EXTRACTABLE (0x162)
|
|
|
#define CKA_LOCAL (0x163)
|
|
|
#define CKA_NEVER_EXTRACTABLE (0x164)
|
|
|
#define CKA_ALWAYS_SENSITIVE (0x165)
|
|
|
#define CKA_KEY_GEN_MECHANISM (0x166)
|
|
|
+#define CKA_MODIFIABLE (0x170)
|
|
|
+#define CKA_ECDSA_PARAMS (0x180)
|
|
|
+#define CKA_EC_PARAMS (0x180)
|
|
|
+#define CKA_EC_POINT (0x181)
|
|
|
+#define CKA_SECONDARY_AUTH (0x200)
|
|
|
+#define CKA_AUTH_PIN_FLAGS (0x201)
|
|
|
#define CKA_ALWAYS_AUTHENTICATE (0x202)
|
|
|
#define CKA_WRAP_WITH_TRUSTED (0x210)
|
|
|
-#define CKA_UNWRAP_TEMPLATE (0x40000212)
|
|
|
-#define CKA_ALLOWED_MECHANISMS (0x40000600)
|
|
|
+#define CKA_HW_FEATURE_TYPE (0x300)
|
|
|
+#define CKA_RESET_ON_INIT (0x301)
|
|
|
+#define CKA_HAS_RESET (0x302)
|
|
|
+#define CKA_PIXEL_X (0x400)
|
|
|
+#define CKA_PIXEL_Y (0x401)
|
|
|
+#define CKA_RESOLUTION (0x402)
|
|
|
+#define CKA_CHAR_ROWS (0x403)
|
|
|
+#define CKA_CHAR_COLUMNS (0x404)
|
|
|
+#define CKA_COLOR (0x405)
|
|
|
+#define CKA_BITS_PER_PIXEL (0x406)
|
|
|
+#define CKA_CHAR_SETS (0x480)
|
|
|
+#define CKA_ENCODING_METHODS (0x481)
|
|
|
+#define CKA_MIME_TYPES (0x482)
|
|
|
+#define CKA_MECHANISM_TYPE (0x500)
|
|
|
+#define CKA_REQUIRED_CMS_ATTRIBUTES (0x501)
|
|
|
+#define CKA_DEFAULT_CMS_ATTRIBUTES (0x502)
|
|
|
+#define CKA_SUPPORTED_CMS_ATTRIBUTES (0x503)
|
|
|
+#define CKA_WRAP_TEMPLATE (CKF_ARRAY_ATTRIBUTE | 0x211)
|
|
|
+#define CKA_UNWRAP_TEMPLATE (CKF_ARRAY_ATTRIBUTE | 0x212)
|
|
|
+#define CKA_ALLOWED_MECHANISMS (CKF_ARRAY_ATTRIBUTE | 0x600)
|
|
|
+#define CKA_VENDOR_DEFINED (1 << 31)
|
|
|
|
|
|
|
|
|
struct ck_attribute
|
|
@@ -290,6 +365,188 @@ typedef unsigned long ck_mechanism_type_t;
|
|
|
|
|
|
#define CKM_RSA_PKCS_KEY_PAIR_GEN (0)
|
|
|
#define CKM_RSA_PKCS (1)
|
|
|
+#define CKM_RSA_9796 (2)
|
|
|
+#define CKM_RSA_X_509 (3)
|
|
|
+#define CKM_MD2_RSA_PKCS (4)
|
|
|
+#define CKM_MD5_RSA_PKCS (5)
|
|
|
+#define CKM_SHA1_RSA_PKCS (6)
|
|
|
+#define CKM_RIPEMD128_RSA_PKCS (7)
|
|
|
+#define CKM_RIPEMD160_RSA_PKCS (8)
|
|
|
+#define CKM_RSA_PKCS_OAEP (9)
|
|
|
+#define CKM_RSA_X9_31_KEY_PAIR_GEN (0xa)
|
|
|
+#define CKM_RSA_X9_31 (0xb)
|
|
|
+#define CKM_SHA1_RSA_X9_31 (0xc)
|
|
|
+#define CKM_RSA_PKCS_PSS (0xd)
|
|
|
+#define CKM_SHA1_RSA_PKCS_PSS (0xe)
|
|
|
+#define CKM_DSA_KEY_PAIR_GEN (0x10)
|
|
|
+#define CKM_DSA (0x11)
|
|
|
+#define CKM_DSA_SHA1 (0x12)
|
|
|
+#define CKM_DH_PKCS_KEY_PAIR_GEN (0x20)
|
|
|
+#define CKM_DH_PKCS_DERIVE (0x21)
|
|
|
+#define CKM_X9_42_DH_KEY_PAIR_GEN (0x30)
|
|
|
+#define CKM_X9_42_DH_DERIVE (0x31)
|
|
|
+#define CKM_X9_42_DH_HYBRID_DERIVE (0x32)
|
|
|
+#define CKM_X9_42_MQV_DERIVE (0x33)
|
|
|
+#define CKM_RC2_KEY_GEN (0x100)
|
|
|
+#define CKM_RC2_ECB (0x101)
|
|
|
+#define CKM_RC2_CBC (0x102)
|
|
|
+#define CKM_RC2_MAC (0x103)
|
|
|
+#define CKM_RC2_MAC_GENERAL (0x104)
|
|
|
+#define CKM_RC2_CBC_PAD (0x105)
|
|
|
+#define CKM_RC4_KEY_GEN (0x110)
|
|
|
+#define CKM_RC4 (0x111)
|
|
|
+#define CKM_DES_KEY_GEN (0x120)
|
|
|
+#define CKM_DES_ECB (0x121)
|
|
|
+#define CKM_DES_CBC (0x122)
|
|
|
+#define CKM_DES_MAC (0x123)
|
|
|
+#define CKM_DES_MAC_GENERAL (0x124)
|
|
|
+#define CKM_DES_CBC_PAD (0x125)
|
|
|
+#define CKM_DES2_KEY_GEN (0x130)
|
|
|
+#define CKM_DES3_KEY_GEN (0x131)
|
|
|
+#define CKM_DES3_ECB (0x132)
|
|
|
+#define CKM_DES3_CBC (0x133)
|
|
|
+#define CKM_DES3_MAC (0x134)
|
|
|
+#define CKM_DES3_MAC_GENERAL (0x135)
|
|
|
+#define CKM_DES3_CBC_PAD (0x136)
|
|
|
+#define CKM_CDMF_KEY_GEN (0x140)
|
|
|
+#define CKM_CDMF_ECB (0x141)
|
|
|
+#define CKM_CDMF_CBC (0x142)
|
|
|
+#define CKM_CDMF_MAC (0x143)
|
|
|
+#define CKM_CDMF_MAC_GENERAL (0x144)
|
|
|
+#define CKM_CDMF_CBC_PAD (0x145)
|
|
|
+#define CKM_MD2 (0x200)
|
|
|
+#define CKM_MD2_HMAC (0x201)
|
|
|
+#define CKM_MD2_HMAC_GENERAL (0x202)
|
|
|
+#define CKM_MD5 (0x210)
|
|
|
+#define CKM_MD5_HMAC (0x211)
|
|
|
+#define CKM_MD5_HMAC_GENERAL (0x212)
|
|
|
+#define CKM_SHA_1 (0x220)
|
|
|
+#define CKM_SHA_1_HMAC (0x221)
|
|
|
+#define CKM_SHA_1_HMAC_GENERAL (0x222)
|
|
|
+#define CKM_RIPEMD128 (0x230)
|
|
|
+#define CKM_RIPEMD128_HMAC (0x231)
|
|
|
+#define CKM_RIPEMD128_HMAC_GENERAL (0x232)
|
|
|
+#define CKM_RIPEMD160 (0x240)
|
|
|
+#define CKM_RIPEMD160_HMAC (0x241)
|
|
|
+#define CKM_RIPEMD160_HMAC_GENERAL (0x242)
|
|
|
+#define CKM_CAST_KEY_GEN (0x300)
|
|
|
+#define CKM_CAST_ECB (0x301)
|
|
|
+#define CKM_CAST_CBC (0x302)
|
|
|
+#define CKM_CAST_MAC (0x303)
|
|
|
+#define CKM_CAST_MAC_GENERAL (0x304)
|
|
|
+#define CKM_CAST_CBC_PAD (0x305)
|
|
|
+#define CKM_CAST3_KEY_GEN (0x310)
|
|
|
+#define CKM_CAST3_ECB (0x311)
|
|
|
+#define CKM_CAST3_CBC (0x312)
|
|
|
+#define CKM_CAST3_MAC (0x313)
|
|
|
+#define CKM_CAST3_MAC_GENERAL (0x314)
|
|
|
+#define CKM_CAST3_CBC_PAD (0x315)
|
|
|
+#define CKM_CAST5_KEY_GEN (0x320)
|
|
|
+#define CKM_CAST128_KEY_GEN (0x320)
|
|
|
+#define CKM_CAST5_ECB (0x321)
|
|
|
+#define CKM_CAST128_ECB (0x321)
|
|
|
+#define CKM_CAST5_CBC (0x322)
|
|
|
+#define CKM_CAST128_CBC (0x322)
|
|
|
+#define CKM_CAST5_MAC (0x323)
|
|
|
+#define CKM_CAST128_MAC (0x323)
|
|
|
+#define CKM_CAST5_MAC_GENERAL (0x324)
|
|
|
+#define CKM_CAST128_MAC_GENERAL (0x324)
|
|
|
+#define CKM_CAST5_CBC_PAD (0x325)
|
|
|
+#define CKM_CAST128_CBC_PAD (0x325)
|
|
|
+#define CKM_RC5_KEY_GEN (0x330)
|
|
|
+#define CKM_RC5_ECB (0x331)
|
|
|
+#define CKM_RC5_CBC (0x332)
|
|
|
+#define CKM_RC5_MAC (0x333)
|
|
|
+#define CKM_RC5_MAC_GENERAL (0x334)
|
|
|
+#define CKM_RC5_CBC_PAD (0x335)
|
|
|
+#define CKM_IDEA_KEY_GEN (0x340)
|
|
|
+#define CKM_IDEA_ECB (0x341)
|
|
|
+#define CKM_IDEA_CBC (0x342)
|
|
|
+#define CKM_IDEA_MAC (0x343)
|
|
|
+#define CKM_IDEA_MAC_GENERAL (0x344)
|
|
|
+#define CKM_IDEA_CBC_PAD (0x345)
|
|
|
+#define CKM_GENERIC_SECRET_KEY_GEN (0x350)
|
|
|
+#define CKM_CONCATENATE_BASE_AND_KEY (0x360)
|
|
|
+#define CKM_CONCATENATE_BASE_AND_DATA (0x362)
|
|
|
+#define CKM_CONCATENATE_DATA_AND_BASE (0x363)
|
|
|
+#define CKM_XOR_BASE_AND_DATA (0x364)
|
|
|
+#define CKM_EXTRACT_KEY_FROM_KEY (0x365)
|
|
|
+#define CKM_SSL3_PRE_MASTER_KEY_GEN (0x370)
|
|
|
+#define CKM_SSL3_MASTER_KEY_DERIVE (0x371)
|
|
|
+#define CKM_SSL3_KEY_AND_MAC_DERIVE (0x372)
|
|
|
+#define CKM_SSL3_MASTER_KEY_DERIVE_DH (0x373)
|
|
|
+#define CKM_TLS_PRE_MASTER_KEY_GEN (0x374)
|
|
|
+#define CKM_TLS_MASTER_KEY_DERIVE (0x375)
|
|
|
+#define CKM_TLS_KEY_AND_MAC_DERIVE (0x376)
|
|
|
+#define CKM_TLS_MASTER_KEY_DERIVE_DH (0x377)
|
|
|
+#define CKM_SSL3_MD5_MAC (0x380)
|
|
|
+#define CKM_SSL3_SHA1_MAC (0x381)
|
|
|
+#define CKM_MD5_KEY_DERIVATION (0x390)
|
|
|
+#define CKM_MD2_KEY_DERIVATION (0x391)
|
|
|
+#define CKM_SHA1_KEY_DERIVATION (0x392)
|
|
|
+#define CKM_PBE_MD2_DES_CBC (0x3a0)
|
|
|
+#define CKM_PBE_MD5_DES_CBC (0x3a1)
|
|
|
+#define CKM_PBE_MD5_CAST_CBC (0x3a2)
|
|
|
+#define CKM_PBE_MD5_CAST3_CBC (0x3a3)
|
|
|
+#define CKM_PBE_MD5_CAST5_CBC (0x3a4)
|
|
|
+#define CKM_PBE_MD5_CAST128_CBC (0x3a4)
|
|
|
+#define CKM_PBE_SHA1_CAST5_CBC (0x3a5)
|
|
|
+#define CKM_PBE_SHA1_CAST128_CBC (0x3a5)
|
|
|
+#define CKM_PBE_SHA1_RC4_128 (0x3a6)
|
|
|
+#define CKM_PBE_SHA1_RC4_40 (0x3a7)
|
|
|
+#define CKM_PBE_SHA1_DES3_EDE_CBC (0x3a8)
|
|
|
+#define CKM_PBE_SHA1_DES2_EDE_CBC (0x3a9)
|
|
|
+#define CKM_PBE_SHA1_RC2_128_CBC (0x3aa)
|
|
|
+#define CKM_PBE_SHA1_RC2_40_CBC (0x3ab)
|
|
|
+#define CKM_PKCS5_PBKD2 (0x3b0)
|
|
|
+#define CKM_PBA_SHA1_WITH_SHA1_HMAC (0x3c0)
|
|
|
+#define CKM_KEY_WRAP_LYNKS (0x400)
|
|
|
+#define CKM_KEY_WRAP_SET_OAEP (0x401)
|
|
|
+#define CKM_SKIPJACK_KEY_GEN (0x1000)
|
|
|
+#define CKM_SKIPJACK_ECB64 (0x1001)
|
|
|
+#define CKM_SKIPJACK_CBC64 (0x1002)
|
|
|
+#define CKM_SKIPJACK_OFB64 (0x1003)
|
|
|
+#define CKM_SKIPJACK_CFB64 (0x1004)
|
|
|
+#define CKM_SKIPJACK_CFB32 (0x1005)
|
|
|
+#define CKM_SKIPJACK_CFB16 (0x1006)
|
|
|
+#define CKM_SKIPJACK_CFB8 (0x1007)
|
|
|
+#define CKM_SKIPJACK_WRAP (0x1008)
|
|
|
+#define CKM_SKIPJACK_PRIVATE_WRAP (0x1009)
|
|
|
+#define CKM_SKIPJACK_RELAYX (0x100a)
|
|
|
+#define CKM_KEA_KEY_PAIR_GEN (0x1010)
|
|
|
+#define CKM_KEA_KEY_DERIVE (0x1011)
|
|
|
+#define CKM_FORTEZZA_TIMESTAMP (0x1020)
|
|
|
+#define CKM_BATON_KEY_GEN (0x1030)
|
|
|
+#define CKM_BATON_ECB128 (0x1031)
|
|
|
+#define CKM_BATON_ECB96 (0x1032)
|
|
|
+#define CKM_BATON_CBC128 (0x1033)
|
|
|
+#define CKM_BATON_COUNTER (0x1034)
|
|
|
+#define CKM_BATON_SHUFFLE (0x1035)
|
|
|
+#define CKM_BATON_WRAP (0x1036)
|
|
|
+#define CKM_ECDSA_KEY_PAIR_GEN (0x1040)
|
|
|
+#define CKM_EC_KEY_PAIR_GEN (0x1040)
|
|
|
+#define CKM_ECDSA (0x1041)
|
|
|
+#define CKM_ECDSA_SHA1 (0x1042)
|
|
|
+#define CKM_ECDH1_DERIVE (0x1050)
|
|
|
+#define CKM_ECDH1_COFACTOR_DERIVE (0x1051)
|
|
|
+#define CKM_ECMQV_DERIVE (0x1052)
|
|
|
+#define CKM_JUNIPER_KEY_GEN (0x1060)
|
|
|
+#define CKM_JUNIPER_ECB128 (0x1061)
|
|
|
+#define CKM_JUNIPER_CBC128 (0x1062)
|
|
|
+#define CKM_JUNIPER_COUNTER (0x1063)
|
|
|
+#define CKM_JUNIPER_SHUFFLE (0x1064)
|
|
|
+#define CKM_JUNIPER_WRAP (0x1065)
|
|
|
+#define CKM_FASTHASH (0x1070)
|
|
|
+#define CKM_AES_KEY_GEN (0x1080)
|
|
|
+#define CKM_AES_ECB (0x1081)
|
|
|
+#define CKM_AES_CBC (0x1082)
|
|
|
+#define CKM_AES_MAC (0x1083)
|
|
|
+#define CKM_AES_MAC_GENERAL (0x1084)
|
|
|
+#define CKM_AES_CBC_PAD (0x1085)
|
|
|
+#define CKM_DSA_PARAMETER_GEN (0x2000)
|
|
|
+#define CKM_DH_PKCS_PARAMETER_GEN (0x2001)
|
|
|
+#define CKM_X9_42_DH_PARAMETER_GEN (0x2002)
|
|
|
+#define CKM_VENDOR_DEFINED (1 << 31)
|
|
|
|
|
|
|
|
|
struct ck_mechanism
|
|
@@ -323,6 +580,10 @@ struct ck_mechanism_info
|
|
|
#define CKF_EXTENSION (1 << 31)
|
|
|
|
|
|
|
|
|
+/* Flags for C_WaitForSlotEvent. */
|
|
|
+#define CKF_DONT_BLOCK (1)
|
|
|
+
|
|
|
+
|
|
|
typedef unsigned int ck_rv_t;
|
|
|
|
|
|
|
|
@@ -715,30 +976,93 @@ struct ck_c_initialize_args
|
|
|
#define CKF_LIBRARY_CANT_CREATE_OS_THREADS (1 << 0)
|
|
|
#define CKF_OS_LOCKING_OK (1 << 1)
|
|
|
|
|
|
-
|
|
|
#define CKR_OK (0)
|
|
|
+#define CKR_CANCEL (1)
|
|
|
#define CKR_HOST_MEMORY (2)
|
|
|
#define CKR_SLOT_ID_INVALID (3)
|
|
|
#define CKR_GENERAL_ERROR (5)
|
|
|
#define CKR_FUNCTION_FAILED (6)
|
|
|
#define CKR_ARGUMENTS_BAD (7)
|
|
|
+#define CKR_NO_EVENT (8)
|
|
|
#define CKR_NEED_TO_CREATE_THREADS (9)
|
|
|
#define CKR_CANT_LOCK (0xa)
|
|
|
+#define CKR_ATTRIBUTE_READ_ONLY (0x10)
|
|
|
+#define CKR_ATTRIBUTE_SENSITIVE (0x11)
|
|
|
#define CKR_ATTRIBUTE_TYPE_INVALID (0x12)
|
|
|
+#define CKR_ATTRIBUTE_VALUE_INVALID (0x13)
|
|
|
+#define CKR_DATA_INVALID (0x20)
|
|
|
+#define CKR_DATA_LEN_RANGE (0x21)
|
|
|
+#define CKR_DEVICE_ERROR (0x30)
|
|
|
+#define CKR_DEVICE_MEMORY (0x31)
|
|
|
+#define CKR_DEVICE_REMOVED (0x32)
|
|
|
+#define CKR_ENCRYPTED_DATA_INVALID (0x40)
|
|
|
+#define CKR_ENCRYPTED_DATA_LEN_RANGE (0x41)
|
|
|
+#define CKR_FUNCTION_CANCELED (0x50)
|
|
|
#define CKR_FUNCTION_NOT_PARALLEL (0x51)
|
|
|
#define CKR_FUNCTION_NOT_SUPPORTED (0x54)
|
|
|
#define CKR_KEY_HANDLE_INVALID (0x60)
|
|
|
+#define CKR_KEY_SIZE_RANGE (0x62)
|
|
|
+#define CKR_KEY_TYPE_INCONSISTENT (0x63)
|
|
|
+#define CKR_KEY_NOT_NEEDED (0x64)
|
|
|
+#define CKR_KEY_CHANGED (0x65)
|
|
|
+#define CKR_KEY_NEEDED (0x66)
|
|
|
+#define CKR_KEY_INDIGESTIBLE (0x67)
|
|
|
+#define CKR_KEY_FUNCTION_NOT_PERMITTED (0x68)
|
|
|
+#define CKR_KEY_NOT_WRAPPABLE (0x69)
|
|
|
+#define CKR_KEY_UNEXTRACTABLE (0x6a)
|
|
|
#define CKR_MECHANISM_INVALID (0x70)
|
|
|
+#define CKR_MECHANISM_PARAM_INVALID (0x71)
|
|
|
#define CKR_OBJECT_HANDLE_INVALID (0x82)
|
|
|
+#define CKR_OPERATION_ACTIVE (0x90)
|
|
|
+#define CKR_OPERATION_NOT_INITIALIZED (0x91)
|
|
|
+#define CKR_PIN_INCORRECT (0xa0)
|
|
|
+#define CKR_PIN_INVALID (0xa1)
|
|
|
+#define CKR_PIN_LEN_RANGE (0xa2)
|
|
|
+#define CKR_PIN_EXPIRED (0xa3)
|
|
|
+#define CKR_PIN_LOCKED (0xa4)
|
|
|
+#define CKR_SESSION_CLOSED (0xb0)
|
|
|
#define CKR_SESSION_COUNT (0xb1)
|
|
|
#define CKR_SESSION_HANDLE_INVALID (0xb3)
|
|
|
#define CKR_SESSION_PARALLEL_NOT_SUPPORTED (0xb4)
|
|
|
+#define CKR_SESSION_READ_ONLY (0xb5)
|
|
|
+#define CKR_SESSION_EXISTS (0xb6)
|
|
|
+#define CKR_SESSION_READ_ONLY_EXISTS (0xb7)
|
|
|
#define CKR_SESSION_READ_WRITE_SO_EXISTS (0xb8)
|
|
|
+#define CKR_SIGNATURE_INVALID (0xc0)
|
|
|
+#define CKR_SIGNATURE_LEN_RANGE (0xc1)
|
|
|
+#define CKR_TEMPLATE_INCOMPLETE (0xd0)
|
|
|
+#define CKR_TEMPLATE_INCONSISTENT (0xd1)
|
|
|
#define CKR_TOKEN_NOT_PRESENT (0xe0)
|
|
|
+#define CKR_TOKEN_NOT_RECOGNIZED (0xe1)
|
|
|
#define CKR_TOKEN_WRITE_PROTECTED (0xe2)
|
|
|
+#define CKR_UNWRAPPING_KEY_HANDLE_INVALID (0xf0)
|
|
|
+#define CKR_UNWRAPPING_KEY_SIZE_RANGE (0xf1)
|
|
|
+#define CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT (0xf2)
|
|
|
+#define CKR_USER_ALREADY_LOGGED_IN (0x100)
|
|
|
+#define CKR_USER_NOT_LOGGED_IN (0x101)
|
|
|
+#define CKR_USER_PIN_NOT_INITIALIZED (0x102)
|
|
|
+#define CKR_USER_TYPE_INVALID (0x103)
|
|
|
+#define CKR_USER_ANOTHER_ALREADY_LOGGED_IN (0x104)
|
|
|
+#define CKR_USER_TOO_MANY_TYPES (0x105)
|
|
|
+#define CKR_WRAPPED_KEY_INVALID (0x110)
|
|
|
+#define CKR_WRAPPED_KEY_LEN_RANGE (0x112)
|
|
|
+#define CKR_WRAPPING_KEY_HANDLE_INVALID (0x113)
|
|
|
+#define CKR_WRAPPING_KEY_SIZE_RANGE (0x114)
|
|
|
+#define CKR_WRAPPING_KEY_TYPE_INCONSISTENT (0x115)
|
|
|
+#define CKR_RANDOM_SEED_NOT_SUPPORTED (0x120)
|
|
|
+#define CKR_RANDOM_NO_RNG (0x121)
|
|
|
+#define CKR_DOMAIN_PARAMS_INVALID (0x130)
|
|
|
#define CKR_BUFFER_TOO_SMALL (0x150)
|
|
|
+#define CKR_SAVED_STATE_INVALID (0x160)
|
|
|
+#define CKR_INFORMATION_SENSITIVE (0x170)
|
|
|
+#define CKR_STATE_UNSAVEABLE (0x180)
|
|
|
+#define CKR_CRYPTOKI_NOT_INITIALIZED (0x190)
|
|
|
+#define CKR_CRYPTOKI_ALREADY_INITIALIZED (0x191)
|
|
|
+#define CKR_MUTEX_BAD (0x1a0)
|
|
|
+#define CKR_MUTEX_NOT_LOCKED (0x1a1)
|
|
|
#define CKR_VENDOR_DEFINED (1 << 31)
|
|
|
|
|
|
+
|
|
|
|
|
|
/* Compatibility layer. */
|
|
|
|