serversettingsform.pas

来自「著名的SecureBlackBox控件完整源码」· PAS 代码 · 共 76 行

PAS
76
字号
unit ServerSettingsForm;

interface

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

type
  TfrmServerSettings = class(TForm)
    gbServerSettings: TGroupBox;
    lHostKey: TLabel;
    memoHostKey: TMemo;
    btnOK: TButton;
    btnGenerateNewKey: TButton;
    cbForceCompression: TCheckBox;
    procedure btnOKClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btnGenerateNewKeyClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmServerSettings: TfrmServerSettings;

implementation

{$R *.DFM}

uses
  DemoSettings;

procedure TfrmServerSettings.btnOKClick(Sender: TObject);
begin
  if Settings.SetHostKey(memoHostKey.Text) then
    ModalResult := mrOk
  else
  begin
    MessageDlg('Host key is invalid', mtError, [mbOk], 0);
    memoHostKey.Text := Settings.HostKey;
  end;
end;


procedure TfrmServerSettings.FormShow(Sender: TObject);
begin
  memoHostKey.Text := Settings.HostKey;
end;

procedure TfrmServerSettings.btnGenerateNewKeyClick(Sender: TObject);
var
  Key : TElSSHKey;
  S : string;
  Size : integer;
begin
  if MessageDlg('Do you want to generate a new host key for the server?',
    mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  begin
    Key := TElSSHKey.Create;
    Key.Generate(ALGORITHM_RSA, 1024);
    Size := 0;
    Key.SavePrivateKey(nil, Size);
    SetLength(S, Size);
    Key.SavePrivateKey(@S[1], Size);
    SetLength(S, Size);
    memoHostKey.Text := S;
    MessageDlg('The new host key was successfully generated', mtInformation,
      [mbOk], 0);
  end;
end;

end.

⌨️ 快捷键说明

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