Unicode C
Unicode C
Extract PKCS7 from MIME and Decrypt
See more MIME Examples
Extracts the base64-encoded PKCS7 body of a MIME message to a file, and then decrypts using Chilkat Crypt2.Chilkat Unicode C Downloads
#include <C_CkMimeW.h>
#include <C_CkCrypt2W.h>
void ChilkatSample(void)
{
BOOL success;
HCkMimeW mime;
HCkCrypt2W crypt;
const wchar_t *inPath;
const wchar_t *outPath;
success = FALSE;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
mime = CkMimeW_Create();
success = CkMimeW_LoadMimeFile(mime,L"c:/aaworkarea/EmailInBytes.txt");
if (success != TRUE) {
wprintf(L"%s\n",CkMimeW_lastErrorText(mime));
CkMimeW_Dispose(mime);
return;
}
success = CkMimeW_SaveBody(mime,L"c:/aaworkarea/smime.p7m");
if (success != TRUE) {
wprintf(L"%s\n",CkMimeW_lastErrorText(mime));
CkMimeW_Dispose(mime);
return;
}
crypt = CkCrypt2W_Create();
success = CkCrypt2W_AddPfxSourceFile(crypt,L"c:/aaworkarea/my.pfx",L"pfxPassword");
if (success == FALSE) {
wprintf(L"%s\n",CkCrypt2W_lastErrorText(crypt));
CkMimeW_Dispose(mime);
CkCrypt2W_Dispose(crypt);
return;
}
// Indicate the public-key (PKCS7) encryption/decryption should be used:
CkCrypt2W_putCryptAlgorithm(crypt,L"pki");
inPath = L"c:/aaworkarea/smime.p7m";
outPath = L"c:/aaworkarea/decrypted.dat";
success = CkCrypt2W_CkDecryptFile(crypt,inPath,outPath);
if (success == FALSE) {
wprintf(L"%s\n",CkCrypt2W_lastErrorText(crypt));
CkMimeW_Dispose(mime);
CkCrypt2W_Dispose(crypt);
return;
}
wprintf(L"Success.\n");
CkMimeW_Dispose(mime);
CkCrypt2W_Dispose(crypt);
}