Sample code for 30+ languages & platforms
Go

Verify XML Digital Signature

See more XML Digital Signatures Examples

Verifies XML signatures in an XML file.

Chilkat Go Downloads

Go
    success := false

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

    sbXml := chilkat.NewStringBuilder()
    success = sbXml.LoadFile("qa_data/xml_dsig_verify/csioz_sample.xml","utf-8")
    if success != true {
        fmt.Println("Failed to load XML file.")
        sbXml.DisposeStringBuilder()
        return
    }

    dsig := chilkat.NewXmlDSig()

    // First load the XML containing the signatures to be verified.
    success = dsig.LoadSignatureSb(sbXml)
    if success != true {
        fmt.Println(dsig.LastErrorText())
        sbXml.DisposeStringBuilder()
        dsig.DisposeXmlDSig()
        return
    }

    // It's possible that an XML document can contain multiple signatures.
    // Each can be verified as follows:
    i := 0
    for i < dsig.NumSignatures() {
        // Select the Nth signature by setting the Selector property.
        dsig.SetSelector(i)

        // The bVerifyReferenceDigests argument determines if we want
        // to also verify each reference digest.  If set to false,
        // then only the SignedInfo part of the Signature is verified.
        bVerifyReferenceDigests := true
        bVerified := dsig.VerifySignature(bVerifyReferenceDigests)
        fmt.Println("Signature ", i + 1, " verified = ", bVerified)

        i = i + 1
    }


    sbXml.DisposeStringBuilder()
    dsig.DisposeXmlDSig()