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

📄 certextpage.cpp

📁 MiniCA V2.0版本源码。《小型CA系统V2.1含源码》发表以来
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//		SetDlgItemText(IDC_EDIT_KEY, m_key);	//复原原选择
		GetDlgItem(IDC_STATIC_EXT8)->EnableWindow(1);	
		GetDlgItem(IDC_EDIT_KEY)->EnableWindow(0);
		GetDlgItem(IDC_STATIC_EXT9)->EnableWindow(0);	
		
		SetDlgItemText(IDC_B_OK,MiniCT_0718);//MiniCT_0719
	}
	else//P7合并
	{
		GetDlgItem(IDC_EXT_CHECK1)->EnableWindow(1);
		GetDlgItem(IDC_EDIT_P12)->EnableWindow(1);
		SetDlgItemText(IDC_STATIC_EXT8,MiniCT_0719);//MiniCT_0719 "选择公钥:"
		m_XpEditP12.SetCaption(MiniCT_0734);//MiniCT_0734 "选择公钥证书文件(可多选)"
		m_XpEditP12.SetFilter(MiniCT_0721);//MiniCT_0721 "公钥文件(*.der;*.cer;*.crt;*.pem)|*.der;*.cer;*.crt;*.pem|所有文件(*.*)|*.*||"

		SetDlgItemText(IDC_STATIC_EXT9,MiniCT_0731);//MiniCT_0731 "选择CRL:"
		m_XpEditKey.SetCaption(MiniCT_0732);//MiniCT_0732 "选择黑名单文件"
		m_XpEditKey.SetFilter(MiniCT_0733);//MiniCT_0733 "黑名单(*.crl)|*.crl|所有文件(*.*)|*.*||"

		GetDlgItem(IDC_STATIC_DEC)->EnableWindow(0);
		GetDlgItem(IDC_STATIC_ENC)->EnableWindow(0);
		GetDlgItem(IDC_EDIT_PASSWORD)->EnableWindow(0);
		GetDlgItem(IDC_EDIT_PASSWORD2)->EnableWindow(0);
		SetDlgItemText(IDC_EDIT_P12, m_cert);	//复原原选择
		SetDlgItemText(IDC_EDIT_KEY, m_key);	//复原原选择
		GetDlgItem(IDC_STATIC_EXT8)->EnableWindow(1);	
		
		GetDlgItem(IDC_EDIT_KEY)->EnableWindow(1);
		GetDlgItem(IDC_STATIC_EXT9)->EnableWindow(1);	
		
		SetDlgItemText(IDC_B_OK,MiniCT_0724);//MiniCT_0724 "合并证书"
	}


}

void CCertExtPage::OnRParse() //提取证书操作
{
	// TODO: Add your control notification handler code here
	m_TypeP12=0;
	SetCheck();
}

void CCertExtPage::OnRCreate() //合并证书操作
{
	// TODO: Add your control notification handler code here
	m_TypeP12=1;
	SetCheck();
}

void CCertExtPage::OnRChangep() //修改密钥操作
{
	// TODO: Add your control notification handler code here
	m_TypeP12=2;
	SetCheck();
}

void CCertExtPage::OnRParse2() //P7证书提取
{
	// TODO: Add your control notification handler code here
	m_TypeP12=3;
	SetCheck();
}

void CCertExtPage::OnRCreate2() //合并证书到P7
{
	// TODO: Add your control notification handler code here
	m_TypeP12 = 4;
	SetCheck();
}

void CCertExtPage::OnRadioDertopem() //TO->PEM
{
	// TODO: Add your control notification handler code here
	m_TypeCert = 0;

	SetDlgItemText(IDC_STATIC_EXT10,MiniCT_0735);//MiniCT_0735 "选择证书:"
	SetDlgItemText(IDC_STATIC_EXT11,MiniCT_0736);//MiniCT_0736 "输出PEM:"

	m_XpEditInfile.SetCaption(MiniCT_0747);//MiniCT_0747 "选择证书文件"
	m_XpEditInfile.SetFilter(MiniCT_0748);//MiniCT_0748 "证书文件(*.der;*.cer;*.crt;*.pem)|*.der;*.cer;*.crt;*.pem|所有文件(*.*)|*.*||"

	m_XpEditOutfile.SetCaption(MiniCT_0749);//MiniCT_0749 "选择要保存的证书文件"
	m_XpEditOutfile.SetFilter(MiniCT_0748);//MiniCT_0748 "证书文件(*.der;*.cer;*.crt;*.pem)|*.der;*.cer;*.crt;*.pem|所有文件(*.*)|*.*||"

	GetDlgItem(IDC_EDIT_OUTFILE)->EnableWindow(1); 
	GetDlgItem(IDC_STATIC_EXT11)->EnableWindow(1);
	GetDlgItem(IDC_EDIT_PASSWORD3)->EnableWindow(1);
	GetDlgItem(IDC_EDIT_PASSWORD4)->EnableWindow(1);
}

