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

📄 safeinfopage.cpp

📁 MiniCA V2.0版本源码。《小型CA系统V2.1含源码》发表以来
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		&md_len, outMsg))
	{
		AddMsg(outMsg,M_ERROR);
	}
	else
	{
		SetDlgItemText(IDC_EDIT_OUTFILE,CMiniCaApp::LmToHText(md_value,md_len));
		SetDlgItemText(IDC_EDIT_INFILE, strIn);
		Disply(TRUE); 
		AddMsg(MiniCT_0807);	//MiniCT_0807 "信息摘要成功"
	}	
}

void CSafeInfoPage::OnBsign() 
{
	// TODO: Add your control notification handler code here
	CString mdname,strIn;
	char outMsg[uMsgLen]="";
	char strOut[dMaxMem] = {0};
	GetDlgItemText(IDC_COMBO_DIGEST,mdname);
	GetDlgItemText(IDC_EDIT_INFILE,strIn);
	if(strIn.IsEmpty())
	{
		AddMsg(MiniCT_0808,M_ERROR);		//MiniCT_0808 "请输入要签名信息"
		return;
	}
	UINT outlen=0;

	if(m_pPageCdb->GetCertPair(CSafeDataCdbPage::SIGN, FALSE, m_strKey,m_lenKey,m_p12Pwd))//得到私钥
	{
		if(!CEvp::Sign(m_strKey,m_lenKey,m_p12Pwd.GetBuffer(0),mdname.GetBuffer(0),
			strIn.GetBuffer(0),strlen(strIn),
			strOut,outlen,outMsg))
		{
			AddMsg(outMsg,M_ERROR);
		}
		else
		{
			SetDlgItemText(IDC_EDIT_OUTFILE,CMiniCaApp::LmToHText((UCHAR *)strOut,outlen));
			SetDlgItemText(IDC_EDIT_INFILE, strIn);
			Disply(TRUE);
			AddMsg(MiniCT_0809);	//MiniCT_0809 "信息签名成功"
		}
	}
	else
		AddMsg(MiniCT_0810,M_ERROR);	//MiniCT_0810
}

void CSafeInfoPage::OnBvsign() 
{
	// TODO: Add your control notification handler code here
	CString mdname,filein,fileout;
	char outMsg[uMsgLen]="";
	GetDlgItemText(IDC_COMBO_DIGEST,mdname);
	GetDlgItemText(IDC_EDIT_INFILE,filein);
	GetDlgItemText(IDC_EDIT_OUTFILE,fileout);
	if(filein.IsEmpty())
	{
		AddMsg(MiniCT_0811,M_ERROR);		//MiniCT_0811
		return;
	}
	
	if(m_pPageCdb->GetCertPair(CSafeDataCdbPage::SIGN, TRUE, m_strKey,m_lenKey,m_p12Pwd))//得到公钥
	{
		char strLm[dMaxMem] = {0};
		UINT uLm = CMiniCaApp::HTextToLm(fileout.GetBuffer(0),strLm);
		if(!CEvp::VerifySign(m_strKey,m_lenKey,m_p12Pwd.GetBuffer(0),
			mdname.GetBuffer(0),filein.GetBuffer(0),strlen(filein),
			strLm,outMsg))
		{
			AddMsg(outMsg,M_ERROR);
		}
		else
		{
			AddMsg(MiniCT_0812);//MiniCT_0812
			Disply(TRUE);
//			SetDlgItemText(IDC_EDIT_OUTFILE, fileout);
//			SetDlgItemText(IDC_EDIT_INFILE, filein);

		}
	}
	else
		AddMsg(MiniCT_0810,M_ERROR);	//MiniCT_0810 "取得密钥失败"
}

