Delphi ActiveX
Delphi ActiveX
Get PDF Signer Certs
See more PDF Signatures Examples
This example demonstrates how to validate the signatures in a PDF and also shows how to getChilkat Delphi ActiveX Downloads
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;
pdf: TChilkatPdf;
sigInfo: TChilkatJsonObject;
numSignatures: Integer;
validated: Integer;
cert: TChilkatCert;
i: Integer;
begin
success := 0;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
pdf := TChilkatPdf.Create(Self);
// Load a PDF that has cryptographic signatures to be validated
success := pdf.LoadFile('qa_data/pdf/sign_testing_1/helloSigned2.pdf');
if (success = 0) then
begin
Memo1.Lines.Add(pdf.LastErrorText);
Exit;
end;
// Each time we verify a signature, information about the signature is written into
// sigInfo (replacing whatever sigInfo previously contained).
sigInfo := TChilkatJsonObject.Create(Self);
// Iterate over each signature and validate each.
numSignatures := pdf.NumSignatures;
validated := 0;
cert := TChilkatCert.Create(Self);
i := 0;
while i < numSignatures do
begin
validated := pdf.VerifySignature(i,sigInfo.ControlInterface);
Memo1.Lines.Add('Signature ' + IntToStr(i) + ' validated: ' + IntToStr(Ord(validated)));
// After calling VerifySignature, you can get the signer certificate by calling
// GetSignerCert with the same index.
success := pdf.GetSignerCert(i,cert.ControlInterface);
if (success <> 0) then
begin
Memo1.Lines.Add('PDF signer certificate: ' + cert.SubjectDN);
end;
i := i + 1;
end;
Memo1.Lines.Add('Finished.');
end;