Delphi DLL
Delphi DLL
Generate an RSA Key and Get as Base64 DER
See more RSA Examples
Demonstrates how to generate a 2048-bit RSA key and return the public and private parts as unencrypted Base64 encoded DER.Chilkat Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, PrivateKey, Rsa, PublicKey;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
rsa: HCkRsa;
privKey: HCkPrivateKey;
pubKey: HCkPublicKey;
bChoosePkcs1: Boolean;
pubKeyBase64Der: PWideChar;
privKeyPkcs1: PWideChar;
privKeyPkcs8: PWideChar;
begin
success := False;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
rsa := CkRsa_Create();
// Generate a 2048-bit key.
privKey := CkPrivateKey_Create();
success := CkRsa_GenKey(rsa,2048,privKey);
if (success = False) then
begin
Memo1.Lines.Add(CkRsa__lastErrorText(rsa));
Exit;
end;
// Get the public part of the key.
pubKey := CkPublicKey_Create();
CkPrivateKey_ToPublicKey(privKey,pubKey);
// There are two possible formats for representing the RSA public key
// in ASN.1 (DER). The possible formats are PKCS1 and PKCS8.
// We can get either by setting bChoosePkcs1 to True or False.
bChoosePkcs1 := True;
pubKeyBase64Der := CkPublicKey__getEncoded(pubKey,bChoosePkcs1,'base64');
Memo1.Lines.Add('Public Key Base64 DER:');
Memo1.Lines.Add(pubKeyBase64Der);
// Get the private key as Base64 DER:
// We can get PKCS1 or PKCS8, but with different methods:
privKeyPkcs1 := CkPrivateKey__getPkcs1ENC(privKey,'base64');
Memo1.Lines.Add('Private Key PKCS1 Base64 DER:');
Memo1.Lines.Add(privKeyPkcs1);
privKeyPkcs8 := CkPrivateKey__getPkcs8ENC(privKey,'base64');
Memo1.Lines.Add('Private Key PKCS8 Base64 DER:');
Memo1.Lines.Add(privKeyPkcs8);
CkRsa_Dispose(rsa);
CkPrivateKey_Dispose(privKey);
CkPublicKey_Dispose(pubKey);
end;