C
C
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 C Downloads
#include <C_CkPdf.h>
#include <C_CkJsonObject.h>
#include <C_CkCert.h>
void ChilkatSample(void)
{
BOOL success;
HCkPdf pdf;
HCkJsonObject sigInfo;
int numSignatures;
BOOL validated;
HCkCert cert;
int i;
success = FALSE;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
pdf = CkPdf_Create();
// Load a PDF that has cryptographic signatures to be validated
success = CkPdf_LoadFile(pdf,"qa_data/pdf/sign_testing_1/helloSigned2.pdf");
if (success == FALSE) {
printf("%s\n",CkPdf_lastErrorText(pdf));
CkPdf_Dispose(pdf);
return;
}
// Each time we verify a signature, information about the signature is written into
// sigInfo (replacing whatever sigInfo previously contained).
sigInfo = CkJsonObject_Create();
// Iterate over each signature and validate each.
numSignatures = CkPdf_getNumSignatures(pdf);
validated = FALSE;
cert = CkCert_Create();
i = 0;
while (i < numSignatures) {
validated = CkPdf_VerifySignature(pdf,i,sigInfo);
printf("Signature %d validated: %d\n",i,validated);
// After calling VerifySignature, you can get the signer certificate by calling
// GetSignerCert with the same index.
success = CkPdf_GetSignerCert(pdf,i,cert);
if (success != FALSE) {
printf("PDF signer certificate: %s\n",CkCert_subjectDN(cert));
}
i = i + 1;
}
printf("Finished.\n");
CkPdf_Dispose(pdf);
CkJsonObject_Dispose(sigInfo);
CkCert_Dispose(cert);
}