📄 certextpage.cpp
字号:
// CertExtPage.cpp : implementation file
//
#include "stdafx.h"
#include "MiniCA.h"
#include "CertExtPage.h"
#include "MiniMainDlg.h"
#include ".\GenericClass\Language.h"
#include "MiniCt.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCertExtPage property page
IMPLEMENT_DYNCREATE(CCertExtPage, CPropertyPage)
CCertExtPage::CCertExtPage() : CPropertyPage(CCertExtPage::IDD)
{
//{{AFX_DATA_INIT(CCertExtPage)
m_TypeP12 = 0;
m_TypeCert = 0;
//}}AFX_DATA_INIT
m_CertFormat = PEM;
}
CCertExtPage::~CCertExtPage()
{
}
void CCertExtPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCertExtPage)
// DDX_Control(pDX, IDC_EDIT_PASSWORD4, m_XpEditPwd4);
// DDX_Control(pDX, IDC_EDIT_PASSWORD3, m_XpEditPwd3);
// DDX_Control(pDX, IDC_EDIT_PASSWORD2, m_XpEditPwd2);
// DDX_Control(pDX, IDC_EDIT_PASSWORD, m_XpEditPwd);
DDX_Control(pDX, IDC_B_OK2, m_Bok2);
DDX_Control(pDX, IDC_B_OK, m_Bok);
DDX_Radio(pDX, IDC_R_PARSE, m_TypeP12);
DDX_Radio(pDX, IDC_RADIO_DERTOPEM, m_TypeCert);
//}}AFX_DATA_MAP
DDX_FileEditCtrl(pDX, IDC_EDIT_PATH, m_XpEditPath, FEC_FOLDER);
DDX_FileEditCtrl(pDX, IDC_EDIT_P12, m_XpEditP12, FEC_FILEOPEN);
DDX_FileEditCtrl(pDX, IDC_EDIT_KEY, m_XpEditKey, FEC_FILEOPEN);
DDX_FileEditCtrl(pDX, IDC_EDIT_INFILE, m_XpEditInfile, FEC_FILEOPEN);
DDX_FileEditCtrl(pDX, IDC_EDIT_OUTFILE, m_XpEditOutfile, FEC_FILEOPEN);
}
BEGIN_MESSAGE_MAP(CCertExtPage, CPropertyPage)
//{{AFX_MSG_MAP(CCertExtPage)
ON_BN_CLICKED(IDC_B_OK, OnBOk)
ON_BN_CLICKED(IDC_R_PARSE, OnRParse)
ON_BN_CLICKED(IDC_R_CREATE, OnRCreate)
ON_BN_CLICKED(IDC_R_CHANGEP, OnRChangep)
ON_BN_CLICKED(IDC_RADIO_PEMTODER, OnRadioPemtoder)
ON_BN_CLICKED(IDC_RADIO_DERTOPEM, OnRadioDertopem)
ON_BN_CLICKED(IDC_RADIO_ROOTCH, OnRadioRootch)
ON_BN_CLICKED(IDC_RADIO_CRLCH, OnRadioCrlch)
ON_BN_CLICKED(IDC_RADIO_TIEMCH, OnRadioTiemch)
ON_BN_CLICKED(IDC_RADIO_KEYPAIRCH, OnRadioKeypairch)
ON_BN_CLICKED(IDC_B_OK2, OnBOk2)
ON_BN_CLICKED(IDC_R_PARSE2, OnRParse2)
ON_BN_CLICKED(IDC_R_CREATE2, OnRCreate2)
ON_BN_CLICKED(IDC_EXT_CHECK1, OnCheck1)
//}}AFX_MSG_MAP
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTipNotify)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCertExtPage message handlers
BOOL CCertExtPage::OnToolTipNotify( UINT id, NMHDR * pTTTStruct, LRESULT * pResult )
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pTTTStruct;
UINT nID = pTTTStruct->idFrom;
switch(nID)
{
case IDC_EDIT_P12://0-P12提取 1-P12合并 2-P12改密码 3-提取P7 4-合并P7
{
if(m_TypeP12 == 0 || m_TypeP12 == 2)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("选择PFX文件"));//设置
}
else if(m_TypeP12 == 1 || m_TypeP12 == 4)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("选择公钥证书"));//设置
}
else if(m_TypeP12 == 3)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("选择P7B文件"));//设置
}
return TRUE;
}
case IDC_EDIT_KEY://选择PFX,选择公钥
{
if(m_TypeP12 == 1)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("选择私钥证书"));//设置
}
else if(m_TypeP12 == 4)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("选择黑名单文件"));//设置
}
else
{
strcpy(pTTT->szText, "");//设置
}
return TRUE;
}
case IDC_EDIT_PASSWORD://PFX包的密钥
{
//设置相应的显示字串
if(m_TypeP12 == 0)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("用于解密PFX包的密钥"));//设置
}
else if(m_TypeP12 == 1)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("用于解密私钥的密钥"));//设置
}
else
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("PFX包原密钥"));//设置
}
return TRUE;
}
case IDC_EDIT_PASSWORD2://PFX包的密钥
{
//设置相应的显示字串
if(m_TypeP12 == 0)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("用于加密私钥的密钥"));//设置
}
else if(m_TypeP12 == 1)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("用于加密PFX包的密钥"));//设置
}
else
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("PFX包新密钥"));//设置
}
return TRUE;
}
case IDC_B_OK://PFX包的密钥
{
CString str;
GetDlgItemText(IDC_EDIT_PASSWORD2,str);//加密密钥
//设置相应的显示字串
if(m_TypeP12 == 0)
{
if(!str.IsEmpty())
strcpy(pTTT->szText,CMiniCaApp::NormalCode("提取公私钥证书\r当前私钥保护"));//设置
else
strcpy(pTTT->szText,CMiniCaApp::NormalCode("提取公私钥证书\r当前私钥未保护"));//设置
}
else if(m_TypeP12 == 1)
{
if(!str.IsEmpty())
strcpy(pTTT->szText,CMiniCaApp::NormalCode("合并公私钥证书\r生成PFX包并加密"));//设置
else
strcpy(pTTT->szText,CMiniCaApp::NormalCode("合并公私钥证书\r生成PFX包"));//设置
}
else if(m_TypeP12 == 2)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("修改PFX包密码为指定密码"));//设置
}
else if(m_TypeP12 == 3)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("分解P7文件\r分解为公钥证书和黑名单文件"));//设置
}
else if(m_TypeP12 == 4)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("合并P7文件\r合并公钥证书和黑名单文件"));//设置
}
return TRUE;
}
case IDC_EDIT_INFILE://选择
{
//设置相应的显示字串
if(m_TypeCert == 0 || m_TypeCert == 1 )
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("选择证书文件"));//设置
}
else
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("选择公钥证书"));//设置
}
return TRUE;
}
case IDC_EDIT_OUTFILE://PFX包的密钥
{
//设置相应的显示字串
if(m_TypeCert == 0)
{
strcpy(pTTT->szText, "转换后的PEM格式证书存储信息");//设置
}
else if(m_TypeCert == 1)
{
strcpy(pTTT->szText, "转换后的DER格式证书存储信息");//设置
}
else if(m_TypeCert == 2)
{
strcpy(pTTT->szText, "选择根证书");//设置
}
else if(m_TypeCert == 3)
{
strcpy(pTTT->szText, "选择黑名单");//设置
}
else if(m_TypeCert == 5)
{
strcpy(pTTT->szText, "选择私钥文件");//设置
}
return TRUE;
}
case IDC_B_OK2://PFX包的密钥
{
//设置相应的显示字串
if(m_TypeCert == 0)
{
CString str;
GetDlgItemText(IDC_EDIT_PASSWORD4,str);//加密密钥
if(str.IsEmpty())
strcpy(pTTT->szText,CMiniCaApp::NormalCode("转换证书为PEM格式\r当前私钥未保护"));//设置
else
strcpy(pTTT->szText,CMiniCaApp::NormalCode("转换证书为PEM格式\r当前私钥保护"));//设置
}
else if(m_TypeCert == 1)
{
CString str;
GetDlgItemText(IDC_EDIT_PASSWORD4,str);//加密密钥
if(str.IsEmpty())
strcpy(pTTT->szText,CMiniCaApp::NormalCode("转换证书为DER格式\r当前私钥未保护"));//设置
else
strcpy(pTTT->szText,CMiniCaApp::NormalCode("转换证书为DER格式\r当前私钥保护"));//设置
}
else if(m_TypeCert == 2)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("根证书验证\r验证证书是否由根证书颁发"));//设置
}
else if(m_TypeCert == 3)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("黑名单验证\r验证证书是否在作废列表中"));//设置
}
else if(m_TypeCert == 4)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("时效性验证\r验证证书使用期限是否有效期"));//设置
}
else if(m_TypeCert == 5)
{
strcpy(pTTT->szText,CMiniCaApp::NormalCode("公私钥对验证\r验证公私钥证书密钥对是否匹配"));//设置
}
return TRUE;
}
}
return(FALSE);
}
BOOL CCertExtPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
if(!((CMiniCaApp *)AfxGetApp())->IsXpStyle())
{
ClassXP(GetDlgItem(IDC_R_PARSE)->m_hWnd,TRUE);
ClassXP(GetDlgItem(IDC_R_CREATE)->m_hWnd,TRUE);
ClassXP(GetDlgItem(IDC_R_CHANGEP)->m_hWnd,TRUE);
ClassXP(GetDlgItem(IDC_R_PARSE2)->m_hWnd,TRUE);
ClassXP(GetDlgItem(IDC_R_CREATE2)->m_hWnd,TRUE);
ClassXP(GetDlgItem(IDC_EXT_CHECK1)->m_hWnd,TRUE);
ClassXP(GetDlgItem(IDC_RADIO_DERTOPEM)->m_hWnd,TRUE);
ClassXP(GetDlgItem(IDC_RADIO_ROOTCH)->m_hWnd,TRUE);
ClassXP(GetDlgItem(IDC_RADIO_TIEMCH)->m_hWnd,TRUE);
ClassXP(GetDlgItem(IDC_RADIO_PEMTODER)->m_hWnd,TRUE);
ClassXP(GetDlgItem(IDC_RADIO_KEYPAIRCH)->m_hWnd,TRUE);
ClassXP(GetDlgItem(IDC_RADIO_CRLCH)->m_hWnd,TRUE);
ClassXP(GetDlgItem(IDC_EDIT_PASSWORD)->m_hWnd,TRUE);
ClassXP(GetDlgItem(IDC_EDIT_PASSWORD2)->m_hWnd,TRUE);
ClassXP(GetDlgItem(IDC_EDIT_PASSWORD3)->m_hWnd,TRUE);
ClassXP(GetDlgItem(IDC_EDIT_PASSWORD4)->m_hWnd,TRUE);
}
SetDlgItemText(IDC_EDIT_PASSWORD, "MiniCA");
SetDlgItemText(IDC_EDIT_PASSWORD2, "MiniCA");
SetDlgItemText(IDC_EDIT_PASSWORD3, "MiniCA");
SetDlgItemText(IDC_EDIT_PASSWORD4, "MiniCA");
SetCheck();
OnRadioDertopem();
CXPStyleButtonST::SetAllThemeHelper(this, ((CMiniCaApp *)AfxGetApp())->GetThemeHelperST());
// m_Bsout.SetIcon(IDI_ICON_SELECTDIR);
// m_Bsout.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
// m_Bsin.SetIcon(IDI_ICON_SELECTDIR);
// m_Bsin.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
// m_Bpub.SetIcon(IDI_ICON_SELECTDIR);
// m_Bpub.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
// m_Bpath.SetIcon(IDI_ICON_DIR);
// m_Bpath.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
m_Bok2.SetIcon(IDI_ICON20);
m_Bok2.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
m_Bok.SetIcon(IDI_ICON20);
m_Bok.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
// m_Bkey.SetIcon(IDI_ICON_SELECTDIR);
// m_Bkey.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
HANDLE handle = ::LoadImage(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDI_ICON_DIR),
IMAGE_ICON,
0,
0,
LR_DEFAULTCOLOR);
m_XpEditPath.SetButtonImage(handle, PJAI_ICON | PJAI_AUTODELETE | PJAI_STRETCHED );
m_XpEditPath.SetButtonWidth(18);
m_XpEditP12.SetButtonImage(handle, PJAI_ICON | PJAI_AUTODELETE | PJAI_STRETCHED );
m_XpEditP12.SetButtonWidth(18);
// m_XpEditP12.ModifyStyleEx(0, WS_EX_ACCEPTFILES);
m_XpEditKey.SetButtonImage(handle, PJAI_ICON | PJAI_AUTODELETE | PJAI_STRETCHED );
m_XpEditKey.SetButtonWidth(18);
m_XpEditInfile.SetButtonImage(handle, PJAI_ICON | PJAI_AUTODELETE | PJAI_STRETCHED );
m_XpEditInfile.SetButtonWidth(18);
m_XpEditOutfile.SetButtonImage(handle, PJAI_ICON | PJAI_AUTODELETE | PJAI_STRETCHED );
m_XpEditOutfile.SetButtonWidth(18);
// CG: The following block was added by the ToolTips component. { // Create the ToolTip control. m_toolTip.Create(this); // TODO: Use one of the following forms to add controls:// m_toolTip.AddTool(GetDlgItem(IDC_B_PATH), CMiniCaApp::NormalCode("文件存储路径")); m_toolTip.AddTool(GetDlgItem(IDC_EDIT_PATH), "操作结果文件存储路径");
m_toolTip.AddTool(GetDlgItem(IDC_R_PARSE), CMiniCaApp::NormalCode("分解PKCS#12包\r从PKCS#12包中提取公私钥文件")); m_toolTip.AddTool(GetDlgItem(IDC_R_CREATE), CMiniCaApp::NormalCode("合并PKCS#12包\r将公私钥文件合并成PKCS#12包"));
m_toolTip.AddTool(GetDlgItem(IDC_R_CHANGEP), CMiniCaApp::NormalCode("修改PKCS#12包密码"));
m_toolTip.AddTool(GetDlgItem(IDC_RADIO_DERTOPEM), CMiniCaApp::NormalCode("转换证书格式为PEM"));
m_toolTip.AddTool(GetDlgItem(IDC_RADIO_PEMTODER), CMiniCaApp::NormalCode("转换证书格式为DER"));
m_toolTip.AddTool(GetDlgItem(IDC_RADIO_ROOTCH), CMiniCaApp::NormalCode("检验证书是否为根机构颁发"));
m_toolTip.AddTool(GetDlgItem(IDC_RADIO_CRLCH), CMiniCaApp::NormalCode("检验证书是否在黑名单中"));
m_toolTip.AddTool(GetDlgItem(IDC_RADIO_TIEMCH), CMiniCaApp::NormalCode("检验证书是否在有效期内"));
m_toolTip.AddTool(GetDlgItem(IDC_RADIO_KEYPAIRCH), CMiniCaApp::NormalCode("检验公私钥对是否匹配"));
m_toolTip.AddTool(GetDlgItem(IDC_EDIT_PASSWORD3), CMiniCaApp::NormalCode("解密密钥\r解密私钥文件的密码"));
m_toolTip.AddTool(GetDlgItem(IDC_EDIT_PASSWORD4), CMiniCaApp::NormalCode("加密密钥\r加密私钥文件的密码"));
m_toolTip.AddTool(GetDlgItem(IDC_R_PARSE2), CMiniCaApp::NormalCode("分解PKCS#7包\r从PKCS#7包中提取公钥和黑名单文件"));
m_toolTip.AddTool(GetDlgItem(IDC_R_CREATE2), CMiniCaApp::NormalCode("合并PKCS#7包\r将公钥和黑名单文件合并成PKCS#7包"));
m_toolTip.AddTool(GetDlgItem(IDC_EXT_CHECK1), "新生成证书文件格式");
m_toolTip.AddTool(GetDlgItem(IDC_EDIT_P12), LPSTR_TEXTCALLBACK);
m_toolTip.AddTool(GetDlgItem(IDC_EDIT_KEY), LPSTR_TEXTCALLBACK);
m_toolTip.AddTool(GetDlgItem(IDC_EDIT_PASSWORD), LPSTR_TEXTCALLBACK);
m_toolTip.AddTool(GetDlgItem(IDC_EDIT_PASSWORD2), LPSTR_TEXTCALLBACK);
m_toolTip.AddTool(GetDlgItem(IDC_B_OK), LPSTR_TEXTCALLBACK);
m_toolTip.AddTool(GetDlgItem(IDC_STATIC_EXT10), LPSTR_TEXTCALLBACK);
m_toolTip.AddTool(GetDlgItem(IDC_B_OK2), LPSTR_TEXTCALLBACK);
m_toolTip.AddTool(GetDlgItem(IDC_STATIC_EXT11), LPSTR_TEXTCALLBACK);
m_toolTip.AddTool(GetDlgItem(IDC_EDIT_INFILE), LPSTR_TEXTCALLBACK);
m_toolTip.AddTool(GetDlgItem(IDC_EDIT_OUTFILE), LPSTR_TEXTCALLBACK);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -