# An attempt at a Python interface to PKCS 11 using the scary ctypes # module from the Python standard library. # This code is derived from the RSA PKCS #11 C header files, which say: # # License to copy and use this software is granted provided that it is # identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface # (Cryptoki)" in all material mentioning or referencing this software. # # License is also granted to make and use derivative works provided that # such works are identified as "derived from the RSA Security Inc. PKCS #11 # Cryptographic Token Interface (Cryptoki)" in all material mentioning or # referencing the derived work. # # RSA Security Inc. makes no representations concerning either the # merchantability of this software or the suitability of this software for # any particular purpose. It is provided "as is" without express or implied # warranty of any kind. CRYPTOKI_VERSION_MAJOR = 2 CRYPTOKI_VERSION_MINOR = 30 CRYPTOKI_VERSION_AMENDMENT = 0 CK_TRUE = 1 CK_FALSE = 0 CK_UNAVAILABLE_INFORMATION = ~0 CK_EFFECTIVELY_INFINITE = 0 CK_INVALID_HANDLE = 0 CKN_SURRENDER = 0 CKN_OTP_CHANGED = 1 CKF_TOKEN_PRESENT = 0x00000001 CKF_REMOVABLE_DEVICE = 0x00000002 CKF_HW_SLOT = 0x00000004 CKF_RNG = 0x00000001 CKF_WRITE_PROTECTED = 0x00000002 CKF_LOGIN_REQUIRED = 0x00000004 CKF_USER_PIN_INITIALIZED = 0x00000008 CKF_RESTORE_KEY_NOT_NEEDED = 0x00000020 CKF_CLOCK_ON_TOKEN = 0x00000040 CKF_PROTECTED_AUTHENTICATION_PATH = 0x00000100 CKF_DUAL_CRYPTO_OPERATIONS = 0x00000200 CKF_TOKEN_INITIALIZED = 0x00000400 CKF_SECONDARY_AUTHENTICATION = 0x00000800 CKF_USER_PIN_COUNT_LOW = 0x00010000 CKF_USER_PIN_FINAL_TRY = 0x00020000 CKF_USER_PIN_LOCKED = 0x00040000 CKF_USER_PIN_TO_BE_CHANGED = 0x00080000 CKF_SO_PIN_COUNT_LOW = 0x00100000 CKF_SO_PIN_FINAL_TRY = 0x00200000 CKF_SO_PIN_LOCKED = 0x00400000 CKF_SO_PIN_TO_BE_CHANGED = 0x00800000 CKF_ERROR_STATE = 0x01000000 CKU_SO = 0 CKU_USER = 1 CKU_CONTEXT_SPECIFIC = 2 CKS_RO_PUBLIC_SESSION = 0 CKS_RO_USER_FUNCTIONS = 1 CKS_RW_PUBLIC_SESSION = 2 CKS_RW_USER_FUNCTIONS = 3 CKS_RW_SO_FUNCTIONS = 4 CKF_RW_SESSION = 0x00000002 CKF_SERIAL_SESSION = 0x00000004 CKO_DATA = 0x00000000 CKO_CERTIFICATE = 0x00000001 CKO_PUBLIC_KEY = 0x00000002 CKO_PRIVATE_KEY = 0x00000003 CKO_SECRET_KEY = 0x00000004 CKO_HW_FEATURE = 0x00000005 CKO_DOMAIN_PARAMETERS = 0x00000006 CKO_MECHANISM = 0x00000007 CKO_OTP_KEY = 0x00000008 CKO_VENDOR_DEFINED = 0x80000000 CKH_MONOTONIC_COUNTER = 0x00000001 CKH_CLOCK = 0x00000002 CKH_USER_INTERFACE = 0x00000003 CKH_VENDOR_DEFINED = 0x80000000 CKK_RSA = 0x00000000 CKK_DSA = 0x00000001 CKK_DH = 0x00000002 CKK_ECDSA = 0x00000003 CKK_EC = 0x00000003 CKK_X9_42_DH = 0x00000004 CKK_KEA = 0x00000005 CKK_GENERIC_SECRET = 0x00000010 CKK_RC2 = 0x00000011 CKK_RC4 = 0x00000012 CKK_DES = 0x00000013 CKK_DES2 = 0x00000014 CKK_DES3 = 0x00000015 CKK_CAST = 0x00000016 CKK_CAST3 = 0x00000017 CKK_CAST5 = 0x00000018 CKK_CAST128 = 0x00000018 CKK_RC5 = 0x00000019 CKK_IDEA = 0x0000001A CKK_SKIPJACK = 0x0000001B CKK_BATON = 0x0000001C CKK_JUNIPER = 0x0000001D CKK_CDMF = 0x0000001E CKK_AES = 0x0000001F CKK_BLOWFISH = 0x00000020 CKK_TWOFISH = 0x00000021 CKK_SECURID = 0x00000022 CKK_HOTP = 0x00000023 CKK_ACTI = 0x00000024 CKK_CAMELLIA = 0x00000025 CKK_ARIA = 0x00000026 CKK_MD5_HMAC = 0x00000027 CKK_SHA_1_HMAC = 0x00000028 CKK_RIPEMD128_HMAC = 0x00000029 CKK_RIPEMD160_HMAC = 0x0000002A CKK_SHA256_HMAC = 0x0000002B CKK_SHA384_HMAC = 0x0000002C CKK_SHA512_HMAC = 0x0000002D CKK_SHA224_HMAC = 0x0000002E CKK_SEED = 0x0000002F CKK_GOSTR3410 = 0x00000030 CKK_GOSTR3411 = 0x00000031 CKK_GOST28147 = 0x00000032 CKK_VENDOR_DEFINED = 0x80000000 CKC_X_509 = 0x00000000 CKC_X_509_ATTR_CERT = 0x00000001 CKC_WTLS = 0x00000002 CKC_VENDOR_DEFINED = 0x80000000 CKF_ARRAY_ATTRIBUTE = 0x40000000 CK_OTP_FORMAT_DECIMAL = 0 CK_OTP_FORMAT_HEXADECIMAL = 1 CK_OTP_FORMAT_ALPHANUMERIC = 2 CK_OTP_FORMAT_BINARY = 3 CK_OTP_PARAM_IGNORED = 0 CK_OTP_PARAM_OPTIONAL = 1 CK_OTP_PARAM_MANDATORY = 2 CKA_CLASS = 0x00000000 CKA_TOKEN = 0x00000001 CKA_PRIVATE = 0x00000002 CKA_LABEL = 0x00000003 CKA_APPLICATION = 0x00000010 CKA_VALUE = 0x00000011 CKA_OBJECT_ID = 0x00000012 CKA_CERTIFICATE_TYPE = 0x00000080 CKA_ISSUER = 0x00000081 CKA_SERIAL_NUMBER = 0x00000082 CKA_AC_ISSUER = 0x00000083 CKA_OWNER = 0x00000084 CKA_ATTR_TYPES = 0x00000085 CKA_TRUSTED = 0x00000086 CKA_CERTIFICATE_CATEGORY = 0x00000087 CKA_JAVA_MIDP_SECURITY_DOMAIN = 0x00000088 CKA_URL = 0x00000089 CKA_HASH_OF_SUBJECT_PUBLIC_KEY = 0x0000008A CKA_HASH_OF_ISSUER_PUBLIC_KEY = 0x0000008B CKA_CHECK_VALUE = 0x00000090 CKA_KEY_TYPE = 0x00000100 CKA_SUBJECT = 0x00000101 CKA_ID = 0x00000102 CKA_SENSITIVE = 0x00000103 CKA_ENCRYPT = 0x00000104 CKA_DECRYPT = 0x00000105 CKA_WRAP = 0x00000106 CKA_UNWRAP = 0x00000107 CKA_SIGN = 0x00000108 CKA_SIGN_RECOVER = 0x00000109 CKA_VERIFY = 0x0000010A CKA_VERIFY_RECOVER = 0x0000010B CKA_DERIVE = 0x0000010C CKA_START_DATE = 0x00000110 CKA_END_DATE = 0x00000111 CKA_MODULUS = 0x00000120 CKA_MODULUS_BITS = 0x00000121 CKA_PUBLIC_EXPONENT = 0x00000122 CKA_PRIVATE_EXPONENT = 0x00000123 CKA_PRIME_1 = 0x00000124 CKA_PRIME_2 = 0x00000125 CKA_EXPONENT_1 = 0x00000126 CKA_EXPONENT_2 = 0x00000127 CKA_COEFFICIENT = 0x00000128 CKA_PRIME = 0x00000130 CKA_SUBPRIME = 0x00000131 CKA_BASE = 0x00000132 CKA_PRIME_BITS = 0x00000133 CKA_SUBPRIME_BITS = 0x00000134 CKA_SUB_PRIME_BITS = CKA_SUBPRIME_BITS CKA_VALUE_BITS = 0x00000160 CKA_VALUE_LEN = 0x00000161 CKA_EXTRACTABLE = 0x00000162 CKA_LOCAL = 0x00000163 CKA_NEVER_EXTRACTABLE = 0x00000164 CKA_ALWAYS_SENSITIVE = 0x00000165 CKA_KEY_GEN_MECHANISM = 0x00000166 CKA_MODIFIABLE = 0x00000170 CKA_ECDSA_PARAMS = 0x00000180 CKA_EC_PARAMS = 0x00000180 CKA_EC_POINT = 0x00000181 CKA_SECONDARY_AUTH = 0x00000200 CKA_AUTH_PIN_FLAGS = 0x00000201 CKA_ALWAYS_AUTHENTICATE = 0x00000202 CKA_WRAP_WITH_TRUSTED = 0x00000210 CKA_WRAP_TEMPLATE = (CKF_ARRAY_ATTRIBUTE|0x00000211) CKA_UNWRAP_TEMPLATE = (CKF_ARRAY_ATTRIBUTE|0x00000212) CKA_DERIVE_TEMPLATE = (CKF_ARRAY_ATTRIBUTE|0x00000213) CKA_OTP_FORMAT = 0x00000220 CKA_OTP_LENGTH = 0x00000221 CKA_OTP_TIME_INTERVAL = 0x00000222 CKA_OTP_USER_FRIENDLY_MODE = 0x00000223 CKA_OTP_CHALLENGE_REQUIREMENT = 0x00000224 CKA_OTP_TIME_REQUIREMENT = 0x00000225 CKA_OTP_COUNTER_REQUIREMENT = 0x00000226 CKA_OTP_PIN_REQUIREMENT = 0x00000227 CKA_OTP_COUNTER = 0x0000022E CKA_OTP_TIME = 0x0000022F CKA_OTP_USER_IDENTIFIER = 0x0000022A CKA_OTP_SERVICE_IDENTIFIER = 0x0000022B CKA_OTP_SERVICE_LOGO = 0x0000022C CKA_OTP_SERVICE_LOGO_TYPE = 0x0000022D CKA_GOSTR3410_PARAMS = 0x00000250 CKA_GOSTR3411_PARAMS = 0x00000251 CKA_GOST28147_PARAMS = 0x00000252 CKA_HW_FEATURE_TYPE = 0x00000300 CKA_RESET_ON_INIT = 0x00000301 CKA_HAS_RESET = 0x00000302 CKA_PIXEL_X = 0x00000400 CKA_PIXEL_Y = 0x00000401 CKA_RESOLUTION = 0x00000402 CKA_CHAR_ROWS = 0x00000403 CKA_CHAR_COLUMNS = 0x00000404 CKA_COLOR = 0x00000405 CKA_BITS_PER_PIXEL = 0x00000406 CKA_CHAR_SETS = 0x00000480 CKA_ENCODING_METHODS = 0x00000481 CKA_MIME_TYPES = 0x00000482 CKA_MECHANISM_TYPE = 0x00000500 CKA_REQUIRED_CMS_ATTRIBUTES = 0x00000501 CKA_DEFAULT_CMS_ATTRIBUTES = 0x00000502 CKA_SUPPORTED_CMS_ATTRIBUTES = 0x00000503 CKA_ALLOWED_MECHANISMS = (CKF_ARRAY_ATTRIBUTE|0x00000600) CKA_VENDOR_DEFINED = 0x80000000 CKM_RSA_PKCS_KEY_PAIR_GEN = 0x00000000 CKM_RSA_PKCS = 0x00000001 CKM_RSA_9796 = 0x00000002 CKM_RSA_X_509 = 0x00000003 CKM_MD2_RSA_PKCS = 0x00000004 CKM_MD5_RSA_PKCS = 0x00000005 CKM_SHA1_RSA_PKCS = 0x00000006 CKM_RIPEMD128_RSA_PKCS = 0x00000007 CKM_RIPEMD160_RSA_PKCS = 0x00000008 CKM_RSA_PKCS_OAEP = 0x00000009 CKM_RSA_X9_31_KEY_PAIR_GEN = 0x0000000A CKM_RSA_X9_31 = 0x0000000B CKM_SHA1_RSA_X9_31 = 0x0000000C CKM_RSA_PKCS_PSS = 0x0000000D CKM_SHA1_RSA_PKCS_PSS = 0x0000000E CKM_DSA_KEY_PAIR_GEN = 0x00000010 CKM_DSA = 0x00000011 CKM_DSA_SHA1 = 0x00000012 CKM_DSA_SHA224 = 0x00000013 CKM_DSA_SHA256 = 0x00000014 CKM_DSA_SHA384 = 0x00000015 CKM_DSA_SHA512 = 0x00000016 CKM_DH_PKCS_KEY_PAIR_GEN = 0x00000020 CKM_DH_PKCS_DERIVE = 0x00000021 CKM_X9_42_DH_KEY_PAIR_GEN = 0x00000030 CKM_X9_42_DH_DERIVE = 0x00000031 CKM_X9_42_DH_HYBRID_DERIVE = 0x00000032 CKM_X9_42_MQV_DERIVE = 0x00000033 CKM_SHA256_RSA_PKCS = 0x00000040 CKM_SHA384_RSA_PKCS = 0x00000041 CKM_SHA512_RSA_PKCS = 0x00000042 CKM_SHA256_RSA_PKCS_PSS = 0x00000043 CKM_SHA384_RSA_PKCS_PSS = 0x00000044 CKM_SHA512_RSA_PKCS_PSS = 0x00000045 CKM_SHA224_RSA_PKCS = 0x00000046 CKM_SHA224_RSA_PKCS_PSS = 0x00000047 CKM_RC2_KEY_GEN = 0x00000100 CKM_RC2_ECB = 0x00000101 CKM_RC2_CBC = 0x00000102 CKM_RC2_MAC = 0x00000103 CKM_RC2_MAC_GENERAL = 0x00000104 CKM_RC2_CBC_PAD = 0x00000105 CKM_RC4_KEY_GEN = 0x00000110 CKM_RC4 = 0x00000111 CKM_DES_KEY_GEN = 0x00000120 CKM_DES_ECB = 0x00000121 CKM_DES_CBC = 0x00000122 CKM_DES_MAC = 0x00000123 CKM_DES_MAC_GENERAL = 0x00000124 CKM_DES_CBC_PAD = 0x00000125 CKM_DES2_KEY_GEN = 0x00000130 CKM_DES3_KEY_GEN = 0x00000131 CKM_DES3_ECB = 0x00000132 CKM_DES3_CBC = 0x00000133 CKM_DES3_MAC = 0x00000134 CKM_DES3_MAC_GENERAL = 0x00000135 CKM_DES3_CBC_PAD = 0x00000136 CKM_DES3_CMAC_GENERAL = 0x00000137 CKM_DES3_CMAC = 0x00000138 CKM_CDMF_KEY_GEN = 0x00000140 CKM_CDMF_ECB = 0x00000141 CKM_CDMF_CBC = 0x00000142 CKM_CDMF_MAC = 0x00000143 CKM_CDMF_MAC_GENERAL = 0x00000144 CKM_CDMF_CBC_PAD = 0x00000145 CKM_DES_OFB64 = 0x00000150 CKM_DES_OFB8 = 0x00000151 CKM_DES_CFB64 = 0x00000152 CKM_DES_CFB8 = 0x00000153 CKM_MD2 = 0x00000200 CKM_MD2_HMAC = 0x00000201 CKM_MD2_HMAC_GENERAL = 0x00000202 CKM_MD5 = 0x00000210 CKM_MD5_HMAC = 0x00000211 CKM_MD5_HMAC_GENERAL = 0x00000212 CKM_SHA_1 = 0x00000220 CKM_SHA_1_HMAC = 0x00000221 CKM_SHA_1_HMAC_GENERAL = 0x00000222 CKM_RIPEMD128 = 0x00000230 CKM_RIPEMD128_HMAC = 0x00000231 CKM_RIPEMD128_HMAC_GENERAL = 0x00000232 CKM_RIPEMD160 = 0x00000240 CKM_RIPEMD160_HMAC = 0x00000241 CKM_RIPEMD160_HMAC_GENERAL = 0x00000242 CKM_SHA256 = 0x00000250 CKM_SHA256_HMAC = 0x00000251 CKM_SHA256_HMAC_GENERAL = 0x00000252 CKM_SHA224 = 0x00000255 CKM_SHA224_HMAC = 0x00000256 CKM_SHA224_HMAC_GENERAL = 0x00000257 CKM_SHA384 = 0x00000260 CKM_SHA384_HMAC = 0x00000261 CKM_SHA384_HMAC_GENERAL = 0x00000262 CKM_SHA512 = 0x00000270 CKM_SHA512_HMAC = 0x00000271 CKM_SHA512_HMAC_GENERAL = 0x00000272 CKM_SECURID_KEY_GEN = 0x00000280 CKM_SECURID = 0x00000282 CKM_HOTP_KEY_GEN = 0x00000290 CKM_HOTP = 0x00000291 CKM_ACTI = 0x000002A0 CKM_ACTI_KEY_GEN = 0x000002A1 CKM_CAST_KEY_GEN = 0x00000300 CKM_CAST_ECB = 0x00000301 CKM_CAST_CBC = 0x00000302 CKM_CAST_MAC = 0x00000303 CKM_CAST_MAC_GENERAL = 0x00000304 CKM_CAST_CBC_PAD = 0x00000305 CKM_CAST3_KEY_GEN = 0x00000310 CKM_CAST3_ECB = 0x00000311 CKM_CAST3_CBC = 0x00000312 CKM_CAST3_MAC = 0x00000313 CKM_CAST3_MAC_GENERAL = 0x00000314 CKM_CAST3_CBC_PAD = 0x00000315 CKM_CAST5_KEY_GEN = 0x00000320 CKM_CAST128_KEY_GEN = 0x00000320 CKM_CAST5_ECB = 0x00000321 CKM_CAST128_ECB = 0x00000321 CKM_CAST5_CBC = 0x00000322 CKM_CAST128_CBC = 0x00000322 CKM_CAST5_MAC = 0x00000323 CKM_CAST128_MAC = 0x00000323 CKM_CAST5_MAC_GENERAL = 0x00000324 CKM_CAST128_MAC_GENERAL = 0x00000324 CKM_CAST5_CBC_PAD = 0x00000325 CKM_CAST128_CBC_PAD = 0x00000325 CKM_RC5_KEY_GEN = 0x00000330 CKM_RC5_ECB = 0x00000331 CKM_RC5_CBC = 0x00000332 CKM_RC5_MAC = 0x00000333 CKM_RC5_MAC_GENERAL = 0x00000334 CKM_RC5_CBC_PAD = 0x00000335 CKM_IDEA_KEY_GEN = 0x00000340 CKM_IDEA_ECB = 0x00000341 CKM_IDEA_CBC = 0x00000342 CKM_IDEA_MAC = 0x00000343 CKM_IDEA_MAC_GENERAL = 0x00000344 CKM_IDEA_CBC_PAD = 0x00000345 CKM_GENERIC_SECRET_KEY_GEN = 0x00000350 CKM_CONCATENATE_BASE_AND_KEY = 0x00000360 CKM_CONCATENATE_BASE_AND_DATA = 0x00000362 CKM_CONCATENATE_DATA_AND_BASE = 0x00000363 CKM_XOR_BASE_AND_DATA = 0x00000364 CKM_EXTRACT_KEY_FROM_KEY = 0x00000365 CKM_SSL3_PRE_MASTER_KEY_GEN = 0x00000370 CKM_SSL3_MASTER_KEY_DERIVE = 0x00000371 CKM_SSL3_KEY_AND_MAC_DERIVE = 0x00000372 CKM_SSL3_MASTER_KEY_DERIVE_DH = 0x00000373 CKM_TLS_PRE_MASTER_KEY_GEN = 0x00000374 CKM_TLS_MASTER_KEY_DERIVE = 0x00000375 CKM_TLS_KEY_AND_MAC_DERIVE = 0x00000376 CKM_TLS_MASTER_KEY_DERIVE_DH = 0x00000377 CKM_TLS_PRF = 0x00000378 CKM_SSL3_MD5_MAC = 0x00000380 CKM_SSL3_SHA1_MAC = 0x00000381 CKM_MD5_KEY_DERIVATION = 0x00000390 CKM_MD2_KEY_DERIVATION = 0x00000391 CKM_SHA1_KEY_DERIVATION = 0x00000392 CKM_SHA256_KEY_DERIVATION = 0x00000393 CKM_SHA384_KEY_DERIVATION = 0x00000394 CKM_SHA512_KEY_DERIVATION = 0x00000395 CKM_SHA224_KEY_DERIVATION = 0x00000396 CKM_PBE_MD2_DES_CBC = 0x000003A0 CKM_PBE_MD5_DES_CBC = 0x000003A1 CKM_PBE_MD5_CAST_CBC = 0x000003A2 CKM_PBE_MD5_CAST3_CBC = 0x000003A3 CKM_PBE_MD5_CAST5_CBC = 0x000003A4 CKM_PBE_MD5_CAST128_CBC = 0x000003A4 CKM_PBE_SHA1_CAST5_CBC = 0x000003A5 CKM_PBE_SHA1_CAST128_CBC = 0x000003A5 CKM_PBE_SHA1_RC4_128 = 0x000003A6 CKM_PBE_SHA1_RC4_40 = 0x000003A7 CKM_PBE_SHA1_DES3_EDE_CBC = 0x000003A8 CKM_PBE_SHA1_DES2_EDE_CBC = 0x000003A9 CKM_PBE_SHA1_RC2_128_CBC = 0x000003AA CKM_PBE_SHA1_RC2_40_CBC = 0x000003AB CKM_PKCS5_PBKD2 = 0x000003B0 CKM_PBA_SHA1_WITH_SHA1_HMAC = 0x000003C0 CKM_WTLS_PRE_MASTER_KEY_GEN = 0x000003D0 CKM_WTLS_MASTER_KEY_DERIVE = 0x000003D1 CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC = 0x000003D2 CKM_WTLS_PRF = 0x000003D3 CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE = 0x000003D4 CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE = 0x000003D5 CKM_KEY_WRAP_LYNKS = 0x00000400 CKM_KEY_WRAP_SET_OAEP = 0x00000401 CKM_CMS_SIG = 0x00000500 CKM_KIP_DERIVE = 0x00000510 CKM_KIP_WRAP = 0x00000511 CKM_KIP_MAC = 0x00000512 CKM_CAMELLIA_KEY_GEN = 0x00000550 CKM_CAMELLIA_ECB = 0x00000551 CKM_CAMELLIA_CBC = 0x00000552 CKM_CAMELLIA_MAC = 0x00000553 CKM_CAMELLIA_MAC_GENERAL = 0x00000554 CKM_CAMELLIA_CBC_PAD = 0x00000555 CKM_CAMELLIA_ECB_ENCRYPT_DATA = 0x00000556 CKM_CAMELLIA_CBC_ENCRYPT_DATA = 0x00000557 CKM_CAMELLIA_CTR = 0x00000558 CKM_ARIA_KEY_GEN = 0x00000560 CKM_ARIA_ECB = 0x00000561 CKM_ARIA_CBC = 0x00000562 CKM_ARIA_MAC = 0x00000563 CKM_ARIA_MAC_GENERAL = 0x00000564 CKM_ARIA_CBC_PAD = 0x00000565 CKM_ARIA_ECB_ENCRYPT_DATA = 0x00000566 CKM_ARIA_CBC_ENCRYPT_DATA = 0x00000567 CKM_SEED_KEY_GEN = 0x00000650 CKM_SEED_ECB = 0x00000651 CKM_SEED_CBC = 0x00000652 CKM_SEED_MAC = 0x00000653 CKM_SEED_MAC_GENERAL = 0x00000654 CKM_SEED_CBC_PAD = 0x00000655 CKM_SEED_ECB_ENCRYPT_DATA = 0x00000656 CKM_SEED_CBC_ENCRYPT_DATA = 0x00000657 CKM_SKIPJACK_KEY_GEN = 0x00001000 CKM_SKIPJACK_ECB64 = 0x00001001 CKM_SKIPJACK_CBC64 = 0x00001002 CKM_SKIPJACK_OFB64 = 0x00001003 CKM_SKIPJACK_CFB64 = 0x00001004 CKM_SKIPJACK_CFB32 = 0x00001005 CKM_SKIPJACK_CFB16 = 0x00001006 CKM_SKIPJACK_CFB8 = 0x00001007 CKM_SKIPJACK_WRAP = 0x00001008 CKM_SKIPJACK_PRIVATE_WRAP = 0x00001009 CKM_SKIPJACK_RELAYX = 0x0000100a CKM_KEA_KEY_PAIR_GEN = 0x00001010 CKM_KEA_KEY_DERIVE = 0x00001011 CKM_FORTEZZA_TIMESTAMP = 0x00001020 CKM_BATON_KEY_GEN = 0x00001030 CKM_BATON_ECB128 = 0x00001031 CKM_BATON_ECB96 = 0x00001032 CKM_BATON_CBC128 = 0x00001033 CKM_BATON_COUNTER = 0x00001034 CKM_BATON_SHUFFLE = 0x00001035 CKM_BATON_WRAP = 0x00001036 CKM_ECDSA_KEY_PAIR_GEN = 0x00001040 CKM_EC_KEY_PAIR_GEN = 0x00001040 CKM_ECDSA = 0x00001041 CKM_ECDSA_SHA1 = 0x00001042 CKM_ECDSA_SHA224 = 0x00001043 CKM_ECDSA_SHA256 = 0x00001044 CKM_ECDSA_SHA384 = 0x00001045 CKM_ECDSA_SHA512 = 0x00001046 CKM_ECDH1_DERIVE = 0x00001050 CKM_ECDH1_COFACTOR_DERIVE = 0x00001051 CKM_ECMQV_DERIVE = 0x00001052 CKM_JUNIPER_KEY_GEN = 0x00001060 CKM_JUNIPER_ECB128 = 0x00001061 CKM_JUNIPER_CBC128 = 0x00001062 CKM_JUNIPER_COUNTER = 0x00001063 CKM_JUNIPER_SHUFFLE = 0x00001064 CKM_JUNIPER_WRAP = 0x00001065 CKM_FASTHASH = 0x00001070 CKM_AES_KEY_GEN = 0x00001080 CKM_AES_ECB = 0x00001081 CKM_AES_CBC = 0x00001082 CKM_AES_MAC = 0x00001083 CKM_AES_MAC_GENERAL = 0x00001084 CKM_AES_CBC_PAD = 0x00001085 CKM_AES_CTR = 0x00001086 CKM_AES_CTS = 0x00001089 CKM_AES_CMAC = 0x0000108A CKM_AES_CMAC_GENERAL = 0x0000108B CKM_BLOWFISH_KEY_GEN = 0x00001090 CKM_BLOWFISH_CBC = 0x00001091 CKM_TWOFISH_KEY_GEN = 0x00001092 CKM_TWOFISH_CBC = 0x00001093 CKM_AES_GCM = 0x00001087 CKM_AES_CCM = 0x00001088 CKM_AES_KEY_WRAP = 0x00001090 CKM_AES_KEY_WRAP_PAD = 0x00001091 CKM_BLOWFISH_CBC_PAD = 0x00001094 CKM_TWOFISH_CBC_PAD = 0x00001095 CKM_DES_ECB_ENCRYPT_DATA = 0x00001100 CKM_DES_CBC_ENCRYPT_DATA = 0x00001101 CKM_DES3_ECB_ENCRYPT_DATA = 0x00001102 CKM_DES3_CBC_ENCRYPT_DATA = 0x00001103 CKM_AES_ECB_ENCRYPT_DATA = 0x00001104 CKM_AES_CBC_ENCRYPT_DATA = 0x00001105 CKM_GOSTR3410_KEY_PAIR_GEN = 0x00001200 CKM_GOSTR3410 = 0x00001201 CKM_GOSTR3410_WITH_GOSTR3411 = 0x00001202 CKM_GOSTR3410_KEY_WRAP = 0x00001203 CKM_GOSTR3410_DERIVE = 0x00001204 CKM_GOSTR3411 = 0x00001210 CKM_GOSTR3411_HMAC = 0x00001211 CKM_GOST28147_KEY_GEN = 0x00001220 CKM_GOST28147_ECB = 0x00001221 CKM_GOST28147 = 0x00001222 CKM_GOST28147_MAC = 0x00001223 CKM_GOST28147_KEY_WRAP = 0x00001224 CKM_DSA_PARAMETER_GEN = 0x00002000 CKM_DH_PKCS_PARAMETER_GEN = 0x00002001 CKM_X9_42_DH_PARAMETER_GEN = 0x00002002 CKM_AES_OFB = 0x00002104 CKM_AES_CFB64 = 0x00002105 CKM_AES_CFB8 = 0x00002106 CKM_AES_CFB128 = 0x00002107 CKM_RSA_PKCS_TPM_1_1 = 0x00004001 CKM_RSA_PKCS_OAEP_TPM_1_1 = 0x00004002 CKM_VENDOR_DEFINED = 0x80000000 CKF_HW = 0x00000001 CKF_ENCRYPT = 0x00000100 CKF_DECRYPT = 0x00000200 CKF_DIGEST = 0x00000400 CKF_SIGN = 0x00000800 CKF_SIGN_RECOVER = 0x00001000 CKF_VERIFY = 0x00002000 CKF_VERIFY_RECOVER = 0x00004000 CKF_GENERATE = 0x00008000 CKF_GENERATE_KEY_PAIR = 0x00010000 CKF_WRAP = 0x00020000 CKF_UNWRAP = 0x00040000 CKF_DERIVE = 0x00080000 CKF_EC_F_P = 0x00100000 CKF_EC_F_2M = 0x00200000 CKF_EC_ECPARAMETERS = 0x00400000 CKF_EC_NAMEDCURVE = 0x00800000 CKF_EC_UNCOMPRESS = 0x01000000 CKF_EC_COMPRESS = 0x02000000 CKF_EXTENSION = 0x80000000 CKF_LIBRARY_CANT_CREATE_OS_THREADS = 0x00000001 CKF_OS_LOCKING_OK = 0x00000002 CKF_DONT_BLOCK = 1 CKG_MGF1_SHA1 = 0x00000001 CKG_MGF1_SHA256 = 0x00000002 CKG_MGF1_SHA384 = 0x00000003 CKG_MGF1_SHA512 = 0x00000004 CKG_MGF1_SHA224 = 0x00000005 CKZ_DATA_SPECIFIED = 0x00000001 CKD_NULL = 0x00000001 CKD_SHA1_KDF = 0x00000002 CKD_SHA1_KDF_ASN1 = 0x00000003 CKD_SHA1_KDF_CONCATENATE = 0x00000004 CKD_SHA224_KDF = 0x00000005 CKD_SHA256_KDF = 0x00000006 CKD_SHA384_KDF = 0x00000007 CKD_SHA512_KDF = 0x00000008 CKD_CPDIVERSIFY_KDF = 0x00000009 CK_OTP_VALUE = 0 CK_OTP_PIN = 1 CK_OTP_CHALLENGE = 2 CK_OTP_TIME = 3 CK_OTP_COUNTER = 4 CK_OTP_FLAGS = 5 CK_OTP_OUTPUT_LENGTH = 6 CK_OTP_OUTPUT_FORMAT = 7 CKF_NEXT_OTP = 0x00000001 CKF_EXCLUDE_TIME = 0x00000002 CKF_EXCLUDE_COUNTER = 0x00000004 CKF_EXCLUDE_CHALLENGE = 0x00000008 CKF_EXCLUDE_PIN = 0x00000010 CKF_USER_FRIENDLY_OTP = 0x00000020