C
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 C Downloads
#include <C_CkMime.h>
#include <C_CkCrypt2.h>
void ChilkatSample(void)
{
BOOL success;
HCkMime mime;
HCkCrypt2 crypt;
const char *inPath;
const char *outPath;
success = FALSE;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
mime = CkMime_Create();
success = CkMime_LoadMimeFile(mime,"c:/aaworkarea/EmailInBytes.txt");
if (success != TRUE) {
printf("%s\n",CkMime_lastErrorText(mime));
CkMime_Dispose(mime);
return;
}
success = CkMime_SaveBody(mime,"c:/aaworkarea/smime.p7m");
if (success != TRUE) {
printf("%s\n",CkMime_lastErrorText(mime));
CkMime_Dispose(mime);
return;
}
crypt = CkCrypt2_Create();
success = CkCrypt2_AddPfxSourceFile(crypt,"c:/aaworkarea/my.pfx","pfxPassword");
if (success == FALSE) {
printf("%s\n",CkCrypt2_lastErrorText(crypt));
CkMime_Dispose(mime);
CkCrypt2_Dispose(crypt);
return;
}
// Indicate the public-key (PKCS7) encryption/decryption should be used:
CkCrypt2_putCryptAlgorithm(crypt,"pki");
inPath = "c:/aaworkarea/smime.p7m";
outPath = "c:/aaworkarea/decrypted.dat";
success = CkCrypt2_CkDecryptFile(crypt,inPath,outPath);
if (success == FALSE) {
printf("%s\n",CkCrypt2_lastErrorText(crypt));
CkMime_Dispose(mime);
CkCrypt2_Dispose(crypt);
return;
}
printf("Success.\n");
CkMime_Dispose(mime);
CkCrypt2_Dispose(crypt);
}