void CEUSignTestVCDlg::OnBnClickedButtonEncrypt() { UpdateData(TRUE); if(!m_bInitialized) { ::MessageBoxA(this->m_hWnd, "Криптографічну бібліотеку не ініціалізовано", "Повідомлення оператору", MB_ICONERROR); return; } if(!m_pInterface->IsPrivateKeyReaded()) { ::MessageBoxA(this->m_hWnd, "Ключ не зчитано", "Повідомлення оператору", MB_ICONERROR); return; } PWCHAR pszSex[] = {L"Male", L"Female"}; DWORD dwError; PSTR psEnvelopedData = NULL; CString All; All = CString(pszSex[m_ComboSex]) + m_FirstNameEdit + m_LastNameEdit + m_MiddleNameEdit + m_PassSeriesEdit + m_PassNumberEdit + m_DRFOEdit + m_RoleEdit; BOOL bUseSign = m_UseRawSignCheckBox.GetCheck() == BST_CHECKED; PEU_CERTIFICATES pReceiversCerts; dwError = m_pInterface->GetReceiversCertificates(&pReceiversCerts); if(dwError != EU_ERROR_NONE) return; dwError = m_pInterface->EnvelopData(pReceiversCerts->ppCertificates[0]->pszIssuer, pReceiversCerts->ppCertificates[0]->pszSerial, bUseSign, (PBYTE) All.SetSysString(&m_bstrAll), All.GetLength() * 2, &psEnvelopedData, NULL, NULL); m_pInterface->FreeReceiversCertificates(pReceiversCerts); if(dwError != EU_ERROR_NONE) return; m_SignEdit = psEnvelopedData; m_pInterface->FreeMemory((PBYTE) psEnvelopedData); UpdateData(FALSE); }
void CEUSignTestVCDlg::OnBnClickedButtonVerify() { UpdateData(TRUE); if(!m_bInitialized) { ::MessageBoxA(this->m_hWnd, "Криптографічну бібліотеку не ініціалізовано", "Повідомлення оператору", MB_ICONERROR); return; } PWCHAR pszSex[] = {L"Male", L"Female"}; DWORD dwError; PBYTE pbData; DWORD dwDataLength; PSTR pszHash; EU_SIGN_INFO SignInfo; CString All; if(m_UseRawSignCheckBox.GetCheck() == BST_CHECKED) { All = CString(pszSex[m_ComboSex]) + m_FirstNameEdit + m_LastNameEdit + m_MiddleNameEdit + m_PassSeriesEdit + m_PassNumberEdit + m_DRFOEdit + m_RoleEdit; dwError = m_pInterface->RawVerifyData( (PBYTE) All.SetSysString(&m_bstrAll), All.GetLength() * 2, (PSTR) m_SignEdit.GetString(), NULL, NULL, &SignInfo); if(dwError != EU_ERROR_NONE) return; } else if(m_UseInternalSignCheckBox.GetCheck() == BST_CHECKED) { dwError = m_pInterface->VerifyDataInternal( (PSTR) m_SignEdit.GetString(), NULL, 0, &pbData, &dwDataLength, &SignInfo); if(dwError != EU_ERROR_NONE) return; m_pInterface->FreeMemory(pbData); } else if(m_SignHashCheckBox.IsWindowEnabled() && m_SignHashCheckBox.GetCheck() == BST_CHECKED) { if(((dwError = m_pInterface->HashDataContinue( (PBYTE) pszSex[m_ComboSex], (DWORD) wcslen(pszSex[m_ComboSex]) * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) m_FirstNameEdit.SetSysString(&m_bstrFirstName), m_FirstNameEdit.GetLength() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) m_LastNameEdit.SetSysString(&m_bstrLastName), m_LastNameEdit.GetLength() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) m_MiddleNameEdit.SetSysString(&m_bstrMiddleName), m_MiddleNameEdit.GetLength() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) m_PassSeriesEdit.SetSysString(&m_bstrPassSeries), m_PassSeriesEdit.GetLength() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) m_PassNumberEdit.SetSysString(&m_bstrPassNumber), m_PassNumberEdit.GetLength() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) m_DRFOEdit.SetSysString(&m_bstrDRFO), m_DRFOEdit.GetLength() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) m_RoleEdit.SetSysString(&m_bstrRole), m_RoleEdit.GetLength() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataEnd( &pszHash, NULL, NULL)) != EU_ERROR_NONE)) { m_pInterface->ResetOperation(); return; } dwError = m_pInterface->VerifyHash(pszHash, NULL, 0, (PSTR) m_SignEdit.GetString(), NULL, NULL, &SignInfo); if(dwError != EU_ERROR_NONE) { m_pInterface->FreeMemory((PBYTE) pszHash); return; } m_pInterface->FreeMemory((PBYTE) pszHash); } else { dwError = m_pInterface->VerifyDataBegin( (PSTR) m_SignEdit.GetString(), NULL, NULL); if(dwError != EU_ERROR_NONE) { m_pInterface->ResetOperation(); return; } if(((dwError = m_pInterface->VerifyDataContinue( (PBYTE) pszSex[m_ComboSex], (DWORD) wcslen(pszSex[m_ComboSex]) * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->VerifyDataContinue( (PBYTE) m_FirstNameEdit.SetSysString(&m_bstrFirstName), m_FirstNameEdit.GetLength() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->VerifyDataContinue( (PBYTE) m_LastNameEdit.SetSysString(&m_bstrLastName), m_LastNameEdit.GetLength() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->VerifyDataContinue( (PBYTE) m_MiddleNameEdit.SetSysString(&m_bstrMiddleName), m_MiddleNameEdit.GetLength() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->VerifyDataContinue( (PBYTE) m_PassSeriesEdit.SetSysString(&m_bstrPassSeries), m_PassSeriesEdit.GetLength() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->VerifyDataContinue( (PBYTE) m_PassNumberEdit.SetSysString(&m_bstrPassNumber), m_PassNumberEdit.GetLength() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->VerifyDataContinue( (PBYTE) m_DRFOEdit.SetSysString(&m_bstrDRFO), m_DRFOEdit.GetLength() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->VerifyDataContinue( (PBYTE) m_RoleEdit.SetSysString(&m_bstrRole), m_RoleEdit.GetLength() * 2)) != EU_ERROR_NONE)) { m_pInterface->ResetOperation(); return; } dwError = m_pInterface->VerifyDataEnd(&SignInfo); if(dwError != EU_ERROR_NONE) { m_pInterface->ResetOperation(); return; } } m_pInterface->ShowSignInfo(&SignInfo); m_pInterface->FreeSignInfo(&SignInfo); }