Sample code for 30+ languages & platforms
Delphi ActiveX Requires Chilkat v11.0.0+

Generate an ECDSA Key

See more ECC Examples

Demonstrates how to generate an ECDSA key.

Chilkat Delphi ActiveX Downloads

Delphi ActiveX
var
success: Integer;
fortuna: TChilkatPrng;
entropy: WideString;
ecc: TChilkatEcc;
privKey: TPrivateKey;

begin
success := 0;

//  This requires the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

//  Create a Fortuna PRNG and seed it with system entropy.
//  This will be our source of random data for generating the ECC private key.
fortuna := TChilkatPrng.Create(Self);
entropy := fortuna.GetEntropy(32,'base64');
success := fortuna.AddEntropy(entropy,'base64');

ecc := TChilkatEcc.Create(Self);

//  Generate a random ECC private key on the secp256r1 curve.
//  Chilkat also supports other curves, such as secp384r1, secp521r1, and secp256k1.

privKey := TPrivateKey.Create(Self);
success := ecc.GenKey('secp256r1',fortuna.ControlInterface,privKey.ControlInterface);
if (success = 0) then
  begin
    Memo1.Lines.Add(ecc.LastErrorText);
    Exit;
  end;

Memo1.Lines.Add(privKey.GetXml());

//  Save the private key to PKCS8 encrypted PEM
//  (The private key can be saved in a variety of different formats. See the online reference documentation.)
success := privKey.SavePkcs8EncryptedPemFile('pemPassword','myPemFiles/eccKey123.pem');
if (success <> 1) then
  begin
    Memo1.Lines.Add(privKey.LastErrorText);
  end;

Memo1.Lines.Add('finished.');