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

📄 devicelist.h

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

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

		说明:

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

		文件名:	

			DeviceList.h
---------------------------------------------------------------------------
		描述:		

			

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

*===========================================================================*/
#pragma once

#include "Pkcs11Layer.h"

class CDeviceList : public CPkcs11Layer
{
public:
	void Reset(CK_SLOT_ID ckSlotID);
	
	CDeviceList(void);

	~CDeviceList(void);

	long InitKey(CK_SLOT_ID ulSlotID,PUCHAR ulpSOPin,ULONG ulSOPINLen,
				PUCHAR ulpUserPin,ULONG ulUserPINLen,PUCHAR ulpLabel);

//Token
	long GetTokenInfo(CK_SLOT_ID ulSlotID, PVOID pTokenInfo);

	long GetTokenAuxInfo(CK_SLOT_ID ckSlotId, PVOID pAuxInfo);

//Session

	long OpenAppletSession(CK_SLOT_ID ckSlotID);

	long CloseAppletSession();

	long GetAppletSessionInfo(CK_USER_TYPE& ulType, BOOL& bLoged);

	long AppletSessionLogIn(CK_USER_TYPE ulType, PUCHAR pbPIN, ULONG ulPINLen);

	long AppletSessionLogOut();

	long OpenTokenSession(CK_SESSION_HANDLE& hSession, CK_SLOT_ID hOnLineSlotId);

	long CloseTokenSession(CK_SESSION_HANDLE hSession);
		
	long GetSessionInfo(CK_SESSION_HANDLE hSession, CK_USER_TYPE& ulType, BOOL& bLoged);
	
//log in/out
	long LogIn(CK_SESSION_HANDLE hSession, CK_USER_TYPE ulType, PUCHAR pbPIN, ULONG	ulPINLen);

	long LogOut(CK_SESSION_HANDLE hSession);

//data file
	long FindTokenFile(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pbFileName, CK_ULONG ulFileNameLen, CK_OBJECT_HANDLE_PTR phFileObject);
	
	long DeleteTokenFile(CK_BYTE_PTR pbFileName, CK_ULONG ulFileNameLen);
  
	long CreateTokenFile(BOOL bPublic,
					 CK_BYTE_PTR pbFileName, CK_ULONG ulFileNameLen, CK_ULONG ulMaxFileLen);

	long WriteFileData(CK_BYTE_PTR pbFileName, CK_ULONG ulFileNameLen,	CK_BYTE_PTR pbData, CK_ULONG ulDataLen);

	long ReadFileData(CK_BYTE_PTR pbFileName, CK_ULONG ulFileNameLen, CK_BYTE_PTR pbData, CK_ULONG &ulDataLen);

	long GetFileSize(CK_BYTE_PTR pbFileName, CK_ULONG ulFileNameLen,CK_ULONG &ulFileSize);
//Pin
	long ChangePin(CK_USER_TYPE ulType, 
		PUCHAR pbOldPIN, ULONG	ulOldPINLen, PUCHAR pbNewPIN, ULONG	ulNewPINLen);

	long ChangePinEx(PUCHAR pbSoPIN, ULONG ulSoPINLen, PUCHAR pbNewPIN, ULONG ulNewPINLen);
//Slot List

	long RefreshSlotList(ULONG &ulCount, CK_SLOT_ID ckSlotID[]);

	long GetSlotCount(ULONG &ulCount);

	void Reset();

private:

	CK_SESSION_HANDLE m_hSession;
	CK_SESSION_HANDLE m_hAppletSession;

};

extern CDeviceList &GetDeviceListHandle();

⌨️ 快捷键说明

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