Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Load an Ed25519 Private Key from Hex
See more Ed25519 Examples
Demonstrates how to load an Ed25519 private key from raw hex bytes.Note: This example requires Chilkat v9.5.0.83 or greater.
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,
Chilkat.StringBuilder;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
privKey: TPrivateKey;
privKeyHex: string;
pubKeyHex: string;
privKey2: TPrivateKey;
sbPubKeyHex: TStringBuilder;
begin
success := False;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
privKey := TPrivateKey.Create;
// We have the hexidecimal encoded bytes of the private key and public key:
privKeyHex := 'd4ee72dbf913584ad5b6d8f1f769f8ad3afe7c28cbf1d4fbe097a88f44755842';
pubKeyHex := '19bf44096984cdfe8541bac167dc3b96c85086aa30b6b6cb0c5c38ad703166e1';
// Load these values into the Chilkat private key object:
success := privKey.LoadEd25519(privKeyHex,pubKeyHex);
if (success = False) then
begin
WriteLn(privKey.LastErrorText);
Exit;
end;
// ---------------------------------------------------------------
// We don't actually need the public key. If we pass an empty string for the public key,
// Chilkat will automatically compute it.
privKey2 := TPrivateKey.Create;
success := privKey2.LoadEd25519(privKeyHex,'');
// Let's get the public key to see that it computed the same value.
sbPubKeyHex := TStringBuilder.Create;
privKeyHex := privKey2.GetRawHex(sbPubKeyHex);
WriteLn('computed public key = ' + sbPubKeyHex.GetAsString());
// The output should be:
// computed public key = 19bf44096984cdfe8541bac167dc3b96c85086aa30b6b6cb0c5c38ad703166e1
privKey.Free;
privKey2.Free;
sbPubKeyHex.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.