Sample code for 30+ languages & platforms
DataFlex

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 get

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoPdf
    Variant vSigInfo
    Handle hoSigInfo
    Integer iNumSignatures
    Boolean iValidated
    Variant vCert
    Handle hoCert
    Integer i
    String sTemp1

    Move False To iSuccess

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    Get Create (RefClass(cComChilkatPdf)) To hoPdf
    If (Not(IsComObjectCreated(hoPdf))) Begin
        Send CreateComObject of hoPdf
    End

    // Load a PDF that has cryptographic signatures to be validated
    Get ComLoadFile Of hoPdf "qa_data/pdf/sign_testing_1/helloSigned2.pdf" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoPdf To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Each time we verify a signature, information about the signature is written into
    // sigInfo (replacing whatever sigInfo previously contained).
    Get Create (RefClass(cComChilkatJsonObject)) To hoSigInfo
    If (Not(IsComObjectCreated(hoSigInfo))) Begin
        Send CreateComObject of hoSigInfo
    End

    // Iterate over each signature and validate each.
    Get ComNumSignatures Of hoPdf To iNumSignatures
    Move False To iValidated
    Get Create (RefClass(cComChilkatCert)) To hoCert
    If (Not(IsComObjectCreated(hoCert))) Begin
        Send CreateComObject of hoCert
    End
    Move 0 To i
    While (i < iNumSignatures)
        Get pvComObject of hoSigInfo to vSigInfo
        Get ComVerifySignature Of hoPdf i vSigInfo To iValidated
        Showln "Signature " i " validated: " iValidated

        // After calling VerifySignature, you can get the signer certificate by calling
        // GetSignerCert with the same index. 
        Get pvComObject of hoCert to vCert
        Get ComGetSignerCert Of hoPdf i vCert To iSuccess
        If (iSuccess <> False) Begin
            Get ComSubjectDN Of hoCert To sTemp1
            Showln "PDF signer certificate: " sTemp1
        End

        Move (i + 1) To i
    Loop

    Showln "Finished."


End_Procedure