Sample code for 30+ languages & platforms
Visual FoxPro

Verify XML Digital Signature

See more XML Digital Signatures Examples

Verifies XML signatures in an XML file.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loSbXml
LOCAL loDsig
LOCAL i
LOCAL lnBVerifyReferenceDigests
LOCAL lnBVerified

lnSuccess = 0

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

loSbXml = CreateObject('Chilkat.StringBuilder')
lnSuccess = loSbXml.LoadFile("qa_data/xml_dsig_verify/csioz_sample.xml","utf-8")
IF (lnSuccess <> 1) THEN
    ? "Failed to load XML file."
    RELEASE loSbXml
    CANCEL
ENDIF

loDsig = CreateObject('Chilkat.XmlDSig')

* First load the XML containing the signatures to be verified.
lnSuccess = loDsig.LoadSignatureSb(loSbXml)
IF (lnSuccess <> 1) THEN
    ? loDsig.LastErrorText
    RELEASE loSbXml
    RELEASE loDsig
    CANCEL
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 0,
    * then only the SignedInfo part of the Signature is verified.
    lnBVerifyReferenceDigests = 1
    lnBVerified = loDsig.VerifySignature(lnBVerifyReferenceDigests)
    ? "Signature " + STR(i + 1) + " verified = " + STR(lnBVerified)

    i = i + 1
ENDDO

RELEASE loSbXml
RELEASE loDsig