dcmapWCSTR THTMLFrame::GetObjectAttribute(dcmapWCSTR szObjID,dcmapWCSTR szAttribute) { static UnicodeString buf; if(WideSameText(szAttribute,L"visible")) { return GetObjectVisible(szObjID)?L"1":L"0"; } if(WideSameText(szObjID,L"width")) buf = IntToStr(Width); else if(WideSameText(szObjID,L"height")) buf = IntToStr(Height); else { TObject* pCntr = Html->IDControl[szObjID]; if(!pCntr)return 0; TsEdit* pEdit = dynamic_cast<TsEdit*>(pCntr); if(pEdit) { if(WideSameText(szAttribute,L"value")) { buf = pEdit->Text; return buf.w_str(); } } return 0; } return buf.w_str(); }
//--------------------------------------------------------------------------- void __fastcall TTestForm::EncryptButtonClick(TObject *Sender) { if(!m_bInitialized) { MessageBoxA(this->Handle, "Криптографічну бібліотеку не ініціалізовано", "Повідомлення оператору", MB_ICONERROR); return; } if(!m_pInterface->IsPrivateKeyReaded()) { MessageBoxA(this->Handle, "Ключ не зчитано", "Повідомлення оператору", MB_ICONERROR); return; } PWCHAR pszSex[] = {L"Male", L"Female"}; UnicodeString Data; DWORD dwError; PEU_CERTIFICATES pReceiversCerts = NULL; PAnsiChar pEncryptedData; Data = String(pszSex[SexComboBoxEx->ItemIndex]) + FirstNameEdit->Text + LastNameEdit->Text + MiddleNameEdit->Text + PassSeriesEdit->Text + PassNumberEdit->Text + DRFOEdit->Text + RoleEdit->Text; dwError = m_pInterface->GetReceiversCertificates(&pReceiversCerts); if(dwError != EU_ERROR_NONE) return; dwError = m_pInterface->EnvelopData( pReceiversCerts->ppCertificates[0]->pszIssuer, pReceiversCerts->ppCertificates[0]->pszSerial, AddSignCheckBox->Checked, (PBYTE) Data.w_str(), Data.Length() * 2, &pEncryptedData, NULL, 0); m_pInterface->FreeReceiversCertificates(pReceiversCerts); if(dwError != EU_ERROR_NONE) return; SignRichEdit->Lines->Clear(); SignRichEdit->Lines->Add(pEncryptedData); m_pInterface->FreeMemory(pEncryptedData); }
UnicodeString __fastcall md5(UnicodeString Pass) { wchar_t *ww; MD5 *md; ww = Pass.w_str(); std::wstring wstr = ww; std::string str = std::string(wstr.begin(), wstr.end()); md = new MD5(); md->add(str.c_str(), str.length()); str = md->getHash(); return UnicodeString(str.c_str()); }
//--------------------------------------------------------------------------- void __fastcall TTestForm::VerifyButtonClick(TObject *Sender) { if(!m_bInitialized) { MessageBoxA(this->Handle, "Криптографічну бібліотеку не ініціалізовано", "Повідомлення оператору", MB_ICONERROR); return; } PWCHAR pszSex[] = {L"Male", L"Female"}; UnicodeString S = ""; UnicodeString Data; DWORD dwError; EU_SIGN_INFO SignInfo; PBYTE pbData; DWORD dwDataLength; PAnsiChar pHash; for(INT i = 0; i < SignRichEdit->Lines->Count; i ++) S += SignRichEdit->Lines->Strings[i]; if(UseRawSignCheckBox->Checked) { Data = String(pszSex[SexComboBoxEx->ItemIndex]) + FirstNameEdit->Text + LastNameEdit->Text + MiddleNameEdit->Text + PassSeriesEdit->Text + PassNumberEdit->Text + DRFOEdit->Text + RoleEdit->Text; dwError = m_pInterface->RawVerifyData( (PBYTE) Data.w_str(), Data.Length() * 2, AnsiString(S).c_str(), NULL, 0, &SignInfo); if(dwError != EU_ERROR_NONE) return; } else if(UseInternalSignCheckBox->Checked) { dwError = m_pInterface->VerifyDataInternal( AnsiString(S).c_str(), NULL, 0, &pbData, &dwDataLength, &SignInfo); if(dwError != EU_ERROR_NONE) return; m_pInterface->FreeMemory(pbData); } else if(SignHashCheckBox->Enabled && SignHashCheckBox->Checked) { if(((dwError = m_pInterface->HashDataContinue( (PBYTE) pszSex[SexComboBoxEx->ItemIndex], wcslen(pszSex[SexComboBoxEx->ItemIndex]) * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) FirstNameEdit->Text.w_str(), FirstNameEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) LastNameEdit->Text.w_str(), LastNameEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) MiddleNameEdit->Text.w_str(), MiddleNameEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) PassSeriesEdit->Text.w_str(), PassSeriesEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) PassNumberEdit->Text.w_str(), PassNumberEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) DRFOEdit->Text.w_str(), DRFOEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) RoleEdit->Text.w_str(), RoleEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataEnd( &pHash, NULL, NULL) != EU_ERROR_NONE))) { m_pInterface->ResetOperation(); return; } dwError = m_pInterface->VerifyHash(pHash, NULL, 0, AnsiString(S).c_str(), NULL, 0, &SignInfo); if(dwError != EU_ERROR_NONE) { m_pInterface->FreeMemory(pHash); return; } m_pInterface->FreeMemory(pHash); } else { dwError = m_pInterface->VerifyDataBegin( AnsiString(S).c_str(), NULL, NULL); if(dwError != EU_ERROR_NONE) { m_pInterface->ResetOperation(); return; } if(((dwError = m_pInterface->VerifyDataContinue( (PBYTE) pszSex[SexComboBoxEx->ItemIndex], wcslen(pszSex[SexComboBoxEx->ItemIndex]) * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->VerifyDataContinue( (PBYTE) FirstNameEdit->Text.w_str(), FirstNameEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->VerifyDataContinue( (PBYTE) LastNameEdit->Text.w_str(), LastNameEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->VerifyDataContinue( (PBYTE) MiddleNameEdit->Text.w_str(), MiddleNameEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->VerifyDataContinue( (PBYTE) PassSeriesEdit->Text.w_str(), PassSeriesEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->VerifyDataContinue( (PBYTE) PassNumberEdit->Text.w_str(), PassNumberEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->VerifyDataContinue( (PBYTE) DRFOEdit->Text.w_str(), DRFOEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->VerifyDataContinue( (PBYTE) RoleEdit->Text.w_str(), RoleEdit->Text.Length() * 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); }
//--------------------------------------------------------------------------- void __fastcall TTestForm::SignButtonClick(TObject *Sender) { if(!m_bInitialized) { MessageBoxA(this->Handle, "Криптографічну бібліотеку не ініціалізовано", "Повідомлення оператору", MB_ICONERROR); return; } if(!m_pInterface->IsPrivateKeyReaded()) { MessageBoxA(this->Handle, "Ключ не зчитано", "Повідомлення оператору", MB_ICONERROR); return; } PWCHAR pszSex[] = {L"Male", L"Female"}; UnicodeString Data; DWORD dwError; PAnsiChar pSign; PAnsiChar pHash; if(UseRawSignCheckBox->Checked) { Data = String(pszSex[SexComboBoxEx->ItemIndex]) + FirstNameEdit->Text + LastNameEdit->Text + MiddleNameEdit->Text + PassSeriesEdit->Text + PassNumberEdit->Text + DRFOEdit->Text + RoleEdit->Text; dwError = m_pInterface->RawSignData( (PBYTE) Data.w_str(), Data.Length() * 2, &pSign, NULL, NULL); if(dwError != EU_ERROR_NONE) return; } else if(UseInternalSignCheckBox->Checked) { Data = String(pszSex[SexComboBoxEx->ItemIndex]) + FirstNameEdit->Text + LastNameEdit->Text + MiddleNameEdit->Text + PassSeriesEdit->Text + PassNumberEdit->Text + DRFOEdit->Text + RoleEdit->Text; dwError = m_pInterface->SignDataInternal(FALSE, (PBYTE) Data.w_str(), Data.Length() * 2, &pSign, NULL, NULL); if(dwError != EU_ERROR_NONE) return; } else if(SignHashCheckBox->Enabled && SignHashCheckBox->Checked) { if(((dwError = m_pInterface->HashDataContinue( (PBYTE) pszSex[SexComboBoxEx->ItemIndex], wcslen(pszSex[SexComboBoxEx->ItemIndex]) * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) FirstNameEdit->Text.w_str(), FirstNameEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) LastNameEdit->Text.w_str(), LastNameEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) MiddleNameEdit->Text.w_str(), MiddleNameEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) PassSeriesEdit->Text.w_str(), PassSeriesEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) PassNumberEdit->Text.w_str(), PassNumberEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) DRFOEdit->Text.w_str(), DRFOEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataContinue( (PBYTE) RoleEdit->Text.w_str(), RoleEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->HashDataEnd( &pHash, NULL, NULL) != EU_ERROR_NONE))) { m_pInterface->ResetOperation(); return; } dwError = m_pInterface->SignHash(pHash, NULL, 0, &pSign, NULL, NULL); if(dwError != EU_ERROR_NONE) { m_pInterface->FreeMemory(pHash); return; } m_pInterface->FreeMemory(pHash); } else { if(((dwError = m_pInterface->SignDataContinue( (PBYTE) pszSex[SexComboBoxEx->ItemIndex], wcslen(pszSex[SexComboBoxEx->ItemIndex]) * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->SignDataContinue( (PBYTE) FirstNameEdit->Text.w_str(), FirstNameEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->SignDataContinue( (PBYTE) LastNameEdit->Text.w_str(), LastNameEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->SignDataContinue( (PBYTE) MiddleNameEdit->Text.w_str(), MiddleNameEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->SignDataContinue( (PBYTE) PassSeriesEdit->Text.w_str(), PassSeriesEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->SignDataContinue( (PBYTE) PassNumberEdit->Text.w_str(), PassNumberEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->SignDataContinue( (PBYTE) DRFOEdit->Text.w_str(), DRFOEdit->Text.Length() * 2)) != EU_ERROR_NONE) || ((dwError = m_pInterface->SignDataContinue( (PBYTE) RoleEdit->Text.w_str(), RoleEdit->Text.Length() * 2)) != EU_ERROR_NONE)) { m_pInterface->ResetOperation(); return; } dwError = m_pInterface->SignDataEnd(&pSign, NULL, NULL); if(dwError != EU_ERROR_NONE) { m_pInterface->ResetOperation(); return; } } SignRichEdit->Lines->Clear(); SignRichEdit->Lines->Add(pSign); m_pInterface->FreeMemory(pSign); }
//--------------------------------------------------------------------------- void WorkKompas5::ShowError(UnicodeString S) { MessageBox(NULL, S.w_str(), L"Error", MB_ICONERROR); }