Sample code for 30+ languages & platforms
Swift

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

Swift

func chilkatTest() {
    var success: Bool = 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..
    let sbXml = CkoStringBuilder()!
    success = sbXml.loadFile(path: "qa_data/xml_dsig_valid_samples/externalFile/test.pdf.XAdES", charset: "utf-8")
    if success == false {
        print("Failed to load XAdES input file.")
        return
    }

    let validator = CkoXmlDSig()!

    // 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.externalRefDirs = "qa_data/externalFiles;qa_data/xml_dsig_valid_samples/externalFile;c:/someOtherDir"

    success = validator.loadSignatureSb(sbXmlSig: sbXml)
    if success == false {
        print("\(validator.lastErrorText!)")
        return
    }

    // Validate signatures as usual..
    var i: Int = 0
    while i < validator.numSignatures.intValue {
        validator.selector = i

        var valid: Bool = validator.verifySignature(verifyReferenceDigests: true)
        print("Signature \(i + 1) and all reference digests OK = \(valid)")

        i = i + 1
    }


}