Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
Unwrap S/MIME Security LayersDemonstrates how to unwrap the security layers of a signed and/or encrypted S/MIME message.
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.