Sample code for 30+ languages & platforms
Go

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

Go
    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.NewStringBuilder()
    success = sbXml.LoadFile("qa_data/xml_dsig_valid_samples/externalFile/test.pdf.XAdES","utf-8")
    if success == false {
        fmt.Println("Failed to load XAdES input file.")
        sbXml.DisposeStringBuilder()
        return
    }

    validator := chilkat.NewXmlDSig()

    // 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.SetExternalRefDirs("qa_data/externalFiles;qa_data/xml_dsig_valid_samples/externalFile;c:/someOtherDir")

    success = validator.LoadSignatureSb(sbXml)
    if success == false {
        fmt.Println(validator.LastErrorText())
        sbXml.DisposeStringBuilder()
        validator.DisposeXmlDSig()
        return
    }

    // Validate signatures as usual..
    i := 0
    for i < validator.NumSignatures() {
        validator.SetSelector(i)

        valid := validator.VerifySignature(true)
        fmt.Println("Signature ", i + 1, " and all reference digests OK = ", valid)

        i = i + 1
    }


    sbXml.DisposeStringBuilder()
    validator.DisposeXmlDSig()