![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Unicode C++) Example: Mime.GetDecryptCertInfo methodDemonstrates the Note: This example requires Chilkat v11.4.0 or greater.
#include <CkMimeW.h> #include <CkJsonObjectW.h> void ChilkatSample(void) { bool success = false; CkMimeW 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(L"qa_data/mime/enveloped_data.eml"); if (success == false) { wprintf(L"%s\n",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. CkJsonObjectW json; success = mime.GetDecryptCertInfo(json); if (success == false) { wprintf(L"%s\n",mime.lastErrorText()); return; } json.put_EmitCompact(false); wprintf(L"%s\n",json.emit()); // Sample output: // { // "recipientInfo": [ // { // "serial": "****", // "issuerCN": "****" // } // ] // } // Get each certificate's information like this: const wchar_t *serial = 0; const wchar_t *issuerCN = 0; int i = 0; int count = json.SizeOfArray(L"recipientInfo"); while (i < count) { json.put_I(i); serial = json.stringOf(L"recipientInfo[i].serial"); issuerCN = json.stringOf(L"recipientInfo[i].issuerCN"); i = i + 1; } } |
||||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.