Sample code for 30+ languages & platforms
Lianja

Verify XML Digital Signature

See more XML Digital Signatures Examples

Verifies XML signatures in an XML file.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

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

loSbXml = createobject("CkStringBuilder")
llSuccess = loSbXml.LoadFile("qa_data/xml_dsig_verify/csioz_sample.xml","utf-8")
if (llSuccess <> .T.) then
    ? "Failed to load XML file."
    release loSbXml
    return
endif

loDsig = createobject("CkXmlDSig")

// First load the XML containing the signatures to be verified.
llSuccess = loDsig.LoadSignatureSb(loSbXml)
if (llSuccess <> .T.) then
    ? loDsig.LastErrorText
    release loSbXml
    release loDsig
    return
endif

// It's possible that an XML document can contain multiple signatures.
// Each can be verified as follows:
i = 0
do while i < loDsig.NumSignatures
    // Select the Nth signature by setting the Selector property.
    loDsig.Selector = i

    // The bVerifyReferenceDigests argument determines if we want
    // to also verify each reference digest.  If set to .F.,
    // then only the SignedInfo part of the Signature is verified.
    llBVerifyReferenceDigests = .T.
    llBVerified = loDsig.VerifySignature(llBVerifyReferenceDigests)
    ? "Signature " + str(i + 1) + " verified = " + str(llBVerified)

    i = i + 1
enddo


release loSbXml
release loDsig