Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Xojo Plugin) 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 outputFile = "qa_output/original.xml" Dim inFile As String inFile = "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 success = crypt.VerifyP7M(inFile,outputFile) If (success = False) Then System.DebugLog(crypt.LastErrorText) Return End If System.DebugLog("Signature validated.") // Now let's examine the information about the signature. Dim json As Chilkat.JsonObject json = crypt.LastJsonData() If (crypt.LastMethodSuccess = False) Then // This should never be the case... System.DebugLog("No information available.") Return End If json.EmitCompact = False System.DebugLog(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 Int32 i = 0 Dim count_i As Int32 count_i = 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 Wend 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 Wend 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") success = 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 Wend |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.