PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkCert.pb"
IncludeFile "CkJsonObject.pb"
IncludeFile "CkPdf.pb"
Procedure ChilkatExample()
success.i = 0
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
pdf.i = CkPdf::ckCreate()
If pdf.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Load a PDF that has cryptographic signatures to be validated
success = CkPdf::ckLoadFile(pdf,"qa_data/pdf/sign_testing_1/helloSigned2.pdf")
If success = 0
Debug CkPdf::ckLastErrorText(pdf)
CkPdf::ckDispose(pdf)
ProcedureReturn
EndIf
; Each time we verify a signature, information about the signature is written into
; sigInfo (replacing whatever sigInfo previously contained).
sigInfo.i = CkJsonObject::ckCreate()
If sigInfo.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Iterate over each signature and validate each.
numSignatures.i = CkPdf::ckNumSignatures(pdf)
validated.i = 0
cert.i = CkCert::ckCreate()
If cert.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
i.i = 0
While i < numSignatures
validated = CkPdf::ckVerifySignature(pdf,i,sigInfo)
Debug "Signature " + Str(i) + " validated: " + Str(validated)
; After calling VerifySignature, you can get the signer certificate by calling
; GetSignerCert with the same index.
success = CkPdf::ckGetSignerCert(pdf,i,cert)
If success <> 0
Debug "PDF signer certificate: " + CkCert::ckSubjectDN(cert)
EndIf
i = i + 1
Wend
Debug "Finished."
CkPdf::ckDispose(pdf)
CkJsonObject::ckDispose(sigInfo)
CkCert::ckDispose(cert)
ProcedureReturn
EndProcedure