2017-01-04 10 views
1

s/mime 인증서로 응용 프로그램에서 보낸 전자 메일에 서명하려고합니다. 이 응용 프로그램은 JRuby 1.7.26과 jruby-openssl gem의 최신 버전을 사용합니다. (버전 0.9.19). 나는이처럼 내 개인 키를로드 할 때 :jubuntu에서 jruby-openssl로 개인 키를로드하는 중 JRuby 오류가 발생했습니다.

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)) 
key_file = File.read(Rails.root.join('config', 'domain.key')) 
private_key = OpenSSL::PKey::RSA.new(key_file) 

나는이 오류

나는이 오류에 대한 해결책을 찾거나 JRuby로 이메일에 서명하는 방법을 많이 찾았지만 도움이되는 것을 찾지 못했습니다.

도움을 주셔서 감사합니다.

답변

0

은 아마도 class-path -> BC .jars에서 어딘가에서로드 된 엉망이라는 뜻입니다.

JRuby-OpenSSL의 포장 된 BC (0.9.19에서는 1.55)는 필요한 Base64 메소드를 가지고 있습니다. 그렇지 않으면 처음에 Ruby 확장 비트를 컴파일하지 못합니다.