encform.cpp
来自「著名的SecureBlackBox控件完整源码」· C++ 代码 · 共 283 行
CPP
283 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "EncForm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmEnc *frmEnc;
//---------------------------------------------------------------------------
__fastcall TfrmEnc::TfrmEnc(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmEnc::cbEncryptKeyClick(TObject *Sender)
{
UpdateOpt();
}
//---------------------------------------------------------------------------
void __fastcall TfrmEnc::cmbEncryptedDataTypeClick(TObject *Sender)
{
UpdateOpt();
}
//---------------------------------------------------------------------------
void __fastcall TfrmEnc::FormShow(TObject *Sender)
{
UpdateOpt();
}
//---------------------------------------------------------------------------
TElXMLEncryptedDataType TfrmEnc::GetEncryptedDataType(void)
{
switch(cmbEncryptedDataType->ItemIndex)
{
case 1:
return xedtContent;
case 2:
return xedtExternal;
default:
return xedtElement;
}
}
//---------------------------------------------------------------------------
TElXMLEncryptionMethod TfrmEnc::GetEncryptionMethod(void)
{
switch (cmbEncryptionMethod->ItemIndex)
{
case 1:
return xemAES;
case 2:
return xemCamellia;
case 3:
return xemDES;
case 4:
return xemRC4;
default:
return xem3DES;
}
}
//---------------------------------------------------------------------------
bool TfrmEnc::GetEncryptKey(void)
{
return cbEncryptKey->Checked;
}
//---------------------------------------------------------------------------
AnsiString TfrmEnc::GetExternalFile(void)
{
return edExternalFile->Text;
}
//---------------------------------------------------------------------------
TElXMLKeyEncryptionType TfrmEnc::GetKeyEncryptionType(void)
{
if (rgKEK->ItemIndex == 1)
return xetKeyWrap;
else
return xetKeyTransport;
}
//---------------------------------------------------------------------------
AnsiString TfrmEnc::GetKeyFile(void)
{
return edKeyFile->Text;
}
//---------------------------------------------------------------------------
AnsiString TfrmEnc::GetKeyName(void)
{
return edKeyName->Text;
}
//---------------------------------------------------------------------------
TElXMLKeyTransportMethod TfrmEnc::GetKeyTransportMethod(void)
{
if (cmbKeyTransport->ItemIndex == 0)
return xktRSA15;
else
return xktRSAOAEP;
}
//---------------------------------------------------------------------------
TElXMLKeyWrapMethod TfrmEnc::GetKeyWrapMethod(void)
{
switch (cmbKeyWrap->ItemIndex)
{
case 1:
return xwmAES128;
case 2:
return xwmAES192;
case 3:
return xwmAES256;
default:
return xwm3DES;
}
}
//---------------------------------------------------------------------------
AnsiString TfrmEnc::GetMimeType(void)
{
return edMimeType->Text;
}
//---------------------------------------------------------------------------
AnsiString TfrmEnc::GetPassphrase(void)
{
return edPassphrase->Text;
}
//---------------------------------------------------------------------------
void __fastcall TfrmEnc::gbKEKClick(TObject *Sender)
{
UpdateOpt();
}
//---------------------------------------------------------------------------
void __fastcall TfrmEnc::sbExternalFileClick(TObject *Sender)
{
if (LockOpt)
{
dlgSave->FileName = edExternalFile->Text;
if (dlgSave->Execute())
edExternalFile->Text = dlgSave->FileName;
}
else
{
dlgOpen->FileName = edExternalFile->Text;
if (dlgOpen->Execute())
edExternalFile->Text = dlgOpen->FileName;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmEnc::sbKeyFileClick(TObject *Sender)
{
dlgOpen->FileName = edKeyFile->Text;
if (dlgOpen->Execute())
edKeyFile->Text = dlgOpen->FileName;
}
//---------------------------------------------------------------------------
void TfrmEnc::SetEncryptedDataType(const TElXMLEncryptedDataType Value)
{
switch (Value)
{
case xedtElement:
cmbEncryptedDataType->ItemIndex = 0;
break;
case xedtContent:
cmbEncryptedDataType->ItemIndex = 1;
break;
case xedtExternal:
cmbEncryptedDataType->ItemIndex = 2;
break;
}
}
//---------------------------------------------------------------------------
void TfrmEnc::SetEncryptionMethod(const TElXMLEncryptionMethod Value)
{
switch(Value)
{
case xem3DES:
cmbEncryptionMethod->ItemIndex = 0;
break;
case xemAES:
cmbEncryptionMethod->ItemIndex = 1;
break;
case xemCamellia:
cmbEncryptionMethod->ItemIndex = 2;
break;
case xemDES:
cmbEncryptionMethod->ItemIndex = 3;
break;
case xemRC4:
cmbEncryptionMethod->ItemIndex = 4;
break;
}
}
//---------------------------------------------------------------------------
void TfrmEnc::SetEncryptKey(const bool Value)
{
cbEncryptKey->Checked = Value;
}
//---------------------------------------------------------------------------
void TfrmEnc::SetExternalFile(const AnsiString Value)
{
edExternalFile->Text = Value;
}
//---------------------------------------------------------------------------
void TfrmEnc::SetKeyEncryptionType(const TElXMLKeyEncryptionType Value)
{
if (Value == xetKeyTransport)
rgKEK->ItemIndex = 0;
else
rgKEK->ItemIndex = 1;
}
//---------------------------------------------------------------------------
void TfrmEnc::SetKeyFile(const AnsiString Value)
{
edKeyFile->Text = Value;
}
//---------------------------------------------------------------------------
void TfrmEnc::SetKeyName(const AnsiString Value)
{
edKeyName->Text = Value;
}
//---------------------------------------------------------------------------
void TfrmEnc::SetKeyTransportMethod(const TElXMLKeyTransportMethod Value)
{
if (Value == xktRSA15)
cmbKeyTransport->ItemIndex = 0;
else
cmbKeyTransport->ItemIndex = 1;
}
//---------------------------------------------------------------------------
void TfrmEnc::SetKeyWrapMethod(const TElXMLKeyWrapMethod Value)
{
switch (Value)
{
case xwm3DES:
cmbKeyWrap->ItemIndex = 0;
break;
case xwmAES128:
cmbKeyWrap->ItemIndex = 1;
break;
case xwmAES192:
cmbKeyWrap->ItemIndex = 2;
break;
case xwmAES256:
cmbKeyWrap->ItemIndex = 3;
break;
}
}
//---------------------------------------------------------------------------
void TfrmEnc::SetMimeType(const AnsiString Value)
{
edMimeType->Text = Value;
}
//---------------------------------------------------------------------------
void TfrmEnc::SetPassphrase(const AnsiString Value)
{
edPassphrase->Text = Value;
}
//---------------------------------------------------------------------------
void TfrmEnc::UpdateOpt(void)
{
rgKEK->Enabled = cbEncryptKey->Checked;
cmbKeyTransport->Enabled = cbEncryptKey->Checked;
lbKeyTransport->Enabled = cmbKeyTransport->Enabled;
cmbKeyWrap->Enabled = cbEncryptKey->Checked;
lbKeyWrap->Enabled = cmbKeyWrap->Enabled;
cmbKeyTransport->Enabled = cbEncryptKey->Checked && (rgKEK->ItemIndex == 0);
lbKeyTransport->Enabled = cmbKeyTransport->Enabled;
cmbKeyWrap->Enabled = cbEncryptKey->Checked && (rgKEK->ItemIndex == 1);
lbKeyWrap->Enabled = cmbKeyWrap->Enabled;
edPassphrase->Enabled = cmbKeyTransport->Enabled;
lbPassphrase->Enabled = edPassphrase->Enabled;
edMimeType->Enabled = (cmbEncryptedDataType->ItemIndex == 2);
lbMimeType->Enabled = edMimeType->Enabled;
edExternalFile->Enabled = (cmbEncryptedDataType->ItemIndex == 2);
lbExternalFile->Enabled = edExternalFile->Enabled;
sbExternalFile->Enabled = edExternalFile->Enabled;
}
//---------------------------------------------------------------------------
void __fastcall TfrmEnc::FormCreate(TObject *Sender)
{
EncryptedDataType = xedtElement;
EncryptionMethod = xem3DES;
KeyTransportMethod = xktRSA15;
KeyWrapMethod = xwm3DES;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?