Ejemplo n.º 1
0
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();
}
Ejemplo n.º 2
0
//---------------------------------------------------------------------------
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);
}
Ejemplo n.º 3
0
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());
}
Ejemplo n.º 4
0
//---------------------------------------------------------------------------
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);
}
Ejemplo n.º 5
0
//---------------------------------------------------------------------------
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);
}
Ejemplo n.º 6
0
//---------------------------------------------------------------------------
void WorkKompas5::ShowError(UnicodeString S)
{
		MessageBox(NULL, S.w_str(), L"Error", MB_ICONERROR);
}