11305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* $OpenBSD: pkcs11.h,v 1.2 2010/02/24 06:12:53 djm Exp $ */ 21305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* pkcs11.h 31305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood Copyright 2006, 2007 g10 Code GmbH 41305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood Copyright 2006 Andreas Jellinghaus 51305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 61305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood This file is free software; as a special exception the author gives 71305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unlimited permission to copy and/or distribute it, with or without 81305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood modifications, as long as this notice is preserved. 91305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood This file is distributed in the hope that it will be useful, but 111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood WITHOUT ANY WARRANTY, to the extent permitted by law; without even 121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood PURPOSE. */ 141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* Please submit changes back to the Scute project at 161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood http://www.scute.org/ (or send them to marcus@g10code.com), so that 171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood they can be picked up by other projects from there as well. */ 181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* This file is a modified implementation of the PKCS #11 standard by 201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood RSA Security Inc. It is mostly a drop-in replacement, with the 211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood following change: 221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood This header file does not require any macro definitions by the user 241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (like CK_DEFINE_FUNCTION etc). In fact, it defines those macros 251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood for you (if useful, some are missing, let me know if you need 261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood more). 271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood There is an additional API available that does comply better to the 291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood GNU coding standard. It can be switched on by defining 301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CRYPTOKI_GNU before including this header file. For this, the 311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood following changes are made to the specification: 321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood All structure types are changed to a "struct ck_foo" where CK_FOO 341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood is the type name in PKCS #11. 351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood All non-structure types are changed to ck_foo_t where CK_FOO is the 371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood lowercase version of the type name in PKCS #11. The basic types 381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (CK_ULONG et al.) are removed without substitute. 391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood All members of structures are modified in the following way: Type 411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood indication prefixes are removed, and underscore characters are 421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood inserted before words. Then the result is lowercased. 431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood Note that function names are still in the original case, as they 451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood need for ABI compatibility. 461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_FALSE, CK_TRUE and NULL_PTR are removed without substitute. Use 481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood <stdbool.h>. 491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood If CRYPTOKI_COMPAT is defined before including this header file, 511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood then none of the API changes above take place, and the API is the 521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood one defined by the PKCS #11 standard. */ 531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef PKCS11_H 551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define PKCS11_H 1 561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#if defined(__cplusplus) 581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodextern "C" { 591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* The version of cryptoki we implement. The revision is changed with 631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood each modification of this file. If you do not use the "official" 641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood version of this file, please consider deleting the revision macro 651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (you may use a macro with a different name to keep track of your 661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood versions). */ 671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CRYPTOKI_VERSION_MAJOR 2 681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CRYPTOKI_VERSION_MINOR 20 691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CRYPTOKI_VERSION_REVISION 6 701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* Compatibility interface is default, unless CRYPTOKI_GNU is 731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood given. */ 741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef CRYPTOKI_GNU 751305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef CRYPTOKI_COMPAT 761305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CRYPTOKI_COMPAT 1 771305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 781305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 791305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 801305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* System dependencies. */ 811305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 821305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#if defined(_WIN32) || defined(CRYPTOKI_FORCE_WIN32) 831305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 841305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* There is a matching pop below. */ 851305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#pragma pack(push, cryptoki, 1) 861305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 871305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifdef CRYPTOKI_EXPORTS 881305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CK_SPEC __declspec(dllexport) 891305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#else 901305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CK_SPEC __declspec(dllimport) 911305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 921305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 931305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#else 941305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 951305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CK_SPEC 961305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 971305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 981305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 991305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1001305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifdef CRYPTOKI_COMPAT 1011305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood /* If we are in compatibility mode, switch all exposed names to the 1021305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood PKCS #11 variant. There are corresponding #undefs below. */ 1031305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1041305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_flags_t CK_FLAGS 1051305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_version _CK_VERSION 1061305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1071305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_info _CK_INFO 1081305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define cryptoki_version cryptokiVersion 1091305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define manufacturer_id manufacturerID 1101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define library_description libraryDescription 1111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define library_version libraryVersion 1121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_notification_t CK_NOTIFICATION 1141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_slot_id_t CK_SLOT_ID 1151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_slot_info _CK_SLOT_INFO 1171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define slot_description slotDescription 1181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define hardware_version hardwareVersion 1191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define firmware_version firmwareVersion 1201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_token_info _CK_TOKEN_INFO 1221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define serial_number serialNumber 1231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define max_session_count ulMaxSessionCount 1241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define session_count ulSessionCount 1251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define max_rw_session_count ulMaxRwSessionCount 1261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define rw_session_count ulRwSessionCount 1271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define max_pin_len ulMaxPinLen 1281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define min_pin_len ulMinPinLen 1291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define total_public_memory ulTotalPublicMemory 1301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define free_public_memory ulFreePublicMemory 1311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define total_private_memory ulTotalPrivateMemory 1321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define free_private_memory ulFreePrivateMemory 1331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define utc_time utcTime 1341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_session_handle_t CK_SESSION_HANDLE 1361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_user_type_t CK_USER_TYPE 1371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_state_t CK_STATE 1381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_session_info _CK_SESSION_INFO 1401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define slot_id slotID 1411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define device_error ulDeviceError 1421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_object_handle_t CK_OBJECT_HANDLE 1441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_object_class_t CK_OBJECT_CLASS 1451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_hw_feature_type_t CK_HW_FEATURE_TYPE 1461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_key_type_t CK_KEY_TYPE 1471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_certificate_type_t CK_CERTIFICATE_TYPE 1481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_attribute_type_t CK_ATTRIBUTE_TYPE 1491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_attribute _CK_ATTRIBUTE 1511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define value pValue 1521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define value_len ulValueLen 1531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_date _CK_DATE 1551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_mechanism_type_t CK_MECHANISM_TYPE 1571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_mechanism _CK_MECHANISM 1591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define parameter pParameter 1601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define parameter_len ulParameterLen 1611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_mechanism_info _CK_MECHANISM_INFO 1631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define min_key_size ulMinKeySize 1641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define max_key_size ulMaxKeySize 1651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_rv_t CK_RV 1671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_notify_t CK_NOTIFY 1681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_function_list _CK_FUNCTION_LIST 1701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_createmutex_t CK_CREATEMUTEX 1721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_destroymutex_t CK_DESTROYMUTEX 1731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_lockmutex_t CK_LOCKMUTEX 1741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_unlockmutex_t CK_UNLOCKMUTEX 1751305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1761305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ck_c_initialize_args _CK_C_INITIALIZE_ARGS 1771305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define create_mutex CreateMutex 1781305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define destroy_mutex DestroyMutex 1791305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define lock_mutex LockMutex 1801305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define unlock_mutex UnlockMutex 1811305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define reserved pReserved 1821305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1831305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif /* CRYPTOKI_COMPAT */ 1841305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1851305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1861305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1871305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long ck_flags_t; 1881305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1891305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct ck_version 1901305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood{ 1911305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char major; 1921305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char minor; 1931305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}; 1941305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1951305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 1961305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct ck_info 1971305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood{ 1981305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_version cryptoki_version; 1991305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char manufacturer_id[32]; 2001305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_flags_t flags; 2011305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char library_description[32]; 2021305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_version library_version; 2031305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}; 2041305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2051305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2061305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long ck_notification_t; 2071305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2081305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKN_SURRENDER (0) 2091305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long ck_slot_id_t; 2121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct ck_slot_info 2151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood{ 2161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char slot_description[64]; 2171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char manufacturer_id[32]; 2181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_flags_t flags; 2191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_version hardware_version; 2201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_version firmware_version; 2211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}; 2221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_TOKEN_PRESENT (1 << 0) 2251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_REMOVABLE_DEVICE (1 << 1) 2261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_HW_SLOT (1 << 2) 2271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_ARRAY_ATTRIBUTE (1 << 30) 2281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct ck_token_info 2311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood{ 2321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char label[32]; 2331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char manufacturer_id[32]; 2341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char model[16]; 2351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char serial_number[16]; 2361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_flags_t flags; 2371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long max_session_count; 2381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long session_count; 2391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long max_rw_session_count; 2401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long rw_session_count; 2411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long max_pin_len; 2421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long min_pin_len; 2431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long total_public_memory; 2441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long free_public_memory; 2451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long total_private_memory; 2461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long free_private_memory; 2471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_version hardware_version; 2481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_version firmware_version; 2491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char utc_time[16]; 2501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}; 2511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_RNG (1 << 0) 2541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_WRITE_PROTECTED (1 << 1) 2551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_LOGIN_REQUIRED (1 << 2) 2561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_USER_PIN_INITIALIZED (1 << 3) 2571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_RESTORE_KEY_NOT_NEEDED (1 << 5) 2581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_CLOCK_ON_TOKEN (1 << 6) 2591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_PROTECTED_AUTHENTICATION_PATH (1 << 8) 2601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_DUAL_CRYPTO_OPERATIONS (1 << 9) 2611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_TOKEN_INITIALIZED (1 << 10) 2621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_SECONDARY_AUTHENTICATION (1 << 11) 2631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_USER_PIN_COUNT_LOW (1 << 16) 2641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_USER_PIN_FINAL_TRY (1 << 17) 2651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_USER_PIN_LOCKED (1 << 18) 2661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_USER_PIN_TO_BE_CHANGED (1 << 19) 2671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_SO_PIN_COUNT_LOW (1 << 20) 2681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_SO_PIN_FINAL_TRY (1 << 21) 2691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_SO_PIN_LOCKED (1 << 22) 2701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_SO_PIN_TO_BE_CHANGED (1 << 23) 2711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CK_UNAVAILABLE_INFORMATION ((unsigned long) -1) 2731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CK_EFFECTIVELY_INFINITE (0) 2741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2751305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2761305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long ck_session_handle_t; 2771305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2781305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CK_INVALID_HANDLE (0) 2791305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2801305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2811305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long ck_user_type_t; 2821305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2831305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKU_SO (0) 2841305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKU_USER (1) 2851305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKU_CONTEXT_SPECIFIC (2) 2861305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2871305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2881305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long ck_state_t; 2891305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2901305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKS_RO_PUBLIC_SESSION (0) 2911305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKS_RO_USER_FUNCTIONS (1) 2921305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKS_RW_PUBLIC_SESSION (2) 2931305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKS_RW_USER_FUNCTIONS (3) 2941305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKS_RW_SO_FUNCTIONS (4) 2951305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2961305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 2971305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct ck_session_info 2981305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood{ 2991305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_slot_id_t slot_id; 3001305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_state_t state; 3011305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_flags_t flags; 3021305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long device_error; 3031305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}; 3041305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3051305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_RW_SESSION (1 << 1) 3061305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_SERIAL_SESSION (1 << 2) 3071305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3081305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3091305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long ck_object_handle_t; 3101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long ck_object_class_t; 3131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKO_DATA (0) 3151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKO_CERTIFICATE (1) 3161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKO_PUBLIC_KEY (2) 3171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKO_PRIVATE_KEY (3) 3181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKO_SECRET_KEY (4) 3191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKO_HW_FEATURE (5) 3201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKO_DOMAIN_PARAMETERS (6) 3211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKO_MECHANISM (7) 3221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKO_VENDOR_DEFINED ((unsigned long) (1 << 31)) 3231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long ck_hw_feature_type_t; 3261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKH_MONOTONIC_COUNTER (1) 3281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKH_CLOCK (2) 3291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKH_USER_INTERFACE (3) 3301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKH_VENDOR_DEFINED ((unsigned long) (1 << 31)) 3311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long ck_key_type_t; 3341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_RSA (0) 3361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_DSA (1) 3371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_DH (2) 3381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_ECDSA (3) 3391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_EC (3) 3401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_X9_42_DH (4) 3411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_KEA (5) 3421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_GENERIC_SECRET (0x10) 3431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_RC2 (0x11) 3441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_RC4 (0x12) 3451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_DES (0x13) 3461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_DES2 (0x14) 3471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_DES3 (0x15) 3481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_CAST (0x16) 3491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_CAST3 (0x17) 3501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_CAST128 (0x18) 3511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_RC5 (0x19) 3521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_IDEA (0x1a) 3531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_SKIPJACK (0x1b) 3541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_BATON (0x1c) 3551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_JUNIPER (0x1d) 3561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_CDMF (0x1e) 3571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_AES (0x1f) 3581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_BLOWFISH (0x20) 3591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_TWOFISH (0x21) 3601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKK_VENDOR_DEFINED ((unsigned long) (1 << 31)) 3611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long ck_certificate_type_t; 3631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKC_X_509 (0) 3651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKC_X_509_ATTR_CERT (1) 3661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKC_WTLS (2) 3671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKC_VENDOR_DEFINED ((unsigned long) (1 << 31)) 3681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long ck_attribute_type_t; 3711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 3721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_CLASS (0) 3731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_TOKEN (1) 3741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_PRIVATE (2) 3751305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_LABEL (3) 3761305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_APPLICATION (0x10) 3771305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_VALUE (0x11) 3781305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_OBJECT_ID (0x12) 3791305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_CERTIFICATE_TYPE (0x80) 3801305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_ISSUER (0x81) 3811305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_SERIAL_NUMBER (0x82) 3821305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_AC_ISSUER (0x83) 3831305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_OWNER (0x84) 3841305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_ATTR_TYPES (0x85) 3851305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_TRUSTED (0x86) 3861305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_CERTIFICATE_CATEGORY (0x87) 3871305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_JAVA_MIDP_SECURITY_DOMAIN (0x88) 3881305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_URL (0x89) 3891305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_HASH_OF_SUBJECT_PUBLIC_KEY (0x8a) 3901305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_HASH_OF_ISSUER_PUBLIC_KEY (0x8b) 3911305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_CHECK_VALUE (0x90) 3921305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_KEY_TYPE (0x100) 3931305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_SUBJECT (0x101) 3941305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_ID (0x102) 3951305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_SENSITIVE (0x103) 3961305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_ENCRYPT (0x104) 3971305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_DECRYPT (0x105) 3981305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_WRAP (0x106) 3991305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_UNWRAP (0x107) 4001305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_SIGN (0x108) 4011305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_SIGN_RECOVER (0x109) 4021305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_VERIFY (0x10a) 4031305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_VERIFY_RECOVER (0x10b) 4041305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_DERIVE (0x10c) 4051305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_START_DATE (0x110) 4061305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_END_DATE (0x111) 4071305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_MODULUS (0x120) 4081305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_MODULUS_BITS (0x121) 4091305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_PUBLIC_EXPONENT (0x122) 4101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_PRIVATE_EXPONENT (0x123) 4111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_PRIME_1 (0x124) 4121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_PRIME_2 (0x125) 4131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_EXPONENT_1 (0x126) 4141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_EXPONENT_2 (0x127) 4151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_COEFFICIENT (0x128) 4161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_PRIME (0x130) 4171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_SUBPRIME (0x131) 4181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_BASE (0x132) 4191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_PRIME_BITS (0x133) 4201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_SUB_PRIME_BITS (0x134) 4211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_VALUE_BITS (0x160) 4221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_VALUE_LEN (0x161) 4231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_EXTRACTABLE (0x162) 4241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_LOCAL (0x163) 4251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_NEVER_EXTRACTABLE (0x164) 4261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_ALWAYS_SENSITIVE (0x165) 4271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_KEY_GEN_MECHANISM (0x166) 4281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_MODIFIABLE (0x170) 4291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_ECDSA_PARAMS (0x180) 4301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_EC_PARAMS (0x180) 4311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_EC_POINT (0x181) 4321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_SECONDARY_AUTH (0x200) 4331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_AUTH_PIN_FLAGS (0x201) 4341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_ALWAYS_AUTHENTICATE (0x202) 4351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_WRAP_WITH_TRUSTED (0x210) 4361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_HW_FEATURE_TYPE (0x300) 4371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_RESET_ON_INIT (0x301) 4381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_HAS_RESET (0x302) 4391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_PIXEL_X (0x400) 4401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_PIXEL_Y (0x401) 4411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_RESOLUTION (0x402) 4421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_CHAR_ROWS (0x403) 4431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_CHAR_COLUMNS (0x404) 4441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_COLOR (0x405) 4451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_BITS_PER_PIXEL (0x406) 4461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_CHAR_SETS (0x480) 4471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_ENCODING_METHODS (0x481) 4481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_MIME_TYPES (0x482) 4491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_MECHANISM_TYPE (0x500) 4501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_REQUIRED_CMS_ATTRIBUTES (0x501) 4511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_DEFAULT_CMS_ATTRIBUTES (0x502) 4521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_SUPPORTED_CMS_ATTRIBUTES (0x503) 4531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_WRAP_TEMPLATE (CKF_ARRAY_ATTRIBUTE | 0x211) 4541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_UNWRAP_TEMPLATE (CKF_ARRAY_ATTRIBUTE | 0x212) 4551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_ALLOWED_MECHANISMS (CKF_ARRAY_ATTRIBUTE | 0x600) 4561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKA_VENDOR_DEFINED ((unsigned long) (1 << 31)) 4571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 4581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 4591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct ck_attribute 4601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood{ 4611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_attribute_type_t type; 4621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood void *value; 4631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long value_len; 4641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}; 4651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 4661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 4671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct ck_date 4681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood{ 4691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char year[4]; 4701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char month[2]; 4711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char day[2]; 4721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}; 4731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 4741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 4751305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long ck_mechanism_type_t; 4761305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 4771305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RSA_PKCS_KEY_PAIR_GEN (0) 4781305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RSA_PKCS (1) 4791305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RSA_9796 (2) 4801305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RSA_X_509 (3) 4811305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_MD2_RSA_PKCS (4) 4821305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_MD5_RSA_PKCS (5) 4831305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA1_RSA_PKCS (6) 4841305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RIPEMD128_RSA_PKCS (7) 4851305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RIPEMD160_RSA_PKCS (8) 4861305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RSA_PKCS_OAEP (9) 4871305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RSA_X9_31_KEY_PAIR_GEN (0xa) 4881305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RSA_X9_31 (0xb) 4891305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA1_RSA_X9_31 (0xc) 4901305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RSA_PKCS_PSS (0xd) 4911305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA1_RSA_PKCS_PSS (0xe) 4921305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DSA_KEY_PAIR_GEN (0x10) 4931305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DSA (0x11) 4941305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DSA_SHA1 (0x12) 4951305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DH_PKCS_KEY_PAIR_GEN (0x20) 4961305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DH_PKCS_DERIVE (0x21) 4971305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_X9_42_DH_KEY_PAIR_GEN (0x30) 4981305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_X9_42_DH_DERIVE (0x31) 4991305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_X9_42_DH_HYBRID_DERIVE (0x32) 5001305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_X9_42_MQV_DERIVE (0x33) 5011305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA256_RSA_PKCS (0x40) 5021305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA384_RSA_PKCS (0x41) 5031305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA512_RSA_PKCS (0x42) 5041305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA256_RSA_PKCS_PSS (0x43) 5051305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA384_RSA_PKCS_PSS (0x44) 5061305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA512_RSA_PKCS_PSS (0x45) 5071305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RC2_KEY_GEN (0x100) 5081305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RC2_ECB (0x101) 5091305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RC2_CBC (0x102) 5101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RC2_MAC (0x103) 5111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RC2_MAC_GENERAL (0x104) 5121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RC2_CBC_PAD (0x105) 5131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RC4_KEY_GEN (0x110) 5141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RC4 (0x111) 5151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DES_KEY_GEN (0x120) 5161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DES_ECB (0x121) 5171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DES_CBC (0x122) 5181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DES_MAC (0x123) 5191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DES_MAC_GENERAL (0x124) 5201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DES_CBC_PAD (0x125) 5211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DES2_KEY_GEN (0x130) 5221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DES3_KEY_GEN (0x131) 5231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DES3_ECB (0x132) 5241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DES3_CBC (0x133) 5251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DES3_MAC (0x134) 5261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DES3_MAC_GENERAL (0x135) 5271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DES3_CBC_PAD (0x136) 5281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CDMF_KEY_GEN (0x140) 5291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CDMF_ECB (0x141) 5301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CDMF_CBC (0x142) 5311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CDMF_MAC (0x143) 5321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CDMF_MAC_GENERAL (0x144) 5331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CDMF_CBC_PAD (0x145) 5341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_MD2 (0x200) 5351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_MD2_HMAC (0x201) 5361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_MD2_HMAC_GENERAL (0x202) 5371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_MD5 (0x210) 5381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_MD5_HMAC (0x211) 5391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_MD5_HMAC_GENERAL (0x212) 5401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA_1 (0x220) 5411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA_1_HMAC (0x221) 5421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA_1_HMAC_GENERAL (0x222) 5431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RIPEMD128 (0x230) 5441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RIPEMD128_HMAC (0x231) 5451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RIPEMD128_HMAC_GENERAL (0x232) 5461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RIPEMD160 (0x240) 5471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RIPEMD160_HMAC (0x241) 5481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RIPEMD160_HMAC_GENERAL (0x242) 5491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA256 (0x250) 5501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA256_HMAC (0x251) 5511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA256_HMAC_GENERAL (0x252) 5521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA384 (0x260) 5531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA384_HMAC (0x261) 5541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA384_HMAC_GENERAL (0x262) 5551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA512 (0x270) 5561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA512_HMAC (0x271) 5571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA512_HMAC_GENERAL (0x272) 5581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST_KEY_GEN (0x300) 5591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST_ECB (0x301) 5601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST_CBC (0x302) 5611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST_MAC (0x303) 5621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST_MAC_GENERAL (0x304) 5631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST_CBC_PAD (0x305) 5641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST3_KEY_GEN (0x310) 5651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST3_ECB (0x311) 5661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST3_CBC (0x312) 5671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST3_MAC (0x313) 5681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST3_MAC_GENERAL (0x314) 5691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST3_CBC_PAD (0x315) 5701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST5_KEY_GEN (0x320) 5711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST128_KEY_GEN (0x320) 5721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST5_ECB (0x321) 5731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST128_ECB (0x321) 5741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST5_CBC (0x322) 5751305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST128_CBC (0x322) 5761305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST5_MAC (0x323) 5771305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST128_MAC (0x323) 5781305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST5_MAC_GENERAL (0x324) 5791305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST128_MAC_GENERAL (0x324) 5801305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST5_CBC_PAD (0x325) 5811305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CAST128_CBC_PAD (0x325) 5821305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RC5_KEY_GEN (0x330) 5831305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RC5_ECB (0x331) 5841305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RC5_CBC (0x332) 5851305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RC5_MAC (0x333) 5861305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RC5_MAC_GENERAL (0x334) 5871305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_RC5_CBC_PAD (0x335) 5881305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_IDEA_KEY_GEN (0x340) 5891305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_IDEA_ECB (0x341) 5901305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_IDEA_CBC (0x342) 5911305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_IDEA_MAC (0x343) 5921305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_IDEA_MAC_GENERAL (0x344) 5931305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_IDEA_CBC_PAD (0x345) 5941305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_GENERIC_SECRET_KEY_GEN (0x350) 5951305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CONCATENATE_BASE_AND_KEY (0x360) 5961305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CONCATENATE_BASE_AND_DATA (0x362) 5971305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_CONCATENATE_DATA_AND_BASE (0x363) 5981305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_XOR_BASE_AND_DATA (0x364) 5991305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_EXTRACT_KEY_FROM_KEY (0x365) 6001305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SSL3_PRE_MASTER_KEY_GEN (0x370) 6011305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SSL3_MASTER_KEY_DERIVE (0x371) 6021305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SSL3_KEY_AND_MAC_DERIVE (0x372) 6031305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SSL3_MASTER_KEY_DERIVE_DH (0x373) 6041305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_TLS_PRE_MASTER_KEY_GEN (0x374) 6051305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_TLS_MASTER_KEY_DERIVE (0x375) 6061305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_TLS_KEY_AND_MAC_DERIVE (0x376) 6071305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_TLS_MASTER_KEY_DERIVE_DH (0x377) 6081305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SSL3_MD5_MAC (0x380) 6091305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SSL3_SHA1_MAC (0x381) 6101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_MD5_KEY_DERIVATION (0x390) 6111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_MD2_KEY_DERIVATION (0x391) 6121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SHA1_KEY_DERIVATION (0x392) 6131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PBE_MD2_DES_CBC (0x3a0) 6141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PBE_MD5_DES_CBC (0x3a1) 6151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PBE_MD5_CAST_CBC (0x3a2) 6161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PBE_MD5_CAST3_CBC (0x3a3) 6171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PBE_MD5_CAST5_CBC (0x3a4) 6181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PBE_MD5_CAST128_CBC (0x3a4) 6191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PBE_SHA1_CAST5_CBC (0x3a5) 6201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PBE_SHA1_CAST128_CBC (0x3a5) 6211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PBE_SHA1_RC4_128 (0x3a6) 6221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PBE_SHA1_RC4_40 (0x3a7) 6231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PBE_SHA1_DES3_EDE_CBC (0x3a8) 6241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PBE_SHA1_DES2_EDE_CBC (0x3a9) 6251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PBE_SHA1_RC2_128_CBC (0x3aa) 6261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PBE_SHA1_RC2_40_CBC (0x3ab) 6271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PKCS5_PBKD2 (0x3b0) 6281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_PBA_SHA1_WITH_SHA1_HMAC (0x3c0) 6291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_KEY_WRAP_LYNKS (0x400) 6301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_KEY_WRAP_SET_OAEP (0x401) 6311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SKIPJACK_KEY_GEN (0x1000) 6321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SKIPJACK_ECB64 (0x1001) 6331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SKIPJACK_CBC64 (0x1002) 6341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SKIPJACK_OFB64 (0x1003) 6351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SKIPJACK_CFB64 (0x1004) 6361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SKIPJACK_CFB32 (0x1005) 6371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SKIPJACK_CFB16 (0x1006) 6381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SKIPJACK_CFB8 (0x1007) 6391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SKIPJACK_WRAP (0x1008) 6401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SKIPJACK_PRIVATE_WRAP (0x1009) 6411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_SKIPJACK_RELAYX (0x100a) 6421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_KEA_KEY_PAIR_GEN (0x1010) 6431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_KEA_KEY_DERIVE (0x1011) 6441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_FORTEZZA_TIMESTAMP (0x1020) 6451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_BATON_KEY_GEN (0x1030) 6461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_BATON_ECB128 (0x1031) 6471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_BATON_ECB96 (0x1032) 6481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_BATON_CBC128 (0x1033) 6491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_BATON_COUNTER (0x1034) 6501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_BATON_SHUFFLE (0x1035) 6511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_BATON_WRAP (0x1036) 6521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_ECDSA_KEY_PAIR_GEN (0x1040) 6531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_EC_KEY_PAIR_GEN (0x1040) 6541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_ECDSA (0x1041) 6551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_ECDSA_SHA1 (0x1042) 6561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_ECDH1_DERIVE (0x1050) 6571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_ECDH1_COFACTOR_DERIVE (0x1051) 6581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_ECMQV_DERIVE (0x1052) 6591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_JUNIPER_KEY_GEN (0x1060) 6601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_JUNIPER_ECB128 (0x1061) 6611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_JUNIPER_CBC128 (0x1062) 6621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_JUNIPER_COUNTER (0x1063) 6631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_JUNIPER_SHUFFLE (0x1064) 6641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_JUNIPER_WRAP (0x1065) 6651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_FASTHASH (0x1070) 6661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_AES_KEY_GEN (0x1080) 6671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_AES_ECB (0x1081) 6681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_AES_CBC (0x1082) 6691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_AES_MAC (0x1083) 6701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_AES_MAC_GENERAL (0x1084) 6711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_AES_CBC_PAD (0x1085) 6721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DSA_PARAMETER_GEN (0x2000) 6731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_DH_PKCS_PARAMETER_GEN (0x2001) 6741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_X9_42_DH_PARAMETER_GEN (0x2002) 6751305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKM_VENDOR_DEFINED ((unsigned long) (1 << 31)) 6761305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 6771305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 6781305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct ck_mechanism 6791305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood{ 6801305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_mechanism_type_t mechanism; 6811305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood void *parameter; 6821305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long parameter_len; 6831305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}; 6841305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 6851305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 6861305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct ck_mechanism_info 6871305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood{ 6881305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long min_key_size; 6891305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long max_key_size; 6901305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_flags_t flags; 6911305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}; 6921305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 6931305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_HW (1 << 0) 6941305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_ENCRYPT (1 << 8) 6951305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_DECRYPT (1 << 9) 6961305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_DIGEST (1 << 10) 6971305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_SIGN (1 << 11) 6981305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_SIGN_RECOVER (1 << 12) 6991305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_VERIFY (1 << 13) 7001305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_VERIFY_RECOVER (1 << 14) 7011305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_GENERATE (1 << 15) 7021305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_GENERATE_KEY_PAIR (1 << 16) 7031305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_WRAP (1 << 17) 7041305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_UNWRAP (1 << 18) 7051305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_DERIVE (1 << 19) 7061305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_EXTENSION ((unsigned long) (1 << 31)) 7071305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 7081305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 7091305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* Flags for C_WaitForSlotEvent. */ 7101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_DONT_BLOCK (1) 7111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 7121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 7131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long ck_rv_t; 7141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 7151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 7161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef ck_rv_t (*ck_notify_t) (ck_session_handle_t session, 7171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_notification_t event, void *application); 7181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 7191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* Forward reference. */ 7201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct ck_function_list; 7211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 7221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define _CK_DECLARE_FUNCTION(name, args) \ 7231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef ck_rv_t (*CK_ ## name) args; \ 7241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodck_rv_t CK_SPEC name args 7251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 7261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_Initialize, (void *init_args)); 7271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_Finalize, (void *reserved)); 7281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_GetInfo, (struct ck_info *info)); 7291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_GetFunctionList, 7301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (struct ck_function_list **function_list)); 7311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 7321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_GetSlotList, 7331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (unsigned char token_present, ck_slot_id_t *slot_list, 7341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *count)); 7351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_GetSlotInfo, 7361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_slot_id_t slot_id, struct ck_slot_info *info)); 7371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_GetTokenInfo, 7381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_slot_id_t slot_id, struct ck_token_info *info)); 7391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_WaitForSlotEvent, 7401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_flags_t flags, ck_slot_id_t *slot, void *reserved)); 7411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_GetMechanismList, 7421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_slot_id_t slot_id, 7431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_mechanism_type_t *mechanism_list, 7441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *count)); 7451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_GetMechanismInfo, 7461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_slot_id_t slot_id, ck_mechanism_type_t type, 7471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_mechanism_info *info)); 7481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_InitToken, 7491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_slot_id_t slot_id, unsigned char *pin, 7501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long pin_len, unsigned char *label)); 7511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_InitPIN, 7521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, unsigned char *pin, 7531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long pin_len)); 7541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_SetPIN, 7551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, unsigned char *old_pin, 7561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long old_len, unsigned char *new_pin, 7571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long new_len)); 7581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 7591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_OpenSession, 7601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_slot_id_t slot_id, ck_flags_t flags, 7611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood void *application, ck_notify_t notify, 7621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_session_handle_t *session)); 7631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_CloseSession, (ck_session_handle_t session)); 7641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_CloseAllSessions, (ck_slot_id_t slot_id)); 7651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_GetSessionInfo, 7661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 7671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_session_info *info)); 7681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_GetOperationState, 7691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 7701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *operation_state, 7711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *operation_state_len)); 7721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_SetOperationState, 7731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 7741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *operation_state, 7751305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long operation_state_len, 7761305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t encryption_key, 7771305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t authentiation_key)); 7781305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_Login, 7791305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, ck_user_type_t user_type, 7801305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *pin, unsigned long pin_len)); 7811305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_Logout, (ck_session_handle_t session)); 7821305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 7831305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_CreateObject, 7841305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 7851305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_attribute *templ, 7861305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long count, ck_object_handle_t *object)); 7871305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_CopyObject, 7881305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, ck_object_handle_t object, 7891305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_attribute *templ, unsigned long count, 7901305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t *new_object)); 7911305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_DestroyObject, 7921305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 7931305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t object)); 7941305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_GetObjectSize, 7951305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 7961305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t object, 7971305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *size)); 7981305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_GetAttributeValue, 7991305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8001305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t object, 8011305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_attribute *templ, 8021305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long count)); 8031305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_SetAttributeValue, 8041305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8051305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t object, 8061305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_attribute *templ, 8071305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long count)); 8081305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_FindObjectsInit, 8091305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_attribute *templ, 8111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long count)); 8121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_FindObjects, 8131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t *object, 8151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long max_object_count, 8161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *object_count)); 8171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_FindObjectsFinal, 8181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session)); 8191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 8201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_EncryptInit, 8211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_mechanism *mechanism, 8231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t key)); 8241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_Encrypt, 8251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *data, unsigned long data_len, 8271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *encrypted_data, 8281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *encrypted_data_len)); 8291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_EncryptUpdate, 8301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *part, unsigned long part_len, 8321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *encrypted_part, 8331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *encrypted_part_len)); 8341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_EncryptFinal, 8351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *last_encrypted_part, 8371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *last_encrypted_part_len)); 8381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 8391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_DecryptInit, 8401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_mechanism *mechanism, 8421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t key)); 8431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_Decrypt, 8441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *encrypted_data, 8461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long encrypted_data_len, 8471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *data, unsigned long *data_len)); 8481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_DecryptUpdate, 8491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *encrypted_part, 8511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long encrypted_part_len, 8521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *part, unsigned long *part_len)); 8531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_DecryptFinal, 8541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *last_part, 8561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *last_part_len)); 8571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 8581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_DigestInit, 8591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_mechanism *mechanism)); 8611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_Digest, 8621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *data, unsigned long data_len, 8641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *digest, 8651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *digest_len)); 8661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_DigestUpdate, 8671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *part, unsigned long part_len)); 8691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_DigestKey, 8701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, ck_object_handle_t key)); 8711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_DigestFinal, 8721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *digest, 8741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *digest_len)); 8751305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 8761305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_SignInit, 8771305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8781305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_mechanism *mechanism, 8791305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t key)); 8801305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_Sign, 8811305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8821305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *data, unsigned long data_len, 8831305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *signature, 8841305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *signature_len)); 8851305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_SignUpdate, 8861305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8871305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *part, unsigned long part_len)); 8881305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_SignFinal, 8891305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8901305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *signature, 8911305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *signature_len)); 8921305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_SignRecoverInit, 8931305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8941305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_mechanism *mechanism, 8951305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t key)); 8961305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_SignRecover, 8971305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 8981305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *data, unsigned long data_len, 8991305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *signature, 9001305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *signature_len)); 9011305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 9021305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_VerifyInit, 9031305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9041305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_mechanism *mechanism, 9051305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t key)); 9061305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_Verify, 9071305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9081305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *data, unsigned long data_len, 9091305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *signature, 9101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long signature_len)); 9111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_VerifyUpdate, 9121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *part, unsigned long part_len)); 9141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_VerifyFinal, 9151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *signature, 9171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long signature_len)); 9181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_VerifyRecoverInit, 9191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_mechanism *mechanism, 9211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t key)); 9221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_VerifyRecover, 9231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *signature, 9251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long signature_len, 9261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *data, 9271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *data_len)); 9281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 9291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_DigestEncryptUpdate, 9301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *part, unsigned long part_len, 9321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *encrypted_part, 9331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *encrypted_part_len)); 9341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_DecryptDigestUpdate, 9351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *encrypted_part, 9371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long encrypted_part_len, 9381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *part, 9391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *part_len)); 9401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_SignEncryptUpdate, 9411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *part, unsigned long part_len, 9431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *encrypted_part, 9441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *encrypted_part_len)); 9451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_DecryptVerifyUpdate, 9461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *encrypted_part, 9481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long encrypted_part_len, 9491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *part, 9501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *part_len)); 9511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 9521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_GenerateKey, 9531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_mechanism *mechanism, 9551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_attribute *templ, 9561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long count, 9571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t *key)); 9581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_GenerateKeyPair, 9591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_mechanism *mechanism, 9611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_attribute *public_key_template, 9621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long public_key_attribute_count, 9631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_attribute *private_key_template, 9641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long private_key_attribute_count, 9651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t *public_key, 9661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t *private_key)); 9671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_WrapKey, 9681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_mechanism *mechanism, 9701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t wrapping_key, 9711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t key, 9721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *wrapped_key, 9731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long *wrapped_key_len)); 9741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_UnwrapKey, 9751305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9761305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_mechanism *mechanism, 9771305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t unwrapping_key, 9781305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *wrapped_key, 9791305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long wrapped_key_len, 9801305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_attribute *templ, 9811305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long attribute_count, 9821305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t *key)); 9831305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_DeriveKey, 9841305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9851305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_mechanism *mechanism, 9861305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t base_key, 9871305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_attribute *templ, 9881305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long attribute_count, 9891305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_object_handle_t *key)); 9901305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 9911305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_SeedRandom, 9921305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, unsigned char *seed, 9931305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long seed_len)); 9941305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_GenerateRandom, 9951305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood (ck_session_handle_t session, 9961305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned char *random_data, 9971305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long random_len)); 9981305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 9991305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_GetFunctionStatus, (ck_session_handle_t session)); 10001305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood_CK_DECLARE_FUNCTION (C_CancelFunction, (ck_session_handle_t session)); 10011305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 10021305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 10031305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct ck_function_list 10041305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood{ 10051305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood struct ck_version version; 10061305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_Initialize C_Initialize; 10071305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_Finalize C_Finalize; 10081305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_GetInfo C_GetInfo; 10091305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_GetFunctionList C_GetFunctionList; 10101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_GetSlotList C_GetSlotList; 10111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_GetSlotInfo C_GetSlotInfo; 10121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_GetTokenInfo C_GetTokenInfo; 10131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_GetMechanismList C_GetMechanismList; 10141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_GetMechanismInfo C_GetMechanismInfo; 10151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_InitToken C_InitToken; 10161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_InitPIN C_InitPIN; 10171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_SetPIN C_SetPIN; 10181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_OpenSession C_OpenSession; 10191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_CloseSession C_CloseSession; 10201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_CloseAllSessions C_CloseAllSessions; 10211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_GetSessionInfo C_GetSessionInfo; 10221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_GetOperationState C_GetOperationState; 10231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_SetOperationState C_SetOperationState; 10241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_Login C_Login; 10251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_Logout C_Logout; 10261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_CreateObject C_CreateObject; 10271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_CopyObject C_CopyObject; 10281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_DestroyObject C_DestroyObject; 10291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_GetObjectSize C_GetObjectSize; 10301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_GetAttributeValue C_GetAttributeValue; 10311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_SetAttributeValue C_SetAttributeValue; 10321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_FindObjectsInit C_FindObjectsInit; 10331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_FindObjects C_FindObjects; 10341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_FindObjectsFinal C_FindObjectsFinal; 10351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_EncryptInit C_EncryptInit; 10361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_Encrypt C_Encrypt; 10371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_EncryptUpdate C_EncryptUpdate; 10381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_EncryptFinal C_EncryptFinal; 10391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_DecryptInit C_DecryptInit; 10401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_Decrypt C_Decrypt; 10411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_DecryptUpdate C_DecryptUpdate; 10421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_DecryptFinal C_DecryptFinal; 10431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_DigestInit C_DigestInit; 10441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_Digest C_Digest; 10451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_DigestUpdate C_DigestUpdate; 10461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_DigestKey C_DigestKey; 10471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_DigestFinal C_DigestFinal; 10481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_SignInit C_SignInit; 10491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_Sign C_Sign; 10501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_SignUpdate C_SignUpdate; 10511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_SignFinal C_SignFinal; 10521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_SignRecoverInit C_SignRecoverInit; 10531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_SignRecover C_SignRecover; 10541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_VerifyInit C_VerifyInit; 10551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_Verify C_Verify; 10561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_VerifyUpdate C_VerifyUpdate; 10571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_VerifyFinal C_VerifyFinal; 10581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_VerifyRecoverInit C_VerifyRecoverInit; 10591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_VerifyRecover C_VerifyRecover; 10601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_DigestEncryptUpdate C_DigestEncryptUpdate; 10611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_DecryptDigestUpdate C_DecryptDigestUpdate; 10621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_SignEncryptUpdate C_SignEncryptUpdate; 10631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_DecryptVerifyUpdate C_DecryptVerifyUpdate; 10641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_GenerateKey C_GenerateKey; 10651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_GenerateKeyPair C_GenerateKeyPair; 10661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_WrapKey C_WrapKey; 10671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_UnwrapKey C_UnwrapKey; 10681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_DeriveKey C_DeriveKey; 10691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_SeedRandom C_SeedRandom; 10701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_GenerateRandom C_GenerateRandom; 10711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_GetFunctionStatus C_GetFunctionStatus; 10721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_CancelFunction C_CancelFunction; 10731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood CK_C_WaitForSlotEvent C_WaitForSlotEvent; 10741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}; 10751305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 10761305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 10771305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef ck_rv_t (*ck_createmutex_t) (void **mutex); 10781305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef ck_rv_t (*ck_destroymutex_t) (void *mutex); 10791305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef ck_rv_t (*ck_lockmutex_t) (void *mutex); 10801305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef ck_rv_t (*ck_unlockmutex_t) (void *mutex); 10811305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 10821305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 10831305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct ck_c_initialize_args 10841305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood{ 10851305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_createmutex_t create_mutex; 10861305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_destroymutex_t destroy_mutex; 10871305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_lockmutex_t lock_mutex; 10881305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_unlockmutex_t unlock_mutex; 10891305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood ck_flags_t flags; 10901305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood void *reserved; 10911305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}; 10921305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 10931305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 10941305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_LIBRARY_CANT_CREATE_OS_THREADS (1 << 0) 10951305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKF_OS_LOCKING_OK (1 << 1) 10961305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 10971305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_OK (0) 10981305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_CANCEL (1) 10991305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_HOST_MEMORY (2) 11001305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_SLOT_ID_INVALID (3) 11011305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_GENERAL_ERROR (5) 11021305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_FUNCTION_FAILED (6) 11031305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_ARGUMENTS_BAD (7) 11041305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_NO_EVENT (8) 11051305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_NEED_TO_CREATE_THREADS (9) 11061305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_CANT_LOCK (0xa) 11071305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_ATTRIBUTE_READ_ONLY (0x10) 11081305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_ATTRIBUTE_SENSITIVE (0x11) 11091305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_ATTRIBUTE_TYPE_INVALID (0x12) 11101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_ATTRIBUTE_VALUE_INVALID (0x13) 11111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_DATA_INVALID (0x20) 11121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_DATA_LEN_RANGE (0x21) 11131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_DEVICE_ERROR (0x30) 11141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_DEVICE_MEMORY (0x31) 11151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_DEVICE_REMOVED (0x32) 11161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_ENCRYPTED_DATA_INVALID (0x40) 11171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_ENCRYPTED_DATA_LEN_RANGE (0x41) 11181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_FUNCTION_CANCELED (0x50) 11191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_FUNCTION_NOT_PARALLEL (0x51) 11201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_FUNCTION_NOT_SUPPORTED (0x54) 11211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_KEY_HANDLE_INVALID (0x60) 11221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_KEY_SIZE_RANGE (0x62) 11231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_KEY_TYPE_INCONSISTENT (0x63) 11241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_KEY_NOT_NEEDED (0x64) 11251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_KEY_CHANGED (0x65) 11261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_KEY_NEEDED (0x66) 11271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_KEY_INDIGESTIBLE (0x67) 11281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_KEY_FUNCTION_NOT_PERMITTED (0x68) 11291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_KEY_NOT_WRAPPABLE (0x69) 11301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_KEY_UNEXTRACTABLE (0x6a) 11311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_MECHANISM_INVALID (0x70) 11321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_MECHANISM_PARAM_INVALID (0x71) 11331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_OBJECT_HANDLE_INVALID (0x82) 11341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_OPERATION_ACTIVE (0x90) 11351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_OPERATION_NOT_INITIALIZED (0x91) 11361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_PIN_INCORRECT (0xa0) 11371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_PIN_INVALID (0xa1) 11381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_PIN_LEN_RANGE (0xa2) 11391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_PIN_EXPIRED (0xa3) 11401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_PIN_LOCKED (0xa4) 11411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_SESSION_CLOSED (0xb0) 11421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_SESSION_COUNT (0xb1) 11431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_SESSION_HANDLE_INVALID (0xb3) 11441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_SESSION_PARALLEL_NOT_SUPPORTED (0xb4) 11451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_SESSION_READ_ONLY (0xb5) 11461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_SESSION_EXISTS (0xb6) 11471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_SESSION_READ_ONLY_EXISTS (0xb7) 11481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_SESSION_READ_WRITE_SO_EXISTS (0xb8) 11491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_SIGNATURE_INVALID (0xc0) 11501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_SIGNATURE_LEN_RANGE (0xc1) 11511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_TEMPLATE_INCOMPLETE (0xd0) 11521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_TEMPLATE_INCONSISTENT (0xd1) 11531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_TOKEN_NOT_PRESENT (0xe0) 11541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_TOKEN_NOT_RECOGNIZED (0xe1) 11551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_TOKEN_WRITE_PROTECTED (0xe2) 11561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_UNWRAPPING_KEY_HANDLE_INVALID (0xf0) 11571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_UNWRAPPING_KEY_SIZE_RANGE (0xf1) 11581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT (0xf2) 11591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_USER_ALREADY_LOGGED_IN (0x100) 11601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_USER_NOT_LOGGED_IN (0x101) 11611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_USER_PIN_NOT_INITIALIZED (0x102) 11621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_USER_TYPE_INVALID (0x103) 11631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_USER_ANOTHER_ALREADY_LOGGED_IN (0x104) 11641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_USER_TOO_MANY_TYPES (0x105) 11651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_WRAPPED_KEY_INVALID (0x110) 11661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_WRAPPED_KEY_LEN_RANGE (0x112) 11671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_WRAPPING_KEY_HANDLE_INVALID (0x113) 11681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_WRAPPING_KEY_SIZE_RANGE (0x114) 11691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_WRAPPING_KEY_TYPE_INCONSISTENT (0x115) 11701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_RANDOM_SEED_NOT_SUPPORTED (0x120) 11711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_RANDOM_NO_RNG (0x121) 11721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_DOMAIN_PARAMS_INVALID (0x130) 11731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_BUFFER_TOO_SMALL (0x150) 11741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_SAVED_STATE_INVALID (0x160) 11751305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_INFORMATION_SENSITIVE (0x170) 11761305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_STATE_UNSAVEABLE (0x180) 11771305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_CRYPTOKI_NOT_INITIALIZED (0x190) 11781305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_CRYPTOKI_ALREADY_INITIALIZED (0x191) 11791305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_MUTEX_BAD (0x1a0) 11801305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_MUTEX_NOT_LOCKED (0x1a1) 11811305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_FUNCTION_REJECTED (0x200) 11821305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CKR_VENDOR_DEFINED ((unsigned long) (1 << 31)) 11831305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 11841305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 11851305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 11861305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* Compatibility layer. */ 11871305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 11881305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifdef CRYPTOKI_COMPAT 11891305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 11901305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef CK_DEFINE_FUNCTION 11911305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CK_DEFINE_FUNCTION(retval, name) retval CK_SPEC name 11921305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 11931305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* For NULL. */ 11941305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#include <stddef.h> 11951305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 11961305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned char CK_BYTE; 11971305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned char CK_CHAR; 11981305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned char CK_UTF8CHAR; 11991305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned char CK_BBOOL; 12001305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long int CK_ULONG; 12011305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef long int CK_LONG; 12021305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef CK_BYTE *CK_BYTE_PTR; 12031305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef CK_CHAR *CK_CHAR_PTR; 12041305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef CK_UTF8CHAR *CK_UTF8CHAR_PTR; 12051305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef CK_ULONG *CK_ULONG_PTR; 12061305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef void *CK_VOID_PTR; 12071305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef void **CK_VOID_PTR_PTR; 12081305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CK_FALSE 0 12091305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CK_TRUE 1 12101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef CK_DISABLE_TRUE_FALSE 12111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef FALSE 12121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define FALSE 0 12131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 12141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef TRUE 12151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define TRUE 1 12161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 12171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 12181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_version CK_VERSION; 12201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_version *CK_VERSION_PTR; 12211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_info CK_INFO; 12231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_info *CK_INFO_PTR; 12241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef ck_slot_id_t *CK_SLOT_ID_PTR; 12261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_slot_info CK_SLOT_INFO; 12281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_slot_info *CK_SLOT_INFO_PTR; 12291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_token_info CK_TOKEN_INFO; 12311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_token_info *CK_TOKEN_INFO_PTR; 12321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef ck_session_handle_t *CK_SESSION_HANDLE_PTR; 12341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_session_info CK_SESSION_INFO; 12361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_session_info *CK_SESSION_INFO_PTR; 12371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef ck_object_handle_t *CK_OBJECT_HANDLE_PTR; 12391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef ck_object_class_t *CK_OBJECT_CLASS_PTR; 12411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_attribute CK_ATTRIBUTE; 12431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_attribute *CK_ATTRIBUTE_PTR; 12441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_date CK_DATE; 12461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_date *CK_DATE_PTR; 12471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef ck_mechanism_type_t *CK_MECHANISM_TYPE_PTR; 12491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_mechanism CK_MECHANISM; 12511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_mechanism *CK_MECHANISM_PTR; 12521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_mechanism_info CK_MECHANISM_INFO; 12541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_mechanism_info *CK_MECHANISM_INFO_PTR; 12551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_function_list CK_FUNCTION_LIST; 12571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_function_list *CK_FUNCTION_LIST_PTR; 12581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_function_list **CK_FUNCTION_LIST_PTR_PTR; 12591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_c_initialize_args CK_C_INITIALIZE_ARGS; 12611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef struct ck_c_initialize_args *CK_C_INITIALIZE_ARGS_PTR; 12621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define NULL_PTR NULL 12641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* Delete the helper macros defined at the top of the file. */ 12661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_flags_t 12671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_version 12681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_info 12701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef cryptoki_version 12711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef manufacturer_id 12721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef library_description 12731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef library_version 12741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12751305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_notification_t 12761305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_slot_id_t 12771305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12781305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_slot_info 12791305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef slot_description 12801305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef hardware_version 12811305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef firmware_version 12821305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12831305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_token_info 12841305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef serial_number 12851305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef max_session_count 12861305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef session_count 12871305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef max_rw_session_count 12881305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef rw_session_count 12891305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef max_pin_len 12901305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef min_pin_len 12911305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef total_public_memory 12921305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef free_public_memory 12931305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef total_private_memory 12941305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef free_private_memory 12951305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef utc_time 12961305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 12971305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_session_handle_t 12981305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_user_type_t 12991305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_state_t 13001305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13011305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_session_info 13021305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef slot_id 13031305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef device_error 13041305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13051305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_object_handle_t 13061305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_object_class_t 13071305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_hw_feature_type_t 13081305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_key_type_t 13091305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_certificate_type_t 13101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_attribute_type_t 13111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_attribute 13131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef value 13141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef value_len 13151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_date 13171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_mechanism_type_t 13191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_mechanism 13211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef parameter 13221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef parameter_len 13231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_mechanism_info 13251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef min_key_size 13261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef max_key_size 13271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_rv_t 13291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_notify_t 13301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_function_list 13321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_createmutex_t 13341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_destroymutex_t 13351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_lockmutex_t 13361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_unlockmutex_t 13371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef ck_c_initialize_args 13391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef create_mutex 13401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef destroy_mutex 13411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef lock_mutex 13421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef unlock_mutex 13431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#undef reserved 13441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif /* CRYPTOKI_COMPAT */ 13461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* System dependencies. */ 13491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#if defined(_WIN32) || defined(CRYPTOKI_FORCE_WIN32) 13501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#pragma pack(pop, cryptoki) 13511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 13521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#if defined(__cplusplus) 13541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood} 13551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 13561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 13571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif /* PKCS11_H */ 1358