📄 h_extern.h
字号:
under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. *//* (C) COPYRIGHT International Business Machines Corp. 2001,2002 *//*************************************************************************** Change Log ========== 4/25/03 Kapil Sood (kapil@corrent.com) Added DH key pair generation and DH shared key derivation functions. ****************************************************************************/#ifndef _H_EXTERN_H#define _H_EXTERN_H#if (LEEDS_BUILD)#ifdef NT_ON_I386 #pragma pack(1)#endif#if (AIX || LINUX) #pragma options align=packed#endif#endifextern char * pk_dir;// global variables//extern CK_BBOOL initialized;extern char *card_function_names[];extern char *total_function_names[];extern MECH_LIST_ELEMENT mech_list[];extern CK_ULONG mech_list_len;#ifdef NT_ON_I386extern void native_mutex;#endif#if (defined( AIX) || defined(LINUX))extern pthread_mutex_t native_mutex;#if LINUX#if SYSVSEMextern int xprocsemid;#endif#endif#endifextern void *xproclock;extern MUTEX pkcs_mutex, obj_list_mutex, sess_list_mutex, login_mutex;extern DL_NODE *sess_list;extern DL_NODE *sess_obj_list;extern DL_NODE *publ_token_obj_list;extern DL_NODE *priv_token_obj_list;extern DL_NODE *object_map;extern CK_BYTE master_key[3*DES_KEY_SIZE];extern CK_BYTE so_pin_md5[MD5_HASH_SIZE];extern CK_BYTE user_pin_md5[MD5_HASH_SIZE];extern CK_BYTE default_so_pin_sha[SHA1_HASH_SIZE];extern CK_BYTE default_so_pin_md5[MD5_HASH_SIZE];extern LW_SHM_TYPE *global_shm;extern TOKEN_DATA *nv_token_data;extern CK_SLOT_INFO slot_info;extern CK_ULONG next_object_handle;extern CK_ULONG next_session_handle;// SAB FIXME FIXMEextern CK_STATE global_login_state;extern CK_BYTE ber_AlgIdRSAEncryption[];extern CK_ULONG ber_AlgIdRSAEncryptionLen;extern CK_BYTE ber_rsaEncryption[];extern CK_ULONG ber_rsaEncryptionLen;extern CK_BYTE ber_idDSA[];extern CK_ULONG ber_idDSALen;extern CK_BYTE ber_md2WithRSAEncryption[];extern CK_ULONG ber_md2WithRSAEncryptionLen;extern CK_BYTE ber_md4WithRSAEncryption[];extern CK_ULONG ber_md4WithRSAEncryptionLen;extern CK_BYTE ber_md5WithRSAEncryption[];extern CK_ULONG ber_md5WithRSAEncryptionLen;extern CK_BYTE ber_sha1WithRSAEncryption[];extern CK_ULONG ber_sha1WithRSAEncryptionLen;extern CK_ULONG des_weak_count;extern CK_ULONG des_semi_weak_count;extern CK_ULONG des_possibly_weak_count;extern CK_BYTE des_weak_keys[4][8];extern CK_BYTE des_semi_weak_keys[12][8];extern CK_BYTE des_possibly_weak_keys[48][8];#ifdef NT_ON_I386extern CK_FUNCTION_LIST function_list;#endif#if (defined( AIX) || defined(LINUX))extern struct ST_FCN_LIST function_list;#endifextern CK_C_INITIALIZE_ARGS cinit_args;CK_ULONG long_reverse( CK_ULONG x );// VACPP C runtime initialization/cleanup entry points//int _CRT_init(void);int _CRT_term(void);CK_RV DummyFunction( CK_SLOT_ID slot_id, int arg );// General-purpose functions//MY_RV C_Initialize ( CK_VOID_PTR pInitArgs );MY_RV C_Finalize ( CK_VOID_PTR pReserved );MY_RV C_GetInfo ( CK_INFO_PTR pInfo );MY_RV C_GetFunctionList ( CK_FUNCTION_LIST_PTR_PTR ppFunctionList );// Slot and token management functions//MY_RV C_GetSlotList ( CK_BBOOL tokenPresent, CK_SLOT_ID_PTR pSlotList, CK_ULONG_PTR pulCount );MY_RV C_GetSlotInfo ( CK_SLOT_ID slotID, CK_SLOT_INFO_PTR pInfo );MY_RV C_GetTokenInfo ( CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo );MY_RV C_WaitForSlotEvent ( CK_FLAGS flags, CK_SLOT_ID_PTR pSlot, CK_VOID_PTR pReserved );MY_RV C_GetMechanismList ( CK_SLOT_ID slotID, CK_MECHANISM_TYPE_PTR pMechanismList, CK_ULONG_PTR pulCount );MY_RV C_GetMechanismInfo ( CK_SLOT_ID slotID, CK_MECHANISM_TYPE type, CK_MECHANISM_INFO_PTR pInfo );MY_RV C_InitToken ( CK_SLOT_ID slotID, CK_CHAR_PTR pPin, CK_ULONG ulPinLen, CK_CHAR_PTR pLabel );MY_RV C_InitPIN ( CK_SESSION_HANDLE hSession, CK_CHAR_PTR pPin, CK_ULONG ulPinLen );MY_RV C_SetPIN ( CK_SESSION_HANDLE hSession, CK_CHAR_PTR pOldPin, CK_ULONG ulOldLen, CK_CHAR_PTR pNewPin, CK_ULONG ulNewLen );// Session management functions//MY_RV C_OpenSession ( CK_SLOT_ID slotID, CK_FLAGS flags, CK_VOID_PTR pApplication, CK_NOTIFY Notify, CK_SESSION_HANDLE_PTR phSession );MY_RV C_CloseSession ( CK_SESSION_HANDLE hSession );MY_RV C_CloseAllSessions ( CK_SLOT_ID slotID );MY_RV C_GetSessionInfo ( CK_SESSION_HANDLE hSession, CK_SESSION_INFO_PTR pInfo );MY_RV C_GetOperationState ( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG_PTR pulOperationStateLen );MY_RV C_SetOperationState ( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG ulOperationStateLen, CK_OBJECT_HANDLE hEncryptionKey, CK_OBJECT_HANDLE hAuthenticationKey );MY_RV C_Login ( CK_SESSION_HANDLE hSession, CK_USER_TYPE userType, CK_CHAR_PTR pPin, CK_ULONG uPinLen );MY_RV C_Logout ( CK_SESSION_HANDLE hSession );// Object management functions//MY_RV C_CreateObject ( CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phObject );MY_RV C_CopyObject ( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phNewObject );MY_RV C_DestroyObject ( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject );MY_RV C_GetObjectSize ( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ULONG_PTR pulSize );MY_RV C_GetAttributeValue ( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount );MY_RV C_SetAttributeValue ( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount );MY_RV C_FindObjectsInit ( CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount );MY_RV C_FindObjects ( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject, CK_ULONG ulMaxObjectCount, CK_ULONG_PTR pulObjectCount );MY_RV C_FindObjectsFinal ( CK_SESSION_HANDLE hSession );// Encryption functions//MY_RV C_EncryptInit ( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey );MY_RV C_Encrypt ( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pEncryptedData, CK_ULONG_PTR pulEncryptedDataLen );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -