Sample code for 30+ languages & platforms
Ruby Requires Chilkat v11.0.0+

Workaround for the deprecated Crypt2.OpaqueSignBytes method

Shows how to replace the deprecated OpaqueSignBytes method. (Chilkat is moving away from the use of CkByteData.)

Chilkat Ruby Downloads

Ruby
require 'chilkat'

success = false

crypt = Chilkat::CkCrypt2.new()

cert = Chilkat::CkCert.new()
#  ...
#  Load the cert from a source such as a .pfx/.p12 file, smart card, USB token, Apple keychain, Windows certificate store, etc.
#  
success = crypt.SetSigningCert(cert)

#  ...
#  ...
#  ...

path = "c:/someDir/example.dat"

#  ------------------------------------------------------------------------
#  The OpaqueSignBytes method is deprecated:

inData = Chilkat::CkByteData.new()
inData.loadFile(path)

outData = Chilkat::CkByteData.new()

success = crypt.OpaqueSignBytes(inData,outData)

#  ------------------------------------------------------------------------
#  Workaround.
#  (Chilkat is moving away from using CkByteData)

bd = Chilkat::CkBinData.new()
bd.LoadFile(path)

#  If successful, the contents of bd are replaced with the PKCS#7 signed-data.
success = crypt.OpaqueSignBd(bd)