Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(VB.NET UWP/WinRT) Verify a CAdES-BES Signature and Examine Signature ContentsDemonstrates how to validate a .p7m (.p7s) signature and examine the contents of the signature.
' This example requires the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. Dim crypt As New Chilkat.Crypt2 Dim outputFile As String = "qa_output/original.xml" Dim inFile As String = "qa_data/p7m/fattura_signature.xml.p7m" ' Verify the signature and extract the contained file, which in this case is XML. Dim success As Boolean = crypt.VerifyP7M(inFile,outputFile) If (success = False) Then Debug.WriteLine(crypt.LastErrorText) Exit Sub End If Debug.WriteLine("Signature validated.") ' Now let's examine the information about the signature. Dim json As Chilkat.JsonObject = crypt.LastJsonData() If (crypt.LastMethodSuccess = False) Then ' This should never be the case... Debug.WriteLine("No information available.") Exit Sub End If json.EmitCompact = False Debug.WriteLine(json.Emit()) ' Here's an example of the information about the signature: ' { ' "pkcs7": { ' "verify": { ' "certs": [ ' { ' "issuerCN": "Xyz EU Qualified Certificates CA G1", ' "serial": "99A28A51AC389999" ' } ' ], ' "useConstructedOctets": true, ' "digestAlgorithms": [ ' "sha256" ' ], ' "signerInfo": [ ' { ' "cert": { ' "subjectKeyIdentifier": "5VM4x8AWnXf07yzbXuLtbb0U3yY=", ' "digestAlgOid": "2.16.840.1.101.3.4.2.1", ' "digestAlgName": "SHA256" ' }, ' "signingAlgOid": "1.2.840.113549.1.1.11", ' "signingAlgName": "RSA-SHA256-PKCSV-1_5", ' "authAttr": { ' "1.2.840.113549.1.9.3": { ' "name": "contentType", ' "oid": "1.2.840.113549.1.7.1" ' }, ' "1.2.840.113549.1.9.5": { ' "name": "signingTime", ' "utctime": "190901152340Z" ' }, ' "1.2.840.113549.1.9.4": { ' "name": "messageDigest", ' "digest": "y+gd/zAQK33A//HInhaZba7w1fUJleV9AHbP1Ntx6U0=" ' }, ' "1.2.840.113549.1.9.16.2.47": { ' "name": "signingCertificateV2", ' "der": "MIH4MI..w4vv0=" ' } ' } ' } ' ] ' } ' } ' } ' Use this online tool to generate parsing code from sample JSON: ' Generate Parsing Code from JSON Dim authAttrSigningTimeUtctime As New Chilkat.DtObj Dim issuerCN As String Dim serial As String Dim strVal As String Dim certSubjectKeyIdentifier As String Dim certDigestAlgOid As String Dim certDigestAlgName As String Dim signingAlgOid As String Dim signingAlgName As String Dim authAttrContentTypeName As String Dim authAttrContentTypeOid As String Dim authAttrSigningTimeName As String Dim authAttrMessageDigestName As String Dim authAttrMessageDigestDigest As String Dim authAttrSigningCertificateV2Name As String Dim authAttrSigningCertificateV2Der As String Dim i As Integer = 0 Dim count_i As Integer = json.SizeOfArray("pkcs7.verify.certs") While i < count_i json.I = i issuerCN = json.StringOf("pkcs7.verify.certs[i].issuerCN") serial = json.StringOf("pkcs7.verify.certs[i].serial") i = i + 1 End While i = 0 count_i = json.SizeOfArray("pkcs7.verify.digestAlgorithms") While i < count_i json.I = i strVal = json.StringOf("pkcs7.verify.digestAlgorithms[i]") i = i + 1 End While i = 0 count_i = json.SizeOfArray("pkcs7.verify.signerInfo") While i < count_i json.I = i certSubjectKeyIdentifier = json.StringOf("pkcs7.verify.signerInfo[i].cert.subjectKeyIdentifier") certDigestAlgOid = json.StringOf("pkcs7.verify.signerInfo[i].cert.digestAlgOid") certDigestAlgName = json.StringOf("pkcs7.verify.signerInfo[i].cert.digestAlgName") signingAlgOid = json.StringOf("pkcs7.verify.signerInfo[i].signingAlgOid") signingAlgName = json.StringOf("pkcs7.verify.signerInfo[i].signingAlgName") authAttrContentTypeName = json.StringOf("pkcs7.verify.signerInfo[i].authAttr.""1.2.840.113549.1.9.3"".name") authAttrContentTypeOid = json.StringOf("pkcs7.verify.signerInfo[i].authAttr.""1.2.840.113549.1.9.3"".oid") authAttrSigningTimeName = json.StringOf("pkcs7.verify.signerInfo[i].authAttr.""1.2.840.113549.1.9.5"".name") json.DtOf("pkcs7.verify.signerInfo[i].authAttr.""1.2.840.113549.1.9.5"".utctime",False,authAttrSigningTimeUtctime) authAttrMessageDigestName = json.StringOf("pkcs7.verify.signerInfo[i].authAttr.""1.2.840.113549.1.9.4"".name") authAttrMessageDigestDigest = json.StringOf("pkcs7.verify.signerInfo[i].authAttr.""1.2.840.113549.1.9.4"".digest") authAttrSigningCertificateV2Name = json.StringOf("pkcs7.verify.signerInfo[i].authAttr.""1.2.840.113549.1.9.16.2.47"".name") authAttrSigningCertificateV2Der = json.StringOf("pkcs7.verify.signerInfo[i].authAttr.""1.2.840.113549.1.9.16.2.47"".der") i = i + 1 End While |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.