⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyexport.h

📁 对PKCS11接口的封装
💻 H
字号:
/*===========================================================================

===========================================================================

		说明:

			通用函数 支持平台:WIN98/2K/XP...

		文件名:	

			Epass3000Export.h
---------------------------------------------------------------------------
		描述:		

			

---------------------------------------------------------------------------
		修改:


*===========================================================================*/

#ifndef	__EPASS3000EXPORT_H
#define	__EPASS3000EXPORT_H


//-----------------------------------------------------------------------------
//错误代码
//-----------------------------------------------------------------------------
#define USBKEY_OK						0x00000001	//操作成功
#define USBKEY_FAILED					0x00000000	//操作失败

#define USBKEY_KEY_REMOVED				0x20000002	//无KEY
#define USBKEY_KEY_INVALID				0x20000003	//连接Key失败/KEY无效
#define USBKEY_INVALID_PARAMETER  		0x20000004	//参数错误
#define USBKEY_VERIFIEDPIN_FAILED		0x20000005	//验证口令失败
#define USBKEY_USER_NOT_LOG_IN			0x20000006	//用户没有登陆,没有验证口令
#define USBKEY_BUFFER_TOO_SMALL        	0x20000007	//缓冲区太小
#define USBKEY_CONTAINER_TOOMORE       	0x20000010	//剩余存储区不足
#define USBKEY_ERR_GETEKEYPARAM			0x20000012	//取eKey信息失败
#define USBKEY_ERR_PINLOCKED			0x20000017	//密码已经锁死

#define USBKEY_ERROR_INIT_TOKEN			0x30000000	//初始化Epass Token 错误
#define USBKEY_INVALID_LIBRARY_PATH		0x30000001	//找不到指定的库
#define USBKEY_INVALID_TOKEN_TYPE		0x30000002	//找不到指定的 Epass Token 的类型
#define USBKEY_INVALID_LIBRARY_HANDLE	0x30000003	//
#define USBKEY_INVALID_SLOT				0x30000004	//
#define USBKEY_INVALID_CERT				0x30000005	//
#define USBKEY_NO_SPECIAL_DATA			0x30000006	//找不到指定的容器/找不到指定的文件等。
#define USBKEY_NO_OBJECT				0x30000007

#define USBKEY_ERR_CREATEFILE			0x40000000	//创建文件错误
#define USBKEY_ERR_EXISTFILE			0x40000001	//文件已存在错误
#define USBKEY_ERR_OPENFILE				0x40000002	//打开文件错误
#define USBKEY_ERR_READFILE				0x40000003	//读文件错误
#define USBKEY_ERR_WRITEFILE			0x40000004	//写文件错误
#define USBKEY_ERR_NOFILE				0x40000005	//没有找到文件错误
#define USBKEY_ERR_TOOMOREDATA       	0x40000006	//超过文件的最大容量

#if defined(_MSC_VER) && defined(WIN32)
#define WINAPI  __stdcall
#else 
#define WINAPI
#endif

#ifdef __cplusplus
extern "C" {
#endif


	//获取设备数
	//返回>=0为设备数,-1为失败
	int	WINAPI CK_GetDeviceNumber();


	//获取设备序列号
	//char *szSN:输出设备的序列号
	//返回1为成功,0为失败
	int	WINAPI CK_GetDeviceSerialNumber(CK_SLOT_ID ckSlotID,char *szSN);

	//创建文件
	//szUserPwd:KEY的PIN码
	//dwFileID:文件ID
	//dwFileSize:文件大小
	//增加功能:如果文件存在,就删除文件。
	int	WINAPI CK_CreateFile(CK_SLOT_ID ckSlotID,char *szUserPwd,DWORD dwFileID,DWORD dwFileSize);

	//删除文件
	//szUserPwd:KEY的PIN码
	//dwFileID:读文件的文件ID
	//返回1为成功,0为失败
	int WINAPI CK_DeleteFile(CK_SLOT_ID ckSlotID,char *szUserPwd,DWORD dwFileID);

	//获取文件大小
	int WINAPI CK_GetFileSize(CK_SLOT_ID ckSlotID,char *szUserPwd,DWORD dwFileID);

	//往文件里写数据
	
	//!!!!!!!!!
	//iOffset:文件存储位置偏移量, iOffset >= 0
	//!!!!!!!!!
	
	//szUserPwd:KEY的PIN码
	//dwFileID:写入文件的文件ID
	//bpWriteData:要写入数据
	//dwDataLen:写入数据长度
	//返回1为成功,0为失败

	int	WINAPI CK_WriteData(CK_SLOT_ID ckSlotID,char *szUserPwd,DWORD dwFileID,int iOffset,BYTE *bpWriteData,DWORD dwDataLen);

	//从文件里读数据

	//!!!!!!!!!
	//iOffset:文件存储位置偏移量, iOffset >= 0
	//!!!!!!!!!
	
	//szUserPwd:KEY的PIN码
	//dwFileID:读文件的文件ID
	//bpWriteData:读出数据的缓存
	//dwReadLen:需要读出的长度
	//返回1为成功,0为失败

	int WINAPI CK_ReadData(CK_SLOT_ID ckSlotID,char *szUserPwd,DWORD dwFileID,int iOffset,BYTE *bpReadDataBuffer,DWORD dwReadLen);

	//设置KEY的PIN码
	//szUserPwd:KEY的PIN码
	//szSOPwd:KEY的SO PIN码,用于获得设置用户PIN码的权限
	//返回1为成功,0为失败

	int WINAPI CK_SetPIN(CK_SLOT_ID ckSlotID,char *szUserPwd, char *szSOPwd);

	//验证KEY的PIN码
	//bUserPin: TRUE为USER PIN;FALSE为SO PIN
	//szPIN:KEY的PIN码
	//返回0为成功,>0为可重试次数,-1为锁死,其它为出错

	int WINAPI CK_VerifyPIN(CK_SLOT_ID ckSlotID,bool bUserPin, char *szPIN);

	//修改KEY的PIN码
	//bUserPin: TRUE为USER PIN;FALSE为SO PIN
	//szOldPIN:旧密码
	//szNewPIN:新密码
	//返回0为成功,>0为可重试次数,-1为锁死,其它为出错

	int WINAPI CK_ChangePIN(CK_SLOT_ID ckSlotID,bool bUserPin, char *szOldPIN,char *szNewPIN);

	const char * WINAPI CK_GetLastErrorInfor();

#ifdef __cplusplus
}
#endif

#endif	//__EPASS3000EXPORT_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -