Ruby Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Ruby
Examples

Quick Start
Ruby Unicode
Ruby Byte Array
Ruby Certs
Ruby Email
Ruby Encryption
Ruby FTP
HTML-to-XML
Ruby HTTP
Ruby IMAP
Ruby MHT
Ruby MIME
Ruby S/MIME
Ruby Signatures
Ruby RSA
Ruby Socket
Ruby Spider
Ruby Tar
Ruby Upload
Ruby XML
Ruby XMP
Ruby Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
DH Key Exchange
DSA

Unreleased...
LZW
Bz2
Icon

 

 

 

 

 

 

 

Create S/MIME with Detached Signature

Ruby example to create a simple S/MIME message with a detached digital signature.

Download Chilkat Ruby Library

require 'chilkat'

mime = Chilkat::CkMime.new()

#  Any string argument automatically begins the 30-day trial.
success = mime.UnlockComponent("30-day trial")
if (success != true)
    print "MIME component unlock failed" + "\n"
    exit
end

#  Find our digital certificate from the Current User certificate store.
ccs = Chilkat::CkCreateCS.new()

certStore = ccs.OpenCurrentUserStore()

cert = certStore.FindCertBySubjectCN("Chilkat Software, Inc.")

if (cert == nil )
    print cert.lastErrorText() + "\n"
    exit
end

#  Our MIME object is currently empty.  Add some header fields
#  and a body:
mime.AddHeaderField("subject","this is a test")
mime.AddHeaderField("test123","this is a test 123")
mime.put_ContentType("text/plain")
mime.put_Charset("iso-8859-1")
mime.SetBodyFromPlainText("This is the body")

print "Original MIME message:" + "\n";
print mime.getMime() + "\n";

#  The original MIME looks like this:
#  ----------------------------------
#  subject: this is a test
#  test123: this is a test 123
#  content-type: text/plain;
#  	 charset="iso-8859-1"
# 
#  This is the body
#  ----------------------------------

#  Add a detached signature.  Transfer the header fields
#  from our existing MIME to what will become the new outer
#  envelope.
transferHeaderFields = true
success = mime.AddDetachedSignature2(cert,transferHeaderFields)
if (success != true)
    print mime.lastErrorText() + "\n"
    exit
end

print "----------------------------------" + "\n";
print "S/MIME with detached signature:" + "\n";
print mime.getMime() + "\n";

print "Success!" + "\n"

#  The signed MIME looks like this:
#  --------------------------------
#  content-type: multipart/signed;
#  	boundary="----=_NextPart_e7c_2b68_282042d9.6ba23d56";
#  	protocol="application/x-pkcs7-signature";
#  	micalg=SHA1
#  subject: this is a test
#  test123: this is a test 123
# 
#  This is a multi-part message in MIME format.
# 
#  ------=_NextPart_e7c_2b68_282042d9.6ba23d56
#  content-type: text/plain;
#  	 charset="iso-8859-1"
# 
#  This is the body
#  ------=_NextPart_e7c_2b68_282042d9.6ba23d56
#  content-transfer-encoding: base64
#  content-type: application/x-pkcs7-signature;
#  	name="smime.p7s"
#  content-disposition: attachment;
#  	 filename="smime.p7s"
# 
#  MIIGAAYJKoZIhvcNAQcCoIIF8TCCBe0CAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC
#  A9kwggPVMIIDPqADAgECAhB4ouTcAmLszrGi170k1deSMA0GCSqGSIb3DQEBBQUAMFUxCzAJ
#  BgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMR8wHQYD
#  VQQDExZUaGF3dGUgQ29kZSBTaWduaW5nIENBMB4XDTA3MDExNTAwMDAwMFoXDTA4MDExNTIz
#  NTk1OVowgZ0xCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4GA1UEBxMHV2hl
#  YXRvbjEfMB0GA1UEChMWQ2hpbGthdCBTb2Z0d2FyZSwgSW5jLjEnMCUGA1UECxMeU2VjdXJl
#  IEFwcGxpY2F0aW9uIERldmVsb3BtZW50MR8wHQYDVQQDExZDaGlsa2F0IFNvZnR3YXJlLCBJ
#  bmMuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwR2t6b/Kn4VzNCOlj1YGkHxD
#  YPVnfZNIeO7hmutreK6kr94xm9RlQn+vkN1uRMhvSbOdds+B25o+AyAeuBmLsuxoNRCC9AUb
#  a37pY8eL04AaTEAm350tfnHGT44joSdFPoW5D91TDare6q5UaaccdEtXU4/LGqh+nHB9Idft
#  0S/rIpP2PK9TAwQ5V8dlMuBQQA+BUCg5MY9oqZgtnkX7O6OJSk8MT0lUhVg7EAge9iUx7Eu4
#  oWK88fkOo81pqHogTpGfy4nibWg72XkPk135leMw/Jme37q7OR/zm6HceFlyyO0WL1fYx09P
#  pYbj1lYNvVo8n38ohT8T/7h3N4GUlQIDAQABo4HYMIHVMAwGA1UdEwEB/wQCMAAwPgYDVR0f
#  BDcwNTAzoDGgL4YtaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZUNvZGVTaWduaW5nQ0Eu
#  Y3JsMB8GA1UdJQQYMBYGCCsGAQUFBwMDBgorBgEEAYI3AgEWMB0GA1UdBAQWMBQwDjAMBgor
#  BgEEAYI3AgEWAwIHgDAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3Nw
#  LnRoYXd0ZS5jb20wEQYJYIZIAYb4QgEBBAQDAgQQMA0GCSqGSIb3DQEBBQUAA4GBAAUMcxUb
#  eo5HTDKMaxMFFy3iA9i/ke4VLFw97yEG3raLTHZUlRwVxwLGLmW81dY/64nEDEgKi3Ifuohf
#  A0a3N3Ld7zwL1f/hdG2pQigLcvMymP9jj6DEQxOs03iADFguMpqkb79hbbURzsKX7pvWuNjQ
#  VGiowTuo1JXuSbsqaW7vMYIB7zCCAesCAQEwaTBVMQswCQYDVQQGEwJaQTElMCMGA1UEChMc
#  VGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEfMB0GA1UEAxMWVGhhd3RlIENvZGUgU2ln
#  bmluZyBDQQIQeKLk3AJi7M6xote9JNXXkjAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsG
#  CSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDcwNDA0MTkzMDUyWjAjBgkqhkiG9w0BCQQx
#  FgQUevptGkutc0lb6gI3NPHovx4Di34wDQYJKoZIhvcNAQEBBQAEggEAk4jqKMsn7D+MjGtY
#  M9bnLdekBSxMVWPpKxk6hWg0NVOoiBOd/OOyH8FO/r7trmzr2Z9eJf1zpdjzpSPCwnGJzIy9
#  RunBBTJ+BxCbDXfjwJJTYVy1Uhsedv+o7Gfj9LlAVysNLjda5VcU7x/OOBVst034X+map3ds
#  85yBrfcJ/LyQs/lyZYmSPgOpFIBSy3oULPzYt45EUVsuk5qSZ1MA4HeIDW37b8OfQOW8pLEL
#  cBRducU19lpDOp5hBRZDR3zu+/9ddWKxKvcH04WitYRBi5TtqhQxpep+vRhJX8EPY6cgenJ+
#  lbDURg552YftF4EpDGALADR41j6sUMzb0QOz4A==
# 
#  ------=_NextPart_e7c_2b68_282042d9.6ba23d56--
# 
# 

 

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

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