📄 safeinfopage.cpp
字号:
&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 + -