Sample code for 30+ languages & platforms
Delphi DLL

Example: Crypt2.LastSignerCert method

Demonstrates how to call the LastSignerCert method.

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, Cert, Crypt2;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
crypt: HCkCrypt2;
p7m_path: PWideChar;
out_path: PWideChar;
numSigners: Integer;
i: Integer;
cert: HCkCert;

begin
success := False;

crypt := CkCrypt2_Create();

p7m_path := 'qa_data/p7m/Firma.docx.p7m';
out_path := 'qa_output/Firma.docx';

success := CkCrypt2_VerifyP7M(crypt,p7m_path,out_path);
if (success = False) then
  begin
    Memo1.Lines.Add(CkCrypt2__lastErrorText(crypt));
    Exit;
  end;

// Examine the certificate(s) used for signing.
numSigners := CkCrypt2_getNumSignerCerts(crypt);
i := 0;

cert := CkCert_Create();

while i < numSigners do
  begin
    CkCrypt2_LastSignerCert(crypt,i,cert);
    Memo1.Lines.Add('Signer: ' + CkCert__subjectDN(cert));
    i := i + 1;
  end;

CkCrypt2_Dispose(crypt);
CkCert_Dispose(cert);

end;