void CSafeInfoPage::OnBrsacert() 
{
	// TODO: Add your control notification handler code here
	CString cert,filein,fileout;
	char outMsg[uMsgLen]="";
	char strOut[dMaxMem] ={0};
	GetDlgItemText(IDC_EDIT_INFILE,filein);
	if(filein.IsEmpty())
	{
		AddMsg(MiniCT_0800,M_ERROR);		//MiniCT_0800 "请输入要加密信息"
		return;
	}
	DWORD len = dMaxMem;

	if(m_pPageCdb->GetCertPair(CSafeDataCdbPage::PubEnc, TRUE, m_strKey,m_lenKey,m_p12Pwd))//得到公钥
	{
		if(!CEvp::RSAPubEnc((BYTE *)m_strKey,m_lenKey,m_p12Pwd.GetBuffer(0),
			(BYTE *)filein.GetBuffer(0),strlen(filein),(BYTE *)strOut,len,outMsg))
		{
			AddMsg(outMsg,M_ERROR);
		}
		else
		{
			AddMsg(MiniCT_0813);		//MiniCT_0813 "公钥加密信息成功"
//			m_XpEditInfile.SetTextColor(RGB(0,0,0));
			SetDlgItemText(IDC_EDIT_INFILE, CMiniCaApp::LmToHText((UCHAR *)strOut,len));
			Disply();
		}
		
	}
	else
		AddMsg(MiniCT_0810,M_ERROR);
	
}

void CSafeInfoPage::OnBrsakey() 
{
	// TODO: Add your control notification handler code here
	CString key,filein,fileout;
	char outMsg[uMsgLen]="";
	char strOut[dMaxMem] = {0};
	GetDlgItemText(IDC_EDIT_INFILE,filein);
	DWORD len = dMaxMem;
	if(filein.IsEmpty())
	{
		AddMsg(MiniCT_0814,M_ERROR);		
		return;
	}
	
	if(m_pPageCdb->GetCertPair(CSafeDataCdbPage::PrivEnc, FALSE, m_strKey,m_lenKey,m_p12Pwd))//得到私钥
	{
		char strLm[dMaxMem] = {0};
		UINT uLm = CMiniCaApp::HTextToLm(filein.GetBuffer(0),strLm);
		if(!CEvp::RSAPrivDec((BYTE *)m_strKey,m_lenKey,m_p12Pwd.GetBuffer(0),(BYTE *)strLm, 
			uLm, (BYTE *)strOut,len ,outMsg))
		{
//			m_XpEditInfile.SetTextColor(RGB(128,0,0));
			AddMsg(outMsg,M_ERROR);
		}
		else
		{
//			m_XpEditInfile.SetTextColor(RGB(0,128,0));
			SetDlgItemText(IDC_EDIT_INFILE,(char *)strOut);
			Disply();
			AddMsg(MiniCT_0815);
		}
		
	}
	else
		AddMsg(MiniCT_0810,M_ERROR);	
}

void CSafeInfoPage::OnBrsakey2() 
{
	// TODO: Add your control notification handler code here
	CString key,filein,fileout;
	char outMsg[uMsgLen]="";
	GetDlgItemText(IDC_EDIT_INFILE,filein);
	if(filein.IsEmpty())
	{
		AddMsg(MiniCT_0800,M_ERROR);		
		return;
	}		
	if(m_pPageCdb->GetCertPair(CSafeDataCdbPage::PrivEnc, FALSE, m_strKey,m_lenKey,m_p12Pwd))//得到私钥
	{
		char strLm[dMaxMem] = {0};
		DWORD len = dMaxMem;
		if(!CEvp::RSAPrivEnc((BYTE *)m_strKey,m_lenKey,m_p12Pwd.GetBuffer(0),(BYTE *)filein.GetBuffer(0), 
			filein.GetLength(),(BYTE *)strLm,len,outMsg))
		{
			AddMsg(outMsg,M_ERROR);
		}
		else
		{
//			m_XpEditInfile.SetTextColor(RGB(0,0,0));
			SetDlgItemText(IDC_EDIT_INFILE, CMiniCaApp::LmToHText((UCHAR *)strLm,len));
			Disply();
			AddMsg(MiniCT_0816);
		}	
	}
	else
		AddMsg(MiniCT_0810,M_ERROR);	
}
	
