Sample code for 30+ languages & platforms
Lianja

Verify XAdES with External File Reference

See more XML Digital Signatures Examples

Demonstrates how to validate an XML digital signature that contains a reference to an external file. (This is one way of doing it..)

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

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

// Load the XAdES file to be validated..
loSbXml = createobject("CkStringBuilder")
llSuccess = loSbXml.LoadFile("qa_data/xml_dsig_valid_samples/externalFile/test.pdf.XAdES","utf-8")
if (llSuccess = .F.) then
    ? "Failed to load XAdES input file."
    release loSbXml
    return
endif

loValidator = createobject("CkXmlDSig")

// Specify a set of absolute or relative directory paths to be searched for any external file references.
// Directory paths are separated by semicolon chars.
loValidator.ExternalRefDirs = "qa_data/externalFiles;qa_data/xml_dsig_valid_samples/externalFile;c:/someOtherDir"

llSuccess = loValidator.LoadSignatureSb(loSbXml)
if (llSuccess = .F.) then
    ? loValidator.LastErrorText
    release loSbXml
    release loValidator
    return
endif

// Validate signatures as usual..
i = 0
do while i < loValidator.NumSignatures
    loValidator.Selector = i

    llValid = loValidator.VerifySignature(.T.)
    ? "Signature " + str(i + 1) + " and all reference digests OK = " + str(llValid)

    i = i + 1
enddo


release loSbXml
release loValidator