📄 csptest2dlg.cpp
字号:
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_strImSEnDataPath == "")
{
MessageBox("请输入待加密数据文件路径!");
return;
}
if(m_strImSePath == "")
{
MessageBox("请输入会话密钥文件路径!");
return;
}
if(m_strContainer == "")
{
MessageBox("请输入容器名称!");
return;
}
if(m_strImSePriPath == "")
{
MessageBox("请输入保护私钥文件路径!");
return;
}
if(m_strExSDeDataPath == "")
{
MessageBox("请输入加/解密后文件!");
return;
}
BYTE pbSessionKey[1024] = {0};
int nSessionLen;
BYTE pbSourceData[1024] = {0};//由于赶时间测试的数据非常小 偷懒没有用new的空间
//大家还是用new分配空间养成好习惯 记得delete []
int nSourceLen;
BYTE pbDestData[1024] = {0};
int nDestLen;
BYTE pbPriKey[1024] = {0};
int nPriLen;
OpenFile(m_strImSePriPath, pbPriKey, nPriLen, "会话解密私钥文件");
OpenFile(m_strImSePath, pbSessionKey, nSessionLen, "会话密钥数据文件!");
OpenFile(m_strImSEnDataPath, pbSourceData, nSourceLen, "待加/解密数据文件!");
CCsp objCsp;
int r = objCsp.SessionEncrypt(pbSessionKey, nSessionLen, pbSourceData, nSourceLen, pbPriKey,
nPriLen, pbDestData, (DWORD *)&nDestLen, (BYTE*)m_strContainer.GetBuffer(0));
if(r != 0)
{
MessageBox(objCsp.m_strError);
return;
}
WriteFile(m_strExSDeDataPath, pbDestData, nDestLen, "加密后数据文件!");
MessageBox("会话加密数据成功!");
return;
}
void CCSPTEST2Dlg::OnSessionDecrypt()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_strImSePath == "")
{
MessageBox("请输入会话密钥文件路径!");
return;
}
if(m_strContainer == "")
{
MessageBox("请输入容器名称!");
return;
}
if(m_strImSePriPath == "")
{
MessageBox("请输入保护私钥文件路径!");
return;
}
if(m_strImSEnDataPath == "")
{
MessageBox("请输入待解密数据文件路径!");
return;
}
if(m_strExSDeDataPath == "")
{
MessageBox("请输入解密后文件!");
return;
}
BYTE pbSessionKey[1024] = {0};
int nSessionLen;
BYTE pbSourceData[1024] = {0};
int nSourceLen;
BYTE pbDestData[1024] = {0};
int nDestLen;
BYTE pbPriKey[1024] = {0};
int nPriLen;
OpenFile(m_strImSePriPath, pbPriKey, nPriLen, "会话解密私钥文件");
OpenFile(m_strImSePath, pbSessionKey, nSessionLen, "会话密钥数据文件!");
OpenFile(m_strImSEnDataPath, pbSourceData, nSourceLen, "待解密数据文件!");
CCsp objCsp;
int r = objCsp.SessionDecrypt(pbSessionKey, nSessionLen, pbSourceData, nSourceLen, pbPriKey,
nPriLen, pbDestData, (DWORD *)&nDestLen, (BYTE*)m_strContainer.GetBuffer(0));
if(r != 0)
{
MessageBox(objCsp.m_strError);
return;
}
WriteFile(m_strExSDeDataPath, pbDestData, nDestLen, "解密后数据文件!");
MessageBox("会话解密数据成功!");
return;
}
void CCSPTEST2Dlg::OpenFile(CString strFilePath, BYTE *pbFiledata,
INT &nFileLen, CString strFileDescript)
{
UpdateData(TRUE);
CFile fp;
if(fp.Open(strFilePath, CFile::modeRead) == 0)
{
MessageBox("无法打开!"+strFileDescript);
return;
}
int nLenTemp = fp.GetLength();
fp.Read(pbFiledata, nLenTemp);
nFileLen = nLenTemp;
fp.Close();
return;
}
void CCSPTEST2Dlg::OnBrownExport(CString strExportPath)
{
UpdateData(TRUE);
CString strTempExportPath;
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(FALSE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
strTempExportPath = OpenFile.GetPathName();
m_strExEnPubPath = strTempExportPath;
UpdateData(FALSE);
return;
}
void CCSPTEST2Dlg::OnBrownImport(CString strImportPath)
{
UpdateData(TRUE);
CString strTempImportPath;
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(TRUE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
strTempImportPath = OpenFile.GetPathName();
strImportPath = strTempImportPath;
UpdateData(FALSE);
return;
}
int CCSPTEST2Dlg::WriteFile(CString strFilePath, BYTE *pbFiledata, INT nFileLen, CString strFileDescript)
{
CFile fp;
if(fp.Open(strFilePath, CFile::modeWrite | CFile::modeCreate) == 0)
{
MessageBox("无法写入文件!"+strFileDescript);
return -1;
}
fp.Write(pbFiledata, nFileLen);
fp.Close();
return 0;
}
void CCSPTEST2Dlg::OnBrown5()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(FALSE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
m_strExportSessionPath = OpenFile.GetPathName();
UpdateData(FALSE);
return;
}
void CCSPTEST2Dlg::OnBrown6()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(TRUE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
m_strImportSPubPath= OpenFile.GetPathName();
UpdateData(FALSE);
return;
}
void CCSPTEST2Dlg::OnBrown1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(FALSE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
m_strExEnPubPath = OpenFile.GetPathName();
UpdateData(FALSE);
return;
}
void CCSPTEST2Dlg::OnBrown2()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(FALSE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
m_strExEnPriPath = OpenFile.GetPathName();
UpdateData(FALSE);
return;
}
void CCSPTEST2Dlg::OnBrown3()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(FALSE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
m_strExSiPubPath = OpenFile.GetPathName();
UpdateData(FALSE);
return;
}
void CCSPTEST2Dlg::OnBrown4()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(FALSE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
m_strExSiPriPath = OpenFile.GetPathName();
UpdateData(FALSE);
return;
}
void CCSPTEST2Dlg::OnBrown9()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(TRUE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
m_strImEnPubPath= OpenFile.GetPathName();
UpdateData(FALSE);
return;
}
void CCSPTEST2Dlg::OnBrown10()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(TRUE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
m_strImEnPriPath= OpenFile.GetPathName();
UpdateData(FALSE);
return;
}
void CCSPTEST2Dlg::OnBrown11()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(TRUE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
m_strImSiPubPath= OpenFile.GetPathName();
UpdateData(FALSE);
return;
}
void CCSPTEST2Dlg::OnBrown12()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(TRUE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
m_strImSiPriPath= OpenFile.GetPathName();
UpdateData(FALSE);
return;
}
void CCSPTEST2Dlg::OnBrown7()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(TRUE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
m_strImSePath= OpenFile.GetPathName();
UpdateData(FALSE);
return;
}
void CCSPTEST2Dlg::OnBrown8()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(TRUE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
m_strImSePriPath= OpenFile.GetPathName();
UpdateData(FALSE);
return;
}
void CCSPTEST2Dlg::OnBrown13()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(TRUE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
m_strImSEnDataPath= OpenFile.GetPathName();
UpdateData(FALSE);
return;
}
void CCSPTEST2Dlg::OnButton14()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char szFilter[] = "*.txt文件(*.txt)|*.txt|全部文件(*.*)|*.*||";
CFileDialog OpenFile(FALSE, NULL, "*.*",
OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
if(OpenFile.DoModal() != IDOK)
{
return;
}
m_strExSDeDataPath= OpenFile.GetPathName();
UpdateData(FALSE);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -