Programming Examples

ChilkatHOMEASPVisual BasicVB.NETC#CC++MFCDelphiFoxProJavaPerlPythonRubySQL ServerVBScript

PHP ActiveX 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


 

 

 

 

 

 

 

 

Unwrap S/MIME Security Layers

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

<?php



$mime = new COM("Chilkat.Mime");

$success = $mime->UnlockComponent('Anything for 30-day trial');
if ($success == false) {
    print $mime->lastErrorText() . "\n";
    exit;
}

//  Note: Your S/MIME file may have a different file extension.
$success = $mime->LoadMimeFile('smime.eml');
if ($success == false) {
    print $mime->lastErrorText() . "\n";
    exit;
}

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

//  Save the unwrapped S/MIME:
$success = $mime->SaveMime('unwrapped.eml');
if ($success == false) {
    print $mime->lastErrorText() . "\n";
    exit;
}

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

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

    }

}

//  Now check to see if anything was decrypted.
print 'Encryption Certificates: ' . "\n";
$numEncryptCerts = $mime->NumEncryptCerts;
if ($numEncryptCerts > 0) {
    for ($i = 0; $i <= $numEncryptCerts - 1; $i++) {
        // cert is a Chilkat.Cert
        $cert = $mime->GetEncryptCert($i);
        if (!(is_null($cert))) {
            //  Show the cert's common name.
            print $cert->subjectCN() . "\n";
        }

    }

}


?>

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

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