Chilkat2-Python
Chilkat2-Python
Get Certificates within XML Signature
See more XML Digital Signatures Examples
Demonstrates how to get the certificates contained within an XML signature.Chilkat Chilkat2-Python Downloads
import sys
import chilkat2
success = False
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
sbXml = chilkat2.StringBuilder()
# Load XML containing one or more signatures.
success = sbXml.LoadFile("qa_data/xml_dsig_valid_samples/multipleSigners/sp.pdf.XAdES.xml","utf-8")
if (success == False):
print("Failed to load the XML file..")
sys.exit()
dsig = chilkat2.XmlDSig()
# First load the XML containing the signatures to be verified.
# Note that this particular Signature already contains the RSA public key that will be used
# for verification.
success = dsig.LoadSignatureSb(sbXml)
if (success != True):
print(dsig.LastErrorText)
sys.exit()
# For each signature, verify and also get the certificate(s) contained within each Signature.
i = 0
saCerts = chilkat2.StringArray()
cert = chilkat2.Cert()
print("numSignatures = " + str(dsig.NumSignatures))
while i < dsig.NumSignatures :
# Select the Nth signature by setting the Selector property.
dsig.Selector = i
bVerifyReferenceDigests = True
bVerified = dsig.VerifySignature(bVerifyReferenceDigests)
print("Signature " + str(i + 1) + " verified = " + str(bVerified))
# Get the certificates embedded in this signature.
saCerts.Clear()
success = dsig.GetCerts(saCerts)
if (success == True):
j = 0
while j < saCerts.Count :
success = cert.LoadFromBase64(saCerts.GetString(j))
if (success == True):
print(" " + cert.SubjectDN)
j = j + 1
i = i + 1