Sample code for 30+ languages & platforms
Xojo Plugin

Example: Mime.GetDecryptCertInfo method

Demonstrates the GetDecryptCertInfo method.

Chilkat Xojo Plugin Downloads

Xojo Plugin
Dim success As Boolean
success = False

Dim mime As New Chilkat.Mime

// Load MIME that is has Content-Type like this:
// Content-Type: application/pkcs7-mime; smime-type="enveloped-data"; name="smime.p7m"; smime-type="enveloped-data"
success = mime.LoadMimeFile("qa_data/mime/enveloped_data.eml")
If (success = False) Then
    System.DebugLog(mime.LastErrorText)
    Return
End If

// Get information about the certificate that would be needed to decrypt.
// An enveloped-data can potentially be decrypted by multiple certificates if it was encrypted in a way that allows it,
// but in most cases, only a single certificate with associated private key (that of the message recipient) is possible.
Dim json As New Chilkat.JsonObject
success = mime.GetDecryptCertInfo(json)
If (success = False) Then
    System.DebugLog(mime.LastErrorText)
    Return
End If

json.EmitCompact = False
System.DebugLog(json.Emit())

// Sample output:

// {
//   "recipientInfo": [
//     {
//       "serial": "****",
//       "issuerCN": "****"
//     }
//   ]
// }

// Get each certificate's information like this:
Dim serial As String
Dim issuerCN As String

Dim i As Int32
i = 0
Dim count As Int32
count = json.SizeOfArray("recipientInfo")
While i < count
    json.I = i
    serial = json.StringOf("recipientInfo[i].serial")
    issuerCN = json.StringOf("recipientInfo[i].issuerCN")
    i = i + 1
Wend