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
(Excel) P7S - Access Signature Information (date/time, certificate used, etc.)Examine a PKCS7 signature (.p7s) and get information about it. Note: This example requires Chilkat v9.5.0.75 or greater.
' This requires the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. ' First load the .p7s file into a BinData object.. Dim bd As Chilkat.BinData Set bd = Chilkat.NewBinData success = bd.LoadFile("qa_data/p7s/sample.p7s") If (success <> True) Then Debug.Print "Failed to load .p7s file." Exit Sub End If ' IMPORTANT: This example requires Chilkat v9.5.0.75 or greater. Dim crypt As Chilkat.Crypt2 Set crypt = Chilkat.NewCrypt2 ' Assuming this is a signature that contains the original data that was signed.. success = crypt.OpaqueVerifyBd(bd) If (success <> True) Then Debug.Print crypt.LastErrorText Exit Sub End If ' Examine the LastJsonData after signature verification.. Set json = crypt.LastJsonData() json.EmitCompact = False Debug.Print json.Emit() ' -- ' IMPORTANT: This example requires Chilkat v9.5.0.75 or greater. ' -- ' Sample output... ' Go to http://tools.chilkat.io/jsonParse.cshtml ' and paste the JSON into the online form to generate JSON parsing code. ' { ' "pkcs7": { ' "verify": { ' "digestAlgorithms": [ ' "sha256" ' ], ' "signerInfo": [ ' { ' "cert": { ' "serialNumber": "AAC5FC48C0FD8FBB", ' "issuerCN": "AC ABCDEF RFB v5", ' "issuerDN": "", ' "digestAlgOid": "2.16.840.1.101.3.4.2.1", ' "digestAlgName": "SHA-256" ' }, ' "contentType": "1.2.840.113549.1.7.1", ' "signingTime": "180607195054Z", ' "messageDigest": "trzyxXbZ96z2M4mncyZ7BNMV4yIT92+5sS27Fu64iG8=", ' "signingAlgOid": "1.2.840.113549.1.1.11", ' "signerDigest": "trzyxXbZ96z2M4mncyZ7BNMV4yIT92+5sS27Fu64iG8=" ' }, ' { ' "cert": { ' "serialNumber": "324FB38ABD59723F", ' "issuerCN": "AC ABCDEF RFB v5", ' "issuerDN": "", ' "digestAlgOid": "2.16.840.1.101.3.4.2.1", ' "digestAlgName": "SHA-256" ' }, ' "contentType": "1.2.840.113549.1.7.1", ' "signingTime": "180608182517Z", ' "messageDigest": "trzyxXbZ96z2M4mncyZ7BNMV4yIT92+5sS27Fu64iG8=", ' "signingAlgOid": "1.2.840.113549.1.1.11", ' "signerDigest": "trzyxXbZ96z2M4mncyZ7BNMV4yIT92+5sS27Fu64iG8=" ' } ' ] ' } ' } ' } ' Dim dt As Chilkat.CkDateTime Set dt = Chilkat.NewCkDateTime i = 0 count_i = json.SizeOfArray("pkcs7.verify.digestAlgorithms") Do While i < count_i json.I = i strVal = json.StringOf("pkcs7.verify.digestAlgorithms[i]") i = i + 1 Loop i = 0 count_i = json.SizeOfArray("pkcs7.verify.signerInfo") Do While i < count_i json.I = i certSerialNumber = json.StringOf("pkcs7.verify.signerInfo[i].cert.serialNumber") certIssuerCN = json.StringOf("pkcs7.verify.signerInfo[i].cert.issuerCN") certIssuerDN = json.StringOf("pkcs7.verify.signerInfo[i].cert.issuerDN") certDigestAlgOid = json.StringOf("pkcs7.verify.signerInfo[i].cert.digestAlgOid") certDigestAlgName = json.StringOf("pkcs7.verify.signerInfo[i].cert.digestAlgName") contentType = json.StringOf("pkcs7.verify.signerInfo[i].contentType") signingTime = json.StringOf("pkcs7.verify.signerInfo[i].signingTime") ' The signingTime isin UTCTime format. ' UTCTime values take the form of either "YYMMDDhhmm[ss]Z" or "YYMMDDhhmm[ss](+|-)hhmm" ' Starting in Chilkat v9.5.0.77, the SetFromTimestamp method auto-recognizes the UTCTime format and parses it correctly. success = dt.SetFromTimestamp(signingTime) ' To get the signingTime in other date/time formats, look at the online reference documentation for CkDateTime. ' There are numerous methods such as GetAsDateTime, GetAsIso8601, GetAsUnixTime, GetAsRfc822, etc. messageDigest = json.StringOf("pkcs7.verify.signerInfo[i].messageDigest") signingAlgOid = json.StringOf("pkcs7.verify.signerInfo[i].signingAlgOid") signerDigest = json.StringOf("pkcs7.verify.signerInfo[i].signerDigest") i = i + 1 Loop ' println crypt.LastErrorText; Debug.Print "Success." |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.