Visual C++ Examples

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

C++ Examples

CkString
Byte Array
Bounced Mail
Bz2
Character Encoding
CSV
DH Key Exchange
DKIM/DomainKeys
Digital Certificates
Digital Signatures
DSA
Email
Email Object
Encryption
FTP
HTML Conversion
HTTP
IMAP
MHT / HTML Email
POP3
RSA
S/MIME
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
XMP
Zip Compression


More Examples...
Amazon S3
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
LZW

 

 

 

 

 

 

 

 

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 <CkCrypt2.h>
#include <CkByteData.h>
#include <CkMime.h>

void ChilkatSample(void)
    {
    CkCrypt2 crypt;

    //  Any string argument automatically begins the 30-day trial.
    bool success;
    success = crypt.UnlockComponent("30-day trial");
    if (success != true) {
        printf("%s\n",crypt.lastErrorText());
        return;
    }

    //  Read the P7M file into memory.
    CkByteData p7mData;
    success = crypt.ReadFile("encrypted.p7m",p7mData);
    if (success != true) {
        printf("%s\n",crypt.lastErrorText());
        return;
    }

    //  Setup the crypt object:

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

    //  Add a PFX file to allow the crypt object to find
    //  the certificate and private key needed for decryption
    const char * pfxFilePath;
    pfxFilePath = "myPfx.pfx";
    const char * pfxPassword;
    pfxPassword = "secret";
    success = crypt.AddPfxSourceFile(pfxFilePath,pfxPassword);
    if (success != true) {
        printf("%s\n",crypt.lastErrorText());
        return;
    }

    //  Assuming the decrypted data will be text, decrypt to
    //  a string.
    const char * mimeText;
    mimeText = crypt.decryptString(p7mData);
    if (mimeText == 0 ) {
        printf("%s\n",crypt.lastErrorText());
        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.

    CkMime mime;

    success = mime.UnlockComponent("Anyting for 30-day trial");
    if (success != true) {
        printf("%s\n",mime.lastErrorText());
        return;
    }

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

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

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

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

Mail Component · .NET Mail Component · XML Parser