Sample code for 30+ languages & platforms
VBScript Requires Chilkat v11.0.0+

Verify a .p7m and get Algorithm Information

See more Digital Signatures Examples

Demonstrates how to verify a .p7m and then examine the algorithms used by the signature.

Chilkat VBScript Downloads

VBScript
Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
'Create a Unicode (utf-16) output text file.
Set outFile = fso.CreateTextFile("output.txt", True, True)

success = 0

'  This example requires the Chilkat API to have been previously unlocked.
'  See Global Unlock Sample for sample code.

set crypt = CreateObject("Chilkat.Crypt2")

inFile = "qa_data/p7m/brainpoolP256r1.p7m"
outFile = "qa_output/something.dat"

'  Verify and extract the signed data.
success = crypt.VerifyP7M(inFile,outFile)
If (success = 0) Then
    outFile.WriteLine(crypt.LastErrorText)
    WScript.Quit
End If

'  Examine details about the signature(s)
set json = CreateObject("Chilkat.JsonObject")
crypt.GetLastJsonData json
json.EmitCompact = 0
outFile.WriteLine(json.Emit())

'  Sample output

'  {
'    "pkcs7": {
'      "verify": {
'        "digestAlgorithms": [
'          "sha256"
'        ],
'        "signerInfo": [
'          {
'            "cert": {
'              "serialNumber": "FFFFE552B302FFFFFF1E34C3ACEB2FFFF",
'              "issuerCN": "The common name of the cert...",
'              "issuerDN": "",
'              "digestAlgOid": "2.16.840.1.101.3.4.2.1",
'              "digestAlgName": "SHA256"
'            },
'            "contentType": "1.2.840.113549.1.7.1",
'            "signingTime": "190409140500Z",
'            "messageDigest": "lQe9If7vZKFf/NlSYu5Esmlw3phVK/RFsbbb1uH73t8=",
'            "signingAlgOid": "1.2.840.10045.4.3.2",
'            "signerDigest": "lQe9If7vZKFf/NlSYu5Esmlw3phVK/RFsbbb1uH73t8=",
'            "authAttr": [
'              {
'                "oid": "1.2.840.113549.1.9.3",
'                "oidName": "contentType"
'              },
'              {
'                "oid": "1.2.840.113549.1.9.5",
'                "oidName": "signingTime"
'              },
'              {
'                "oid": "1.2.840.113549.1.9.52",
'                "oidName": "1.2.840.113549.1.9.52",
'                "der": "MBs ... AwI="
'              },
'              {
'                "oid": "1.2.840.113549.1.9.4",
'                "oidName": "messageDigest"
'              },
'              {
'                "oid": "1.2.840.113549.1.9.16.2.47",
'                "oidName": "signingCertificateV2",
'                "der": "MCYw .. 7PlQ=="
'              },
'              {
'                "oid": "1.2.840.113549.1.9.20",
'                "oidName": "1.2.840.113549.1.9.20"
'              }
'            ]
'          }
'        ]
'      }
'    }
'  }

'  Code for parsing the above JSON...

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")
    messageDigest = json.StringOf("pkcs7.verify.signerInfo[i].messageDigest")
    signingAlgOid = json.StringOf("pkcs7.verify.signerInfo[i].signingAlgOid")
    signerDigest = json.StringOf("pkcs7.verify.signerInfo[i].signerDigest")
    j = 0
    count_j = json.SizeOfArray("pkcs7.verify.signerInfo[i].authAttr")
    Do While j < count_j
        json.J = j
        oid = json.StringOf("pkcs7.verify.signerInfo[i].authAttr[j].oid")
        oidName = json.StringOf("pkcs7.verify.signerInfo[i].authAttr[j].oidName")
        der = json.StringOf("pkcs7.verify.signerInfo[i].authAttr[j].der")
        j = j + 1
    Loop
    i = i + 1
Loop

outFile.WriteLine("Success!")

outFile.Close