Sample code for 30+ languages & platforms
C#

Example: Mime.GetDecryptCertInfo method

Demonstrates the GetDecryptCertInfo method.

Chilkat C# Downloads

C#
bool success = false;

Chilkat.Mime mime = 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) {
    Debug.WriteLine(mime.LastErrorText);
    return;
}

//  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.
Chilkat.JsonObject json = new Chilkat.JsonObject();
success = mime.GetDecryptCertInfo(json);
if (success == false) {
    Debug.WriteLine(mime.LastErrorText);
    return;
}

json.EmitCompact = false;
Debug.WriteLine(json.Emit());

//  Sample output:

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

//  Get each certificate's information like this:
string serial;
string issuerCN;

int i = 0;
int 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;
}