void CCertExtPage::OnRadioPemtoder() //->DER
{
	// TODO: Add your control notification handler code here
	m_TypeCert = 1;
	SetDlgItemText(IDC_STATIC_EXT10,MiniCT_0735);//MiniCT_0735 "选择证书:"
	SetDlgItemText(IDC_STATIC_EXT11,MiniCT_0737);//MiniCT_0737 "输出DER:"

	m_XpEditInfile.SetCaption(MiniCT_0747);//MiniCT_0747 "选择证书文件"
	m_XpEditInfile.SetFilter(MiniCT_0748);//MiniCT_0748 "证书文件(*.der;*.cer;*.crt;*.pem)|*.der;*.cer;*.crt;*.pem|所有文件(*.*)|*.*||"

	m_XpEditOutfile.SetCaption(MiniCT_0749);//MiniCT_0749 "选择要保存的证书文件"
	m_XpEditOutfile.SetFilter(MiniCT_0748);//MiniCT_0748 "证书文件(*.der;*.cer;*.crt;*.pem)|*.der;*.cer;*.crt;*.pem|所有文件(*.*)|*.*||"


	GetDlgItem(IDC_EDIT_OUTFILE)->EnableWindow(1);
	GetDlgItem(IDC_STATIC_EXT11)->EnableWindow(1);
	GetDlgItem(IDC_EDIT_PASSWORD3)->EnableWindow(1);
	GetDlgItem(IDC_EDIT_PASSWORD4)->EnableWindow(1);
}

void CCertExtPage::OnRadioRootch() //ROOT CHECK
{
	// TODO: Add your control notification handler code here
	m_TypeCert = 2;
	SetDlgItemText(IDC_STATIC_EXT10,MiniCT_0719);//MiniCT_0719 "选择公钥:"
	SetDlgItemText(IDC_STATIC_EXT11,MiniCT_0738);//MiniCT_0738 "选择ROOT:"

	m_XpEditInfile.SetCaption(MiniCT_0720);//MiniCT_0720
	m_XpEditInfile.SetFilter(MiniCT_0721);//MiniCT_0721

	m_XpEditOutfile.SetCaption(MiniCT_0750);//MiniCT_0750 "选择根证书公钥文件"
	m_XpEditOutfile.SetFilter(MiniCT_0751);//MiniCT_0751 "根证书文件(*.der;*.cer;*.crt;*.pem)|*.der;*.cer;*.crt;*.pem|所有文件(*.*)|*.*||"


	GetDlgItem(IDC_EDIT_OUTFILE)->EnableWindow(1);
	GetDlgItem(IDC_STATIC_EXT11)->EnableWindow(1);
	GetDlgItem(IDC_EDIT_PASSWORD3)->EnableWindow(0);
	GetDlgItem(IDC_EDIT_PASSWORD4)->EnableWindow(0);
}

void CCertExtPage::OnRadioCrlch() //CRL CHECK
{
	// TODO: Add your control notification handler code here
	m_TypeCert = 3;
	SetDlgItemText(IDC_STATIC_EXT10,MiniCT_0719);//MiniCT_0719 "选择公钥:"
	SetDlgItemText(IDC_STATIC_EXT11,MiniCT_0731);//MiniCT_0731 "选择CRL:"

	m_XpEditInfile.SetCaption(MiniCT_0720);//MiniCT_0720
	m_XpEditInfile.SetFilter(MiniCT_0721);//MiniCT_0721

	m_XpEditOutfile.SetCaption(MiniCT_0732);//MiniCT_0732
	m_XpEditOutfile.SetFilter(MiniCT_0733);//MiniCT_0733
	
	GetDlgItem(IDC_EDIT_OUTFILE)->EnableWindow(1);
	GetDlgItem(IDC_STATIC_EXT11)->EnableWindow(1);
	GetDlgItem(IDC_EDIT_PASSWORD3)->EnableWindow(0);
	GetDlgItem(IDC_EDIT_PASSWORD4)->EnableWindow(0);
}

