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 + -
显示快捷键?