Perl Examples

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

Perl Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML Conversion
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
SMTP
Socket / SSL
Spider
SFTP
SSH Key
SSH
SSH Tunnel
Tar
HTTP Upload
XML
XMP
Zip

More Examples...
String
Amazon S3
Email Object
DKIM / DomainKey
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
Bzip2
LZW

 

 

 

 

 

 

 

Unwrap S/MIME Security Layers

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

 Chilkat Perl Module Downloads for Windows, Linux, and MAC OS X

use chilkat();



$mime = new chilkat::CkMime();

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

#  Note: Your S/MIME file may have a different file extension.
$success = $mime->LoadMimeFile("smime.eml");
if ($success == 0) {
    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 == 0) {
    print $mime->lastErrorText() . "\n";
    exit;
}

#  Save the unwrapped S/MIME:
$success = $mime->SaveMime("unwrapped.eml");
if ($success == 0) {
    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: " . "\r\n";
$numSignerCerts = $mime->get_NumSignerCerts();
if ($numSignerCerts > 0) {
    for ($i = 0; $i <= $numSignerCerts - 1; $i++) {
        # cert is a CkCert
        $cert = $mime->GetSignerCert($i);
        if (!($cert eq null )) {
            #  Show the cert's common name.
            print $cert->subjectCN() . "\r\n";
        }

    }

}

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

    }

}


 

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