VB.NET
VB.NET
Get Certificates within XML Signature
See more XML Digital Signatures Examples
Demonstrates how to get the certificates contained within an XML signature.Chilkat VB.NET Downloads
Dim success As Boolean = False
' This example requires the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
Dim sbXml As New Chilkat.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) Then
Debug.WriteLine("Failed to load the XML file..")
Exit Sub
End If
Dim dsig As New Chilkat.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) Then
Debug.WriteLine(dsig.LastErrorText)
Exit Sub
End If
' For each signature, verify and also get the certificate(s) contained within each Signature.
Dim i As Integer = 0
Dim saCerts As New Chilkat.StringArray
Dim cert As New Chilkat.Cert
Debug.WriteLine("numSignatures = " & dsig.NumSignatures)
While i < dsig.NumSignatures
' Select the Nth signature by setting the Selector property.
dsig.Selector = i
Dim bVerifyReferenceDigests As Boolean = True
Dim bVerified As Boolean = dsig.VerifySignature(bVerifyReferenceDigests)
Debug.WriteLine("Signature " & (i + 1) & " verified = " & bVerified)
' Get the certificates embedded in this signature.
saCerts.Clear()
success = dsig.GetCerts(saCerts)
If (success = True) Then
Dim j As Integer = 0
While j < saCerts.Count
success = cert.LoadFromBase64(saCerts.GetString(j))
If (success = True) Then
Debug.WriteLine(" " & cert.SubjectDN)
End If
j = j + 1
End While
End If
i = i + 1
End While