Ruby Examples

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

Ruby
Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML Conversion
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
SFTP
SMTP
Socket / SSL
Spider
SSH
SSH Key
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
Bzip2
DH Key Exchange
DSA
LZW

 

 

 

 

 

 

 

Unwrap S/MIME Security Layers

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

Downloads for Windows/Linux and Install Instructions

require 'rubygems'
require 'chilkat'



mime = Chilkat::CkMime.new()

success = mime.UnlockComponent("Anything for 30-day trial")
if (success == false)
    print mime.lastErrorText() + "\n"
    exit
end

#  Note: Your S/MIME file may have a different file extension.
success = mime.LoadMimeFile("smime.eml")
if (success == false)
    print mime.lastErrorText() + "\n"
    exit
end

#  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)
    print mime.lastErrorText() + "\n"
    exit
end

#  Save the unwrapped S/MIME:
success = mime.SaveMime("unwrapped.eml")
if (success == false)
    print mime.lastErrorText() + "\n"
    exit
end

#  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.get_NumSignerCerts()
if (numSignerCerts > 0)
    for i in 0 .. numSignerCerts - 1
        # cert is a CkCert
        cert = mime.GetSignerCert(i)
        if (!(cert == nil ))
            #  Show the cert's common name.
            print cert.subjectCN() + "\n";
        end

    end
end

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

    end
end


 

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