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
(Classic ASP) 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.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <% ' 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.. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.BinData") set bd = Server.CreateObject("Chilkat.BinData") success = bd.LoadFile("qa_data/p7s/sample.p7s") If (success <> 1) Then Response.Write "<pre>" & Server.HTMLEncode( "Failed to load .p7s file.") & "</pre>" Response.End End If ' IMPORTANT: This example requires Chilkat v9.5.0.75 or greater. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.Crypt2") set crypt = Server.CreateObject("Chilkat.Crypt2") ' Assuming this is a signature that contains the original data that was signed.. success = crypt.OpaqueVerifyBd(bd) If (success <> 1) Then Response.Write "<pre>" & Server.HTMLEncode( crypt.LastErrorText) & "</pre>" Response.End End If ' Examine the LastJsonData after signature verification.. ' json is a Chilkat.JsonObject Set json = crypt.LastJsonData() json.EmitCompact = 0 Response.Write "<pre>" & Server.HTMLEncode( json.Emit()) & "</pre>" ' -- ' 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=" ' } ' ] ' } ' } ' } ' ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.CkDateTime") set dt = Server.CreateObject("Chilkat.CkDateTime") 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; Response.Write "<pre>" & Server.HTMLEncode( "Success.") & "</pre>" %> </body> </html> |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.