void CCertExtPage::OnRadioTiemch() //TIME CHECK
{
	// TODO: Add your control notification handler code here
	m_TypeCert = 4; 
	SetDlgItemText(IDC_STATIC_EXT10,MiniCT_0719);//MiniCT_0719 "选择公钥:"

	m_XpEditInfile.SetCaption(MiniCT_0720);//MiniCT_0720
	m_XpEditInfile.SetFilter(MiniCT_0721);//MiniCT_0721

	GetDlgItem(IDC_EDIT_OUTFILE)->EnableWindow(0);
	GetDlgItem(IDC_STATIC_EXT11)->EnableWindow(0);
	GetDlgItem(IDC_EDIT_PASSWORD3)->EnableWindow(0);
	GetDlgItem(IDC_EDIT_PASSWORD4)->EnableWindow(0);
}

void CCertExtPage::OnRadioKeypairch() //KEY PARI CHECK
{
	// TODO: Add your control notification handler code here
	m_TypeCert = 5;	
	SetDlgItemText(IDC_STATIC_EXT10,MiniCT_0719);//MiniCT_0719 "选择公钥:"
	SetDlgItemText(IDC_STATIC_EXT11,MiniCT_0713);//MiniCT_0713 "选择私钥:"

	m_XpEditInfile.SetCaption(MiniCT_0720);//MiniCT_0720
	m_XpEditInfile.SetFilter(MiniCT_0721);//MiniCT_0721

	m_XpEditOutfile.SetCaption(MiniCT_0714);//MiniCT_0714
	m_XpEditOutfile.SetFilter(MiniCT_0715);//MiniCT_0715


	GetDlgItem(IDC_EDIT_OUTFILE)->EnableWindow(1);
	GetDlgItem(IDC_STATIC_EXT11)->EnableWindow(1);
	GetDlgItem(IDC_EDIT_PASSWORD3)->EnableWindow(1);
	GetDlgItem(IDC_EDIT_PASSWORD4)->EnableWindow(0);
}

void CCertExtPage::OnBOk2() 
{
	// TODO: Add your control notification handler code here
	//获得输入文件和输出文件
	CString infile,outfile;
	char out[100]={0};
	GetDlgItemText(IDC_EDIT_INFILE,infile);
	GetDlgItemText(IDC_EDIT_OUTFILE,outfile);

	CString strPwdEnc,strPwdDec;//加密密钥,和解密密钥
	GetDlgItemText(IDC_EDIT_PASSWORD3,strPwdDec);
	GetDlgItemText(IDC_EDIT_PASSWORD4,strPwdEnc);

	
	if(m_TypeCert == 0)//der -> pem
	{
		if(infile=="")
		{
			AddMsg(MiniCT_0739,M_WARING);//MiniCT_0739 "没有选择证书文件"
			return;
		}
		if(outfile=="")
		{
			AddMsg(MiniCT_0740,M_WARING);//MiniCT_0740 "没有指定PEM文件"
			return;
		}
		
		if(CertFormatConver(infile.GetBuffer(0),0,strPwdDec.GetBuffer(0),
			outfile.GetBuffer(0),0,strPwdEnc.GetBuffer(0),PEM,out))
			AddMsg(out);
		else
			AddMsg(out,M_ERROR);
		
	}
	else if(m_TypeCert == 1) //pem -> der
	{
		if(infile=="")
		{
			AddMsg(MiniCT_0739,M_WARING);//MiniCT_0739 "没有选择证书文件"
			return;
		}
		if(outfile=="")
		{
			AddMsg(MiniCT_0741,M_WARING);//MiniCT_0741 "没有指定DER文件"
			return;
		}
		
		if(CertFormatConver(infile.GetBuffer(0),0,strPwdDec.GetBuffer(0),
			outfile.GetBuffer(0),0,strPwdEnc.GetBuffer(0),DER,out))
			AddMsg(out);
		else
			AddMsg(out,M_ERROR);	
	}
	else if(m_TypeCert == 2)
	{
		if(infile=="")
		{
			AddMsg(MiniCT_0739,M_WARING);//MiniCT_0739 "没有选择证书文件"
			return;
		}
		if(outfile=="")
		{
			AddMsg(MiniCT_0742,M_WARING);//MiniCT_0742 "没有选择根证书文件"
			return;
		}
		if(CheckCertWithRoot(infile.GetBuffer(0),0,outfile.GetBuffer(0),0,out))
		{
			AddMsg(out);
		}
		else
		{
			AddMsg(out,M_ERROR);
		}
	}
	else if(m_TypeCert == 3)
	{
		if(infile=="")
		{
			AddMsg(MiniCT_0743,M_WARING);//MiniCT_0743 "没有选择公钥文件"
			return;
		}
		if(outfile=="")
		{
			AddMsg(MiniCT_0744,M_WARING);//MiniCT_0744 "没有选择黑名单文件"
			return;
		}
		if(CheckCertWithCrl(infile.GetBuffer(0),0,outfile.GetBuffer(0),0,out))
		{
			AddMsg(out);
		}
		else
		{
			AddMsg(out,M_ERROR);
		}
	}
	else if(m_TypeCert == 4)
	{
		if(infile=="")
		{
			AddMsg(MiniCT_0743,M_WARING);//MiniCT_0743 "没有选择公钥文件"
			return;
		}
		if(CheckCertLife(infile.GetBuffer(0),0,out))
		{
			AddMsg(out);
		}
		else
		{
			AddMsg(out,M_ERROR);
		}
	}
	else if(m_TypeCert == 5)
	{
		if(infile=="")
		{
			AddMsg(MiniCT_0743,M_WARING);//MiniCT_0743 "没有选择公钥文件"
			return;
		}
		if(outfile=="")
		{
			AddMsg(MiniCT_0745,M_WARING);//MiniCT_0745 "没有选择私钥文件"
			return;
		}
		BOOL bCheck = CertPairCheck(infile.GetBuffer(0),outfile.GetBuffer(0),out,strPwdDec.GetBuffer(0));

		infile.ReleaseBuffer();
		outfile.ReleaseBuffer();
		strPwdDec.ReleaseBuffer();

		if(bCheck)
			AddMsg(MiniCT_0746);//MiniCT_0746 "公私钥对匹配"
		else
			AddMsg(out,M_ERROR);		
	}
}

