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

 

 

 

 

 

 

 

Decrypt P7M using PFX to get MIME

Demonstrates how to decrypt a .p7m (PKCS7) binary file using a certificate and private key from a PFX file. The result of the decryption (in this case) is MIME text that may be loaded into a Chilkat MIME object.

Note: Any type of file or data may be encrypted to produce a .p7m (PKCS7) encrypted file. This example was prompted by a customer needing to decrypt a MIME message. The final step of loading the decrypted text into a MIME object would be skipped if decrypting something other than MIME..

Downloads for Windows/Linux and Install Instructions

require 'rubygems'
require 'chilkat'

crypt = Chilkat::CkCrypt2.new()

#  Any string argument automatically begins the 30-day trial.
success = crypt.UnlockComponent("30-day trial")
if (success != true)
    print crypt.lastErrorText() + "\n"
    exit
end

#  Read the P7M file into memory.
p7mData = Chilkat::CkByteData.new()
success = crypt.ReadFile("encrypted.p7m",p7mData)
if (success != true)
    print crypt.lastErrorText() + "\n"
    exit
end

#  Setup the crypt object:

#  Indicate that public-key decryption is to be used.
crypt.put_CryptAlgorithm("pki")

#  Add a PFX file to allow the crypt object to find
#  the certificate and private key needed for decryption
pfxFilePath = "myPfx.pfx"
pfxPassword = "secret"
success = crypt.AddPfxSourceFile(pfxFilePath,pfxPassword)
if (success != true)
    print crypt.lastErrorText() + "\n"
    exit
end

#  Assuming the decrypted data will be text, decrypt to
#  a string.
mimeText = crypt.decryptString(p7mData)
if (mimeText == nil )
    print crypt.lastErrorText() + "\n"
    exit
end

#  Note: Chilkat Crypt and Chilkat MIME are separate products.
#  To use both objects, one would license the "Chilkat Bundle",
#  which provides licenses to all existing Chilkat products.
#  This is less expensive than licensing each of the two products separately.

mime = Chilkat::CkMime.new()

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

#  Load the MIME text into the MIME object.
success = mime.LoadMime(mimeText)
if (success != true)
    print mime.lastErrorText() + "\n"
    exit
end

#  Save the MIME to a file:
success = mime.SaveMime("outMime.txt")
if (success != true)
    print mime.lastErrorText() + "\n"
    exit
end

#  Success!  Output the MIME text:
print mime.getMime() + "\n";
 

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