Programming Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

C Examples

Bounced Mail
Bz2
Certificates/Keys
Charset
CSV
DKIM / DomainKey
Diffie-Hellman
DSA
Email Object
Encryption
FileAccess
FTP
HTML Conversion
HTTP
IMAP
MHT / HTML Email
MIME
NTLM
POP3
RSA
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
Zip
Amazon S3

 

 

 

 

 

 

 

 

Decrypt P7M using PFX to get MIME

Demonstrates how to decrypt a .p7m (PKCS7) binary file using a certificate and private key from a PFX file. The result of the decryption (in this case) is MIME text that may be loaded into a Chilkat MIME object.

Note: Any type of file or data may be encrypted to produce a .p7m (PKCS7) encrypted file. This example was prompted by a customer needing to decrypt a MIME message. The final step of loading the decrypted text into a MIME object would be skipped if decrypting something other than MIME..

Downloads:

MS Windows Visual C/C++ Libraries
Linux/CentOS C/C++ Libraries
MAC OS X C/C++ Libraries
Solaris C/C++ Libraries
C++ Builder Libraries
FreeBSD C++ Libraries
HP-UX C++ Libraries
BlackBerry QNX C++ Libraries
#include <C_CkCrypt2.h>
#include <C_CkByteData.h>
#include <C_CkMime.h>

void ChilkatSample(void)
    {
    HCkCrypt2 crypt;
    BOOL success;
    HCkByteData p7mData;
    const char * pfxFilePath;
    const char * pfxPassword;
    const char * mimeText;
    HCkMime mime;

    crypt = CkCrypt2_Create();

    //  Any string argument automatically begins the 30-day trial.

    success = CkCrypt2_UnlockComponent(crypt,"30-day trial");
    if (success != TRUE) {
        printf("%s\n",CkCrypt2_lastErrorText(crypt));
        return;
    }

    //  Read the P7M file into memory.
    p7mData = CkByteData_Create();
    success = CkCrypt2_ReadFile(crypt,"encrypted.p7m",p7mData);
    if (success != TRUE) {
        printf("%s\n",CkCrypt2_lastErrorText(crypt));
        return;
    }

    //  Setup the crypt object:

    //  Indicate that public-key decryption is to be used.
    CkCrypt2_putCryptAlgorithm(crypt,"pki");

    //  Add a PFX file to allow the crypt object to find
    //  the certificate and private key needed for decryption

    pfxFilePath = "myPfx.pfx";

    pfxPassword = "secret";
    success = CkCrypt2_AddPfxSourceFile(crypt,pfxFilePath,pfxPassword);
    if (success != TRUE) {
        printf("%s\n",CkCrypt2_lastErrorText(crypt));
        return;
    }

    //  Assuming the decrypted data will be text, decrypt to
    //  a string.

    mimeText = CkCrypt2_decryptString(crypt,p7mData);
    if (mimeText == 0 ) {
        printf("%s\n",CkCrypt2_lastErrorText(crypt));
        return;
    }

    //  Note: Chilkat Crypt and Chilkat MIME are separate products.
    //  To use both objects, one would license the "Chilkat Bundle",
    //  which provides licenses to all existing Chilkat products.
    //  This is less expensive than licensing each of the two products separately.

    mime = CkMime_Create();

    success = CkMime_UnlockComponent(mime,"Anyting for 30-day trial");
    if (success != TRUE) {
        printf("%s\n",CkMime_lastErrorText(mime));
        return;
    }

    //  Load the MIME text into the MIME object.
    success = CkMime_LoadMime(mime,mimeText);
    if (success != TRUE) {
        printf("%s\n",CkMime_lastErrorText(mime));
        return;
    }

    //  Save the MIME to a file:
    success = CkMime_SaveMime(mime,"outMime.txt");
    if (success != TRUE) {
        printf("%s\n",CkMime_lastErrorText(mime));
        return;
    }

    //  Success!  Output the MIME text:
    printf("%s\n",CkMime_getMime(mime));

    CkCrypt2_Dispose(crypt);
    CkByteData_Dispose(p7mData);
    CkMime_Dispose(mime);

    }

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.