Sample code for 30+ languages & platforms
Lua

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

Lua
local chilkat = require("chilkat")

-- 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..
local sbXml = chilkat.StringBuilder.new()
local success = sbXml:load_file("qa_data/xml_dsig_valid_samples/externalFile/test.pdf.XAdES", "utf-8")
if not success then
    print("Failed to load XAdES input file.")
    return
end

local validator = chilkat.XmlDSig.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.external_ref_dirs = "qa_data/externalFiles;qa_data/xml_dsig_valid_samples/externalFile;c:/someOtherDir"

success = validator:load_signature_sb(sbXml)
if not success then
    print(validator.last_error_text)
    return
end

-- Validate signatures as usual..
local i = 0
while i < validator.num_signatures do
    validator.selector = i

    local valid = validator:verify_signature(true)
    print("Signature " .. (i + 1) .. " and all reference digests OK = " .. tostring(valid))

    i = i + 1
end