void CSafeInfoPage::OnBrsacert2() 
{
	// TODO: Add your control notification handler code here
	CString key,filein,fileout;
	char outMsg[uMsgLen]="";
	char strOut[dMaxMem] = {0};
	GetDlgItemText(IDC_EDIT_INFILE,filein);
	DWORD len = dMaxMem;
	if(filein.IsEmpty())
	{
		AddMsg(MiniCT_0814,M_ERROR);		
		return;
	}
	
	if(m_pPageCdb->GetCertPair(CSafeDataCdbPage::PubEnc, TRUE, m_strKey,m_lenKey,m_p12Pwd))//得到公钥
	{
		char strLm[dMaxMem] = {0};
		DWORD uLm = CMiniCaApp::HTextToLm(filein.GetBuffer(0),strLm);
		if(!CEvp::RSAPubDec((BYTE *)m_strKey,m_lenKey,m_p12Pwd.GetBuffer(0),(BYTE *)strLm, 
			uLm,(BYTE *)strOut,len,outMsg))
		{
//			m_XpEditInfile.SetTextColor(RGB(128,0,0));
			AddMsg(outMsg,M_ERROR);
		}
		else
		{
//			m_XpEditInfile.SetTextColor(RGB(0,128,0));
			SetDlgItemText(IDC_EDIT_INFILE,(char *)strOut);
			Disply();
			AddMsg(MiniCT_0817);
		}
		
	}
	else
		AddMsg(MiniCT_0810,M_ERROR);	
}

void CSafeInfoPage::Disply(BOOL bDisply)
{
	CWnd * pInWnd = GetDlgItem(IDC_EDIT_INFILE);
	CWnd * pOutWnd = GetDlgItem(IDC_EDIT_OUTFILE);
	CRect Rect;

	if(bDisply)
	{
		GetDlgItem(IDC_STATIC_SHORT)->GetWindowRect(Rect);
		pOutWnd->ShowWindow(SW_SHOW);
	}
	else
	{
		GetDlgItem(IDC_STATIC_LONG)->GetWindowRect(Rect);
		pOutWnd->ShowWindow(SW_HIDE);
	}

	pInWnd->SetWindowPos(NULL, 0, 0, Rect.Width(), Rect.Height(),
		SWP_NOMOVE|SWP_NOZORDER | SWP_NOACTIVATE|SWP_SHOWWINDOW);

}

void CSafeInfoPage::TranslateCT()
{
	SetDlgItemText(IDC_STATIC_EVP5 ,MiniCT_11601);
	SetDlgItemText(IDC_STATIC_EVP6 ,MiniCT_11602);
	SetDlgItemText(IDC_STATIC_EVP7 ,MiniCT_11603);
	SetDlgItemText(IDC_STATIC_EVP8 ,MiniCT_11604);
	SetDlgItemText(IDC_STATIC_EVP9 ,MiniCT_11605);
	SetDlgItemText(IDC_BENC ,MiniCT_11606);
	SetDlgItemText(IDC_BDEC ,MiniCT_11607);
	SetDlgItemText(IDC_BDIGEST ,MiniCT_11608);
	SetDlgItemText(IDC_BSIGN ,MiniCT_11609);
	SetDlgItemText(IDC_BVSIGN ,MiniCT_11610);
	SetDlgItemText(IDC_BRSACERT ,MiniCT_11611);
	SetDlgItemText(IDC_BRSAKEY ,MiniCT_11612);
	SetDlgItemText(IDC_BRSAKEY2 ,MiniCT_11613);
	SetDlgItemText(IDC_BRSACERT2 ,MiniCT_11614);
}

BOOL CSafeInfoPage::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	{
		// Let the ToolTip process this message.
		m_toolTip.RelayEvent(pMsg);
	}
	return CPropertyPage::PreTranslateMessage(pMsg);
}

⌨️ 快捷键说明

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