Pascal (Lazarus/Delphi)
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
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.