devicelist.h

来自「对PKCS11接口的封装」· C头文件 代码 · 共 99 行

H
99
字号
/*===========================================================================

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

		说明:

			通用函数 支持平台: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 + =
减小字号Ctrl + -
显示快捷键?