fpkcs11t.h
来自「支持SSL v2/v3, TLS, PKCS #5, PKCS #7, PKCS」· C头文件 代码 · 共 1,099 行 · 第 1/3 页
H
1,099 行
/* CKR_USER_ANOTHER_ALREADY_LOGGED_IN and CKR_USER_TOO_MANY_TYPES * are new to v2.01 */#define CKR_USER_ANOTHER_ALREADY_LOGGED_IN 0x00000104#define CKR_USER_TOO_MANY_TYPES 0x00000105#define CKR_WRAPPED_KEY_INVALID 0x00000110#define CKR_WRAPPED_KEY_LEN_RANGE 0x00000112#define CKR_WRAPPING_KEY_HANDLE_INVALID 0x00000113#define CKR_WRAPPING_KEY_SIZE_RANGE 0x00000114#define CKR_WRAPPING_KEY_TYPE_INCONSISTENT 0x00000115#define CKR_RANDOM_SEED_NOT_SUPPORTED 0x00000120/* These are new to v2.0 */#define CKR_RANDOM_NO_RNG 0x00000121#define CKR_INSERTION_CALLBACK_SET 0x00000140#define CKR_INSERTION_CALLBACK_NOT_SUPPORTED 0x00000141#define CKR_BUFFER_TOO_SMALL 0x00000150#define CKR_SAVED_STATE_INVALID 0x00000160#define CKR_INFORMATION_SENSITIVE 0x00000170#define CKR_STATE_UNSAVEABLE 0x00000180/* These are new to v2.01 */#define CKR_CRYPTOKI_NOT_INITIALIZED 0x00000190#define CKR_CRYPTOKI_ALREADY_INITIALIZED 0x00000191#define CKR_MUTEX_BAD 0x000001A0#define CKR_MUTEX_NOT_LOCKED 0x000001A1#define CKR_VENDOR_DEFINED 0x80000000L/* CK_NOTIFY is an application callback that processes events. */typedef CK_RV (CK_ENTRY CK_PTR CK_NOTIFY)( CK_SESSION_HANDLE hSession, /* the session's handle */ CK_NOTIFICATION event, CK_VOID_PTR pApplication /* same as passed to C_OpenSession. */);/* CK_FUNCTION_LIST is going to be a structure holding a PKCS #11 spec *//* version and pointers of appropriate types to all the PKCS #11 functions. *//* CK_FUNCTION_LIST is new for v2.0 */typedef struct CK_FUNCTION_LIST CK_FUNCTION_LIST;typedef CK_FUNCTION_LIST CK_PTR CK_FUNCTION_LIST_PTR;typedef CK_FUNCTION_LIST_PTR CK_PTR CK_FUNCTION_LIST_PTR_PTR;/* CK_CREATEMUTEX is an application callback for creating a mutex */typedef CK_RV CK_ENTRY (CK_PTR CK_CREATEMUTEX)( CK_VOID_PTR_PTR ppMutex /* location to receive pointer to mutex */);/* CK_DESTROYMUTEX is an application callback for destroying a mutex */typedef CK_RV CK_ENTRY (CK_PTR CK_DESTROYMUTEX)( CK_VOID_PTR pMutex /* pointer to mutex */);/* CK_LOCKMUTEX is an application callback for locking a mutex */typedef CK_RV CK_ENTRY (CK_PTR CK_LOCKMUTEX)( CK_VOID_PTR pMutex /* pointer to mutex */);/* CK_UNLOCKMUTEX is an application callback for unlocking a mutex */typedef CK_RV CK_ENTRY (CK_PTR CK_UNLOCKMUTEX)( CK_VOID_PTR pMutex /* pointer to mutex */);/* CK_C_INITIALIZE_ARGS provides the optional arguments to C_Initialize*/typedef struct CK_C_INITIALIZE_ARGS { CK_CREATEMUTEX CreateMutex; CK_DESTROYMUTEX DestroyMutex; CK_LOCKMUTEX LockMutex; CK_UNLOCKMUTEX UnlockMutex; CK_FLAGS flags; CK_VOID_PTR pReserved;} CK_C_INITIALIZE_ARGS;/* flags: bit flags that provide capabilities of the slot * Bit Flag Mask Meaning */#define CKF_LIBRARY_CANT_CREATE_OS_THREADS 0x00000001 /* library may not * spawn its own * threads */#define CKF_OS_LOCKING_OK 0x00000002 /* library can use * native operating * system thread * synchronization *//* CK_C_INITIALIZE_ARGS_PTR is a pointer to a CK_C_INITIALIZE_ARGS */typedef CK_C_INITIALIZE_ARGS CK_PTR CK_C_INITIALIZE_ARGS_PTR;/* additional flags for parameters to functions *//* CKF_DONT_BLOCK is for the function C_WaitForSlotEvent */#define CKF_DONT_BLOCK 1/* CK_KEA_DERIVE_PARAMS provides the parameters to the CKM_KEA_DERIVE * mechanism. *//* CK_KEA_DERIVE_PARAMS is new for v2.0 */typedef struct CK_KEA_DERIVE_PARAMS { CK_BBOOL isSender; CK_ULONG ulRandomLen; CK_BYTE_PTR pRandomA; CK_BYTE_PTR pRandomB; CK_ULONG ulPublicDataLen; CK_BYTE_PTR pPublicData;} CK_KEA_DERIVE_PARAMS;/* CK_KEA_DERIVE_PARAMS_PTR points to a CK_KEA_DERIVE_PARAMS. */typedef CK_KEA_DERIVE_PARAMS CK_PTR CK_KEA_DERIVE_PARAMS_PTR;/* CK_RC2_PARAMS provides the parameters to the CKM_RC2_ECB and CKM_RC2_MAC *//* mechanisms. An instance of CK_RC2_PARAMS just holds the effective keysize. */typedef CK_ULONG CK_RC2_PARAMS;/* CK_RC2_PARAMS_PTR points to a CK_RC2_PARAMS. */typedef CK_RC2_PARAMS CK_PTR CK_RC2_PARAMS_PTR;/* CK_RC2_CBC_PARAMS provides the parameters to the CKM_RC2_CBC mechanism. */typedef struct CK_RC2_CBC_PARAMS { /* ulEffectiveBits was changed from CK_USHORT to CK_ULONG for v2.0 */ CK_ULONG ulEffectiveBits; /* effective bits (1-1024) */ CK_BYTE iv[8]; /* IV for CBC mode */} CK_RC2_CBC_PARAMS;/* CK_RC2_CBC_PARAMS_PTR points to a CK_RC2_CBC_PARAMS. */typedef CK_RC2_CBC_PARAMS CK_PTR CK_RC2_CBC_PARAMS_PTR;/* CK_RC2_MAC_GENERAL_PARAMS provides the parameters for the *//* CKM_RC2_MAC_GENERAL mechanism. *//* CK_RC2_MAC_GENERAL_PARAMS is new for v2.0 */typedef struct CK_RC2_MAC_GENERAL_PARAMS { CK_ULONG ulEffectiveBits; /* effective bits (1-1024) */ CK_ULONG ulMacLength; /* Length of MAC in bytes */} CK_RC2_MAC_GENERAL_PARAMS;typedef CK_RC2_MAC_GENERAL_PARAMS CK_PTR CK_RC2_MAC_GENERAL_PARAMS_PTR;/* CK_RC5_PARAMS provides the parameters to the CKM_RC5_ECB and CKM_RC5_MAC *//* mechanisms. *//* CK_RC5_PARAMS is new for v2.0 */typedef struct CK_RC5_PARAMS { CK_ULONG ulWordsize; /* wordsize in bits */ CK_ULONG ulRounds; /* number of rounds */} CK_RC5_PARAMS;/* CK_RC5_PARAMS_PTR points to a CK_RC5_PARAMS. */typedef CK_RC5_PARAMS CK_PTR CK_RC5_PARAMS_PTR;/* CK_RC5_CBC_PARAMS provides the parameters to the CKM_RC5_CBC mechanism. *//* CK_RC5_CBC_PARAMS is new for v2.0 */typedef struct CK_RC5_CBC_PARAMS { CK_ULONG ulWordsize; /* wordsize in bits */ CK_ULONG ulRounds; /* number of rounds */ CK_BYTE_PTR pIv; /* pointer to IV */ CK_ULONG ulIvLen; /* length of IV in bytes */} CK_RC5_CBC_PARAMS;/* CK_RC5_CBC_PARAMS_PTR points to a CK_RC5_CBC_PARAMS. */typedef CK_RC5_CBC_PARAMS CK_PTR CK_RC5_CBC_PARAMS_PTR;/* CK_RC5_MAC_GENERAL_PARAMS provides the parameters for the *//* CKM_RC5_MAC_GENERAL mechanism. *//* CK_RC5_MAC_GENERAL_PARAMS is new for v2.0 */typedef struct CK_RC5_MAC_GENERAL_PARAMS { CK_ULONG ulWordsize; /* wordsize in bits */ CK_ULONG ulRounds; /* number of rounds */ CK_ULONG ulMacLength; /* Length of MAC in bytes */} CK_RC5_MAC_GENERAL_PARAMS;typedef CK_RC5_MAC_GENERAL_PARAMS CK_PTR CK_RC5_MAC_GENERAL_PARAMS_PTR;/* CK_MAC_GENERAL_PARAMS provides the parameters to most block ciphers' *//* MAC_GENERAL mechanisms. Its value is the length of the MAC. *//* CK_MAC_GENERAL_PARAMS is new for v2.0 */typedef CK_ULONG CK_MAC_GENERAL_PARAMS;typedef CK_MAC_GENERAL_PARAMS CK_PTR CK_MAC_GENERAL_PARAMS_PTR;/* CK_SKIPJACK_PRIVATE_WRAP_PARAMS provides the parameters to the * CKM_SKIPJACK_PRIVATE_WRAP mechanism *//* CK_SKIPJACK_PRIVATE_WRAP_PARAMS is new for v2.0 */typedef struct CK_SKIPJACK_PRIVATE_WRAP_PARAMS { CK_ULONG ulPasswordLen; CK_BYTE_PTR pPassword; CK_ULONG ulPublicDataLen; CK_BYTE_PTR pPublicData; CK_ULONG ulPAndGLen; CK_ULONG ulQLen; CK_ULONG ulRandomLen; CK_BYTE_PTR pRandomA; CK_BYTE_PTR pPrimeP; CK_BYTE_PTR pBaseG; CK_BYTE_PTR pSubprimeQ;} CK_SKIPJACK_PRIVATE_WRAP_PARAMS;/* CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR points to a * CK_SKIPJACK_PRIVATE_WRAP_PARAMS */typedef CK_SKIPJACK_PRIVATE_WRAP_PARAMS CK_PTR \ CK_SKIPJACK_PRIVATE_WRAP_PTR;/* CK_SKIPJACK_RELAYX_PARAMS provides the parameters to the * CKM_SKIPJACK_RELAYX mechanism *//* CK_SKIPJACK_RELAYX_PARAMS is new for v2.0 */typedef struct CK_SKIPJACK_RELAYX_PARAMS { CK_ULONG ulOldWrappedXLen; CK_BYTE_PTR pOldWrappedX; CK_ULONG ulOldPasswordLen; CK_BYTE_PTR pOldPassword; CK_ULONG ulOldPublicDataLen; CK_BYTE_PTR pOldPublicData; CK_ULONG ulOldRandomLen; CK_BYTE_PTR pOldRandomA; CK_ULONG ulNewPasswordLen; CK_BYTE_PTR pNewPassword; CK_ULONG ulNewPublicDataLen; CK_BYTE_PTR pNewPublicData; CK_ULONG ulNewRandomLen; CK_BYTE_PTR pNewRandomA;} CK_SKIPJACK_RELAYX_PARAMS;/* CK_SKIPJACK_RELAYX_PARAMS_PTR points to a CK_SKIPJACK_RELAYX_PARAMS*/typedef CK_SKIPJACK_RELAYX_PARAMS CK_PTR CK_SKIPJACK_RELAYX_PARAMS_PTR;typedef struct CK_PBE_PARAMS { CK_CHAR_PTR pInitVector; CK_CHAR_PTR pPassword; CK_ULONG ulPasswordLen; CK_CHAR_PTR pSalt; CK_ULONG ulSaltLen; CK_ULONG ulIteration;} CK_PBE_PARAMS;typedef CK_PBE_PARAMS CK_PTR CK_PBE_PARAMS_PTR;/* CK_KEY_WRAP_SET_OAEP_PARAMS provides the parameters to the *//* CKM_KEY_WRAP_SET_OAEP mechanism. *//* CK_KEY_WRAP_SET_OAEP_PARAMS is new for v2.0 */typedef struct CK_KEY_WRAP_SET_OAEP_PARAMS { CK_BYTE bBC; /* block contents byte */ CK_BYTE_PTR pX; /* extra data */ CK_ULONG ulXLen; /* length of extra data in bytes */} CK_KEY_WRAP_SET_OAEP_PARAMS;/* CK_KEY_WRAP_SET_OAEP_PARAMS_PTR points to a CK_KEY_WRAP_SET_OAEP_PARAMS. */typedef CK_KEY_WRAP_SET_OAEP_PARAMS CK_PTR CK_KEY_WRAP_SET_OAEP_PARAMS_PTR;/* CK_BATON_PARAMS provides the parameters to the CKM_BATON_ECB128, *//* CKM_BATON_ECB96, CKM_BATON_CBC128, CKM_BATON_COUNTER, and *//* CKM_BATON_SHUFFLE mechanisms. *//* CK_BATON_PARAMS is new for v2.0 */typedef struct CK_BATON_PARAMS { CK_BYTE iv[24];} CK_BATON_PARAMS;/* CK_BATON_PARAMS_PTR points to a CK_BATON_PARAMS. */typedef CK_BATON_PARAMS CK_PTR CK_BATON_PARAMS_PTR;typedef struct CK_SSL3_RANDOM_DATA { CK_BYTE_PTR pClientRandom; CK_ULONG ulClientRandomLen; CK_BYTE_PTR pServerRandom; CK_ULONG ulServerRandomLen;} CK_SSL3_RANDOM_DATA;typedef struct CK_SSL3_MASTER_KEY_DERIVE_PARAMS { CK_SSL3_RANDOM_DATA RandomInfo; CK_VERSION_PTR pVersion;} CK_SSL3_MASTER_KEY_DERIVE_PARAMS;typedef struct CK_SSL3_MASTER_KEY_DERIVE_PARAMS CK_PTR \ CK_SSL3_MASTER_KEY_DERIVE_PARAMS_PTR;typedef struct CK_SSL3_KEY_MAT_OUT { CK_OBJECT_HANDLE hClientMacSecret; CK_OBJECT_HANDLE hServerMacSecret; CK_OBJECT_HANDLE hClientKey; CK_OBJECT_HANDLE hServerKey; CK_BYTE_PTR pIVClient; CK_BYTE_PTR pIVServer;} CK_SSL3_KEY_MAT_OUT;typedef CK_SSL3_KEY_MAT_OUT CK_PTR CK_SSL3_KEY_MAT_OUT_PTR;typedef struct CK_SSL3_KEY_MAT_PARAMS { CK_ULONG ulMacSizeInBits; CK_ULONG ulKeySizeInBits; CK_ULONG ulIVSizeInBits; CK_BBOOL bIsExport; CK_SSL3_RANDOM_DATA RandomInfo; CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial;} CK_SSL3_KEY_MAT_PARAMS;typedef CK_SSL3_KEY_MAT_PARAMS CK_PTR CK_SSL3_KEY_MAT_PARAMS_PTR;/* The CK_DERIVATION_STRING_DATA is used for bunches of Deriviation * Mechanisms. */typedef struct CK_KEY_DERIVATION_STRING_DATA { CK_BYTE_PTR pData; CK_ULONG ulLen;} CK_KEY_DERIVATION_STRING_DATA;typedef CK_KEY_DERIVATION_STRING_DATA CK_PTR CK_KEY_DERIVATION_STRING_DATA_PTR;/* The CK_EXTRACT_PARAMS is used for the CKM_EXTRACT_KEY_FROM_KEY mechanism. *//* CK_EXTRACT_PARAMS is new for v2.0 */typedef CK_ULONG CK_EXTRACT_PARAMS;/* CK_EXTRACT_PARAMS_PTR points to a CK_EXTRACT_PARAMS. */typedef CK_EXTRACT_PARAMS CK_PTR CK_EXTRACT_PARAMS_PTR;/* Do not attempt to use these. They are only used by NETSCAPE's internal * PKCS #11 interface. Most of these are place holders for other mechanism * and will change in the future. */#define CKM_NETSCAPE_PBE_KEY_GEN 0x80000001L#define CKM_NETSCAPE_PBE_SHA1_DES_CBC 0x80000002L#define CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC 0x80000003L#define CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC 0x80000004L#define CKM_NETSCAPE_PBE_SHA1_128_BIT_RC2_CBC 0x80000005L#define CKM_NETSCAPE_PBE_SHA1_40_BIT_RC4 0x80000006L#define CKM_NETSCAPE_PBE_SHA1_128_BIT_RC4 0x80000007L#define CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC 0x80000008L#define CKM_TLS_MASTER_KEY_DERIVE 0x80000371L#define CKM_TLS_KEY_AND_MAC_DERIVE 0x80000372L/* define used to pass in the database key for DSA private keys */#define CKA_NETSCAPE_DB 0xD5A0DB00L#define CKA_NETSCAPE_TRUST 0x80000001L#if defined(XP_WIN)#if defined(_WIN32)#pragma pack(pop, cryptoki)#else /* win16 */#if defined(__WATCOMC__)#pragma pack(pop)#else /* not Watcom 16-bit */#pragma pack()#endif#endif#endif#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?