Sample code for 30+ languages & platforms
Delphi DLL

Convert RSA Private Key to Public Key

See more RSA Examples

Demonstrates how to get a public RSA key from a private RSA key.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, PrivateKey, PublicKey;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
privKey: HCkPrivateKey;
pubKey: HCkPublicKey;
bPreferPkcs1: Boolean;

begin
success := False;

privKey := CkPrivateKey_Create();

// Step 1: Load the private key from a source.
// (Chilkat can load private keys from all types of formats, and from in-memory bytes or encoded strings.
// see the online reference documentation for more options.)
success := CkPrivateKey_LoadPemFile(privKey,'qa_data/pem/VP_Private.pem');
if (success = False) then
  begin
    Memo1.Lines.Add(CkPrivateKey__lastErrorText(privKey));
    Exit;
  end;

// Step 2: Get the public key object from the private key object.
pubKey := CkPublicKey_Create();
CkPrivateKey_ToPublicKey(privKey,pubKey);

// Step 3: Save the public key in a desired format. 
// (Chilkat can load or save public and private keys in many different formats.  See
// the online reference documentation for more options.)

// Saves to a PKCS8 PEM file.
bPreferPkcs1 := False;
success := CkPublicKey_SavePemFile(pubKey,bPreferPkcs1,'qa_data/pem/VP_Public.pem');
if (CkPublicKey_getLastMethodSuccess(pubKey) = False) then
  begin
    Memo1.Lines.Add(CkPublicKey__lastErrorText(pubKey));
    Exit;
  end;

Memo1.Lines.Add('Extracted and saved public key from private key.');

CkPrivateKey_Dispose(privKey);
CkPublicKey_Dispose(pubKey);

end;