⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 freeotfefrmselectoverwritemethod.pas

📁 文件驱动加密,功能强大,可产生加密分区,支持AES,MD2,MD4,MD5MD2, MD4, MD5, RIPEMD-128, RIPEMD-160, SHA-1, SHA-224, SHA-256,
💻 PAS
字号:
unit FreeOTFEfrmSelectOverwriteMethod;
// Description: 
// By Sarah Dean
// Email: sdean12@sdean12.org
// WWW:   http://www.FreeOTFE.org/
//
// -----------------------------------------------------------------------------
//


interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls,
  OTFEFreeOTFE_U;

type
  TfrmFreeOTFESelectOverwriteMethod = class(TForm)
    pbOK: TButton;
    pbCancel: TButton;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    GroupBox1: TGroupBox;
    rbDataEncrypted: TRadioButton;
    rbDataPseudorandom: TRadioButton;
    cbCypher: TComboBox;
    pbCypherDetails: TButton;
    procedure pbOKClick(Sender: TObject);
    procedure pbCypherDetailsClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure ControlChanged(Sender: TObject);
  private
    cypherKernelModeDriverNames: TStringList;
    cypherGUIDs: TStringList;

    procedure EnableDisableControls();
  public
    OTFEFreeOTFEObj: TOTFEFreeOTFE;

    OverwriteWithEncryptedData: boolean;
    CypherDriver: string;
    CypherGUID: TGUID;
  end;


implementation

{$R *.DFM}

uses
  ComObj,  // Required for StringToGUID
  SDUDialogs;

const
  CRLF = #10 + #13;

procedure TfrmFreeOTFESelectOverwriteMethod.pbOKClick(Sender: TObject);
begin
  OverwriteWithEncryptedData := rbDataEncrypted.Checked;
  if OverwriteWithEncryptedData then
    begin
    CypherDriver:= cypherKernelModeDriverNames[cbCypher.ItemIndex];
    CypherGUID:= StringToGUID(cypherGUIDs[cbCypher.ItemIndex]);
    end;

  ModalResult := mrOK;

end;


procedure TfrmFreeOTFESelectOverwriteMethod.pbCypherDetailsClick(
  Sender: TObject);
begin
  OTFEFreeOTFEObj.ShowCypherDetailsDlg(
                                       cypherKernelModeDriverNames[cbCypher.ItemIndex],
                                       StringToGUID(cypherGUIDs[cbCypher.ItemIndex])
                                      );

end;

procedure TfrmFreeOTFESelectOverwriteMethod.FormShow(Sender: TObject);
var
  tmpDisplayTitles: TStringList;
begin
  tmpDisplayTitles:= TStringList.Create();
  try
    if (OTFEFreeOTFEObj.GetCypherList(tmpDisplayTitles, cypherKernelModeDriverNames, cypherGUIDs)) then
      begin
      cbCypher.Items.Clear();
      cbCypher.Items.AddStrings(tmpDisplayTitles);
      end
    else
      begin
      SDUMessageDlg('Unable to obtain list of cyphers.'+CRLF+
                 CRLF+
                 'Please ensure that you have one or more FreeOTFE cypher '+CRLF+
                 'drivers installed and started.'+CRLF+
                 CRLF+
                 'If you have only just installed FreeOTFE, you may need to '+CRLF+
                 'restart your computer.',
                 mtError,
                 [mbOK],
                 0);
      end;
  finally
    tmpDisplayTitles.Free();
  end;

  EnableDisableControls();

end;

procedure TfrmFreeOTFESelectOverwriteMethod.FormCreate(Sender: TObject);
begin
  cypherKernelModeDriverNames:= TStringList.Create();
  cypherGUIDs:= TStringList.Create();

end;

procedure TfrmFreeOTFESelectOverwriteMethod.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  cypherKernelModeDriverNames.Free();
  cypherGUIDs.Free();

end;

procedure TfrmFreeOTFESelectOverwriteMethod.ControlChanged(
  Sender: TObject);
begin
  EnableDisableControls();

end;


procedure TfrmFreeOTFESelectOverwriteMethod.EnableDisableControls();
begin
  cbCypher.Enabled := rbDataEncrypted.Checked;
  pbCypherDetails.Enabled := (cbCypher.ItemIndex >= 0) AND cbCypher.Enabled;

  // Either the pseudorandom radiobutton is checked, or a cypher has been
  // selected (if the pseudorandom radiobutton *isn't* checked, it's implicit
  // that the encrypted data radiobutton *is* checked)
  pbOK.Enabled := (rbDataPseudorandom.Checked or (cbCypher.ItemIndex >= 0));

end;


END.



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -