📄 certsetup.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 + -