BOOL CCertExtPage::PreTranslateMessage(MSG* pMsg)
{
	// CG: The following block was added by the ToolTips component.	{		// Let the ToolTip process this message.		m_toolTip.RelayEvent(pMsg);	}	return CPropertyPage::PreTranslateMessage(pMsg);	// CG: This was added by the ToolTips component.
}

void CCertExtPage::AddMsg(CString info, DWORD type)
{
	((CMiniMainDlg *)GetParent())->AddMsg("数证辅助",info, type);	//MiniCT_0001

}

void CCertExtPage::OnCheck1() 
{
	// TODO: Add your control notification handler code here
	int check=((CButton *)GetDlgItem(IDC_EXT_CHECK1))->GetCheck();
	if(check)
	{
		m_CertFormat = DER;
	}
	else
	{
		m_CertFormat = PEM;
	}
}

void CCertExtPage::TranslateCT()
{
	SetDlgItemText(IDC_STATIC_EXT1, MiniCT_11201);
	SetDlgItemText(IDC_STATIC_EXT2, MiniCT_11202);
	SetDlgItemText(IDC_STATIC_EXT3, MiniCT_11203);
	SetDlgItemText(IDC_STATIC_EXT4, MiniCT_11204);
	SetDlgItemText(IDC_STATIC_EXT5, MiniCT_11205);
	SetDlgItemText(IDC_STATIC_EXT6, MiniCT_11206);
	SetDlgItemText(IDC_STATIC_EXT7, MiniCT_11207);
	SetDlgItemText(IDC_STATIC_EXT8, MiniCT_11208);
	SetDlgItemText(IDC_STATIC_EXT9, MiniCT_11209);
	SetDlgItemText(IDC_STATIC_EXT10, MiniCT_11210);
	SetDlgItemText(IDC_STATIC_EXT11, MiniCT_11211);
	SetDlgItemText(IDC_STATIC_DEC, MiniCT_11212);
	SetDlgItemText(IDC_STATIC_ENC, MiniCT_11213);
	SetDlgItemText(IDC_STATIC_DEC2, MiniCT_11214);
	SetDlgItemText(IDC_STATIC_ENC2, MiniCT_11215);
	SetDlgItemText(IDC_R_PARSE, MiniCT_11216);
	SetDlgItemText(IDC_R_CREATE, MiniCT_11217);
	SetDlgItemText(IDC_R_CHANGEP, MiniCT_11218);
	SetDlgItemText(IDC_B_OK, MiniCT_11219);
	SetDlgItemText(IDC_RADIO_DERTOPEM, MiniCT_11220);
	SetDlgItemText(IDC_RADIO_PEMTODER, MiniCT_11221);
	SetDlgItemText(IDC_RADIO_CRLCH, MiniCT_11222);
	SetDlgItemText(IDC_RADIO_ROOTCH, MiniCT_11223);
	SetDlgItemText(IDC_RADIO_KEYPAIRCH, MiniCT_11224);
	SetDlgItemText(IDC_RADIO_TIEMCH, MiniCT_11225);
	SetDlgItemText(IDC_B_OK2, MiniCT_11226);
	SetDlgItemText(IDC_EXT_CHECK1, MiniCT_11227);
	SetDlgItemText(IDC_R_PARSE2, MiniCT_11228);
	SetDlgItemText(IDC_R_CREATE2, MiniCT_11229);
}

⌨️ 快捷键说明

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