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

📄 certsetup.h

📁 手机智能卡开发
💻 H
字号:
// CertSetup.h: interface for the CCertSetup class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_CERTSETUP_H__053EEBE2_C95C_42BF_974F_74589AD0A9FA__INCLUDED_)
#define AFX_CERTSETUP_H__053EEBE2_C95C_42BF_974F_74589AD0A9FA__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "IniFile.h"
#include "BJCA_ConfigManage.h"
typedef struct setup_cert_info
{
	int keyType; //1 单证 2双证
	char uniqID[256];
	char uniqIdOid[256];
	char subjectname[256];
	char dept[256];
	char issueName[256];
	char avail[256];
	char tradeType[256];
	char devType[256];
	char caType[256];
	char serialNum_1[256];
	char serialNum_2[256];
	
}SETUP_CERT_INFO,*SETUP_CERT_INFO_PTR;

class CCertSetup  
{
public:
	BOOL UpdateXmlConfig();//根据安装配置文件更新xml配置
	//输入参数:新安装的容器名,
	//函数说明:根据容器名找到主题名,把其他已经存在主题名设置为无效.
	BOOL DisableOldCert(CString sNewContainerName);	
	DWORD GetLastCert();
	BOOL CheckCBIFIlePass(CString sCBIFile,CString sPass);
	BOOL ParseCBIFileInfo(CString sCBIFile,
		CString &sContainerName,
		CString &sSubjectName,
		CString &sIssueName,
		CString &sNotBefor,
		CString &sNotAfter,
		BYTE &keyType);
	
	BOOL ParseCBIFileAndSaveCertToDisk(CString sCBIFile,CString &sContainerName);
	CString GetLastErrMsg();
	BOOL EnumUsrCertificates();//枚举usbkey证书
	DWORD GetCertCount();	
	CString GetContainerNameByIndex(DWORD dwIndex);
	CString GetIssueByIndex(DWORD dwIndex);
	CString GetSubjectNameByIndex(DWORD dwIndex);
	CString GetNotBeforByIndex(DWORD dwIndex);
	CString GetNotAfterByIndex(DWORD dwIndex);	
	//安装证书,sContainerName:容器名,dwType=0:文件证书,1:智能卡证书
	BOOL InstallCert(CString sContainerName,DWORD dwType);
	CCertSetup();
	virtual ~CCertSetup();
	CString provider;
	CString DevName;
	CString privateDll;
private:
	BOOL WriteFile(CString FileName,BYTE *Data,DWORD dwDataLen);
	BOOL SetXMLConfigNodeInfo(CString sContainerName);
	BOOL LoadSetupConfig();	
	BOOL GetCertInfo(BYTE* cert,DWORD dwCertLen,DWORD dwType,SETUP_CERT_INFO_PTR certInfo);
	BOOL GetCertValidTime(BYTE *cert,DWORD dwCertLen,CString &sIssue,CString &sSubjectName);
	BOOL GetCertName(BYTE *cert,DWORD dwCertLen,CString &sNotBefor,CString &sNotAfter);
	
	
	//dwType :1 加密证书,2:签名证书 3:加密证书pfx,4:签名证书pfx
	CString GetFilePathByContainerName(CString sContainerName,DWORD dwType);
	//dwType 1:加密证书,2:签名证书
	BOOL GetCertAndSavetoDisk(CString sContainerName,DWORD dwType);
	BOOL GetCertAndSavetoDisk(CString sContainerName);
	CIniFile SetupIniFile;
	CString tradeType;
	CString caType;
	CString devType;
	
	
	CString ErrMsg;
	DWORD dwCertCount;//证书个数
	CStringArray sContainerNames;//证书容器名列表(密码卡序列号)
	CStringArray sIssues;//证书颁发者
	CStringArray sSubjectNames;//证书主题名列表
	CStringArray sNotBefors;//证书有效期
	CStringArray sNotAfters;//证书有效期
	SETUP_CERT_INFO CERTINFO;
	
};

#endif // !defined(AFX_CERTSETUP_H__053EEBE2_C95C_42BF_974F_74589AD0A9FA__INCLUDED_)

⌨️ 快捷键说明

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