Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Export a Private Key as XML
See more Private Key Examples
Demonstrates the Chilkat PrivateKey.GetXml method, which exports the key in Chilkat-compatible XML (for example an RSAKeyValue element). It takes no arguments; the XML is not encrypted.
Note: The file paths are relative to the application's current working directory. Absolute paths may also be used. Supply the paths appropriate to your own environment.
Background: The XML key format belongs to the .NET/XML-DSIG world, where keys are represented as XML elements. Exporting to it is what you do to hand a key to .NET code or a system built around XML signatures — the inverse of
LoadXml. It is plaintext, so the exported XML must be protected like any unencrypted key.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;
xml: string;
begin
success := False;
// Load a private key to export.
privKey := TPrivateKey.Create;
success := privKey.LoadPemFile('qa_data/private.pem');
if (success = False) then
begin
WriteLn(privKey.LastErrorText);
Exit;
end;
// Export in Chilkat-compatible XML (for example an RSAKeyValue element). The XML is not
// encrypted.
xml := privKey.GetXml();
if (privKey.LastMethodSuccess = False) then
begin
WriteLn(privKey.LastErrorText);
Exit;
end;
WriteLn(xml);
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.