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 .p7s Signature with HSM / Smartcard

Ruby example showing how to use a CSP (Cryptographic Service Provider) for a smart card / HSM (Hardware Security Module) to create a .p7s (PKCS7) output file. This example uses the NCipher HSM CSP.

Download Chilkat Ruby Library

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 component unlock failed" + "\n"
    exit
end

#  Find our digital certificate from the Current User certificate store.
#  Note: There are several other ways to load your certificate
#  into a Chilkat cert object.  You may load directly from a .cer file,
#  PEM file, pfx, etc.
ccs = Chilkat::CkCreateCS.new()

certStore = ccs.OpenCurrentUserStore()

cert = certStore.FindCertBySubjectCN("Chilkat Software, Inc.")
if (cert == nil )
    print cert.lastErrorText() + "\n"

    exit
end

#  Tell the crypt component to use this cert.
crypt.SetSigningCert(cert)

#  To use an HSM or smartcard, create a CSP object,
#  set the service provider, and then tell the Chilkat Crypt
#  component to use the CSP:
#  This example uses the NCipher HSM.  The
#  provider names must be specied exactly.
#  The NCipher provider names are:
#  PROV_RSA_FULL ("nCipher Enhanced Cryptographic Provider")
#  PROV_RSA_AES ("nCipher Enhanced RSA and AES Cryptographic Provider")
#  PROV_RSA_SCHANNEL("nCipher Enhanced SChannel Cryptographic Provider")
#  PROV_DSS_DH ("nCipher Enhanced DSS and Diffie-Hellman Cryptographic Provider")
#  PROV_DH_SCHANNEL ("nCipher Enhanced DSS and Diffie-Hellman SChannel Cryptographic Provider")

#  We'll be using the RSA FULL provider:
csp = Chilkat::CkCSP.new()
csp.put_ProviderName("nCipher Enhanced Cryptographic Provider")

#  Tell the crypt object to use the CSP:
crypt.SetCSP(csp)

#  We can sign any type of file, creating a .p7s detached signature as output:
success = crypt.CreateP7S("test.xml","test.p7s")
if (success == false)
    print crypt.lastErrorText() + "\n"

    exit
end

print crypt.lastErrorText() + "\n"
#  Verify the signature...
crypt.SetVerifyCert(cert)

success = crypt.VerifyP7S("test.xml","test.p7s")
if (success == false)
    print crypt.lastErrorText() + "\n"

    exit
end

print "Success!" + "\n"
 

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

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