我正在尝试使用s / mime证书签署我的应用程序发送的电子邮件。该应用程序使用JRuby 1.7.26和最新版本的jruby-openssl gem。 (版本0.9.19)。 当我尝试加载我的私钥时:
key_file = File.read(Rails.root.join('config', 'domain.key'))
private_key = OpenSSL::PKey::RSA.new(key_file)
我收到此错误:
Java::JavaLang::NoSuchMethodError: org.bouncycastle.util.encoders.Base64.encode([BII)[B
from org.jruby.ext.openssl.x509store.PEMInputOutput.writeEncoded(PEMInputOutput.java:1496)
...
如果有效,我想签署这样的电子邮件:
data = "Test"
OpenSSL::PKCS7.write_smime(OpenSSL::PKCS7.sign(certificate, private_key, data, [], OpenSSL::PKCS7::DETACHED))
我搜索了很多内容以找到此错误的解决方案或如何使用JRuby签署电子邮件,但我找不到任何有用的信息。
提前感谢您的帮助。
答案 0 :(得分:0)
可能意味着课程路径上的混乱 - > BC .jars从其他地方加载。
JRuby-OpenSSL的压缩BC(在0.9.19中为1.55)具有所需的Base64
方法 - 否则将无法首先编译Ruby扩展位。