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

 

 

 

 

 

 

 

 

Unwrap S/MIME Security Layers

Demonstrates how to unwrap the security layers of a signed and/or encrypted S/MIME message.

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

void ChilkatSample(void)
    {

    long i;
    CkMime mime;

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

    //  Note: Your S/MIME file may have a different file extension.
    success = mime.LoadMimeFile("smime.eml");
    if (success == false) {
        printf("%s\n",mime.lastErrorText());
        return;
    }

    //  Unwrap any security layers so that the resultant MIME
    //  is the original message before signing and/or encrypting
    //  was applied.  UnwrapSecurity returns true if
    //  there was nothing to unwrap, or if all signatures were verified,
    //  and all decryptions succeeded.
    success = mime.UnwrapSecurity();
    if (success == false) {
        printf("%s\n",mime.lastErrorText());
        return;
    }

    //  Save the unwrapped S/MIME:
    success = mime.SaveMime("unwrapped.eml");
    if (success == false) {
        printf("%s\n",mime.lastErrorText());
        return;
    }

    //  Let's see if the MIME was signed, and if so whether
    //  the signature(s) were verified.  Also, examine the certificate
    //  used for signing.
    CkCert *cert = 0;

    //  Unwrapping the security sets the NumSignerCerts property.
    //  If it is non-zero, then signatures were unwrapped...
    printf("Signer Certificates: \n");
    long numSignerCerts;
    numSignerCerts = mime.get_NumSignerCerts();
    if (numSignerCerts > 0) {
        for (i = 0; i <= numSignerCerts - 1; i++) {
            cert = mime.GetSignerCert(i);
            if (!(cert == 0 )) {
                //  Show the cert's common name.
                printf("%s\n",cert->subjectCN());
            }

        }

    }

    //  Now check to see if anything was decrypted.
    printf("Encryption Certificates: \n");
    long numEncryptCerts;
    numEncryptCerts = mime.get_NumEncryptCerts();
    if (numEncryptCerts > 0) {
        for (i = 0; i <= numEncryptCerts - 1; i++) {
            cert = mime.GetEncryptCert(i);
            if (!(cert == 0 )) {
                //  Show the cert's common name.
                printf("%s\n",cert->subjectCN());
            }

        }

    }


    }

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

Mail Component · .NET Mail Component · XML Parser