Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Load a Private Key from an XML File

See more Private Key Examples

Demonstrates the Chilkat PrivateKey.LoadXmlFile method, which loads a private key from an XML file. The only argument is the file path. Chilkat recognizes RSA, DSA, EC, and Ed25519 XML produced by GetXml, and auto-detects other supported unencrypted representations.

Note: The file path is relative to the application's current working directory. Absolute paths may also be used. Supply the path to your own key file.

Background: The file-based form of LoadXml, for a key saved as an XML file — typically one written by SaveXmlFile or exported from .NET. Because it also inspects the content, it will load other unencrypted representations if the file turns out not to be XML.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
program ChilkatDemo;

// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SysUtils,
  CkDllLoader,
  Chilkat.PrivateKey;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  success: Boolean;
  privKey: TPrivateKey;

begin
  success := False;

  //  Demonstrates the PrivateKey.LoadXmlFile method, which loads a private key from an XML file.  The
  //  only argument is the file path.  Chilkat recognizes RSA, DSA, EC, and Ed25519 XML produced by
  //  GetXml, and auto-detects other supported unencrypted representations.

  privKey := TPrivateKey.Create;

  success := privKey.LoadXmlFile('qa_data/private_key.xml');
  if (success = False) then
    begin
      WriteLn(privKey.LastErrorText);
      Exit;
    end;

  WriteLn('Loaded a ' + privKey.KeyType + ' private key.');


  privKey.Free;

end;

// ---------------------------------------------------------------------------

begin

  try
    RunDemo;
  except
    on E: Exception do
      WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
  end;

  WriteLn;
  {$IFDEF MSWINDOWS}
  WriteLn('Press Enter to exit...');
  ReadLn;
  {$ENDIF}
end.