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 + -
显示快捷键?