Sample code for 30+ languages & platforms
Delphi ActiveX

Transition from Crypt2.GetSignerCertChain to Crypt2.LastSignerCert

Provides instructions for replacing deprecated GetSignerCertChain method calls with LastSignerCert.

Chilkat Delphi ActiveX Downloads

Delphi ActiveX
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
crypt2: TChilkatCrypt2;
index: Integer;
certchainObj: IChilkatCertChain;
signerCert: TChilkatCert;
certChain: TChilkatCertChain;

begin
success := 0;

crypt2 := TChilkatCrypt2.Create(Self);

// ...
// ...
index := 0;

// ------------------------------------------------------------------------
// The GetSignerCertChain method is deprecated:

certchainObj := crypt2.GetSignerCertChain(index);
if (crypt2.LastMethodSuccess = 0) then
  begin
    Memo1.Lines.Add(crypt2.LastErrorText);
    Exit;
  end;

// ...
// ...

// ------------------------------------------------------------------------
// Do the equivalent using LastSignerCert, and then get the certificate chain from the cert.
// Your application creates a new, empty Cert object which is passed 
// in the last argument and filled upon success.

signerCert := TChilkatCert.Create(Self);
success := crypt2.LastSignerCert(index,signerCert.ControlInterface);
if (success = 0) then
  begin
    Memo1.Lines.Add(crypt2.LastErrorText);
    Exit;
  end;

certChain := TChilkatCertChain.Create(Self);
success := signerCert.BuildCertChain(certChain.ControlInterface);
if (success = 0) then
  begin
    Memo1.Lines.Add(signerCert.LastErrorText);
    Exit;
  end;
end;