Sample code for 30+ languages & platforms
Ruby

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 Ruby Downloads

Ruby
require 'chilkat'

success = false

# 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..
sbXml = Chilkat::CkStringBuilder.new()
success = sbXml.LoadFile("qa_data/xml_dsig_valid_samples/externalFile/test.pdf.XAdES","utf-8")
if (success == false)
    print "Failed to load XAdES input file." + "\n";
    exit
end

validator = Chilkat::CkXmlDSig.new()

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

success = validator.LoadSignatureSb(sbXml)
if (success == false)
    print validator.lastErrorText() + "\n";
    exit
end

# Validate signatures as usual..
i = 0
while i < validator.get_NumSignatures()
    validator.put_Selector(i)

    valid = validator.VerifySignature(true)
    print "Signature " + (i + 1).to_s() + " and all reference digests OK = " + valid.to_s() + "\n";

    i = i + 1
end