Ruby中的OpenSSL:PKCS#8私钥格式

j5fpnvbx  于 12个月前  发布在  Ruby
关注(0)|答案(1)|浏览(135)

我在ruby中创建了一个RSA私钥:

require 'openssl'
key = OpenSSL::PKey::RSA.generate(1024)

我可以得到PEM或DER格式的密钥:

key.to_pem
key.to_der

但似乎没有办法将其转换为PKCS#8格式。我最好的办法是在另一个进程中调用openssl:

require 'open3'
Open3.popen3('openssl pkcs8 -topk8 -inform PEM -outform PEM -passout pass:password') do |stdin,  stdout, stderr|
  stdin.write(key.to_pem)
  unless (err = stderr.read).empty? then raise err end
  stdout.read
end

一定有更好的方法,只是我找不到。ruby中的OpenSSL类库有这样的机制吗?

vddsk6oq

vddsk6oq1#

Ruby trunk支持将私钥导出为PKCS#8格式,使用OpenSSL::PKey::PKey(和子类)上的新private_to_pemprivate_to_der方法。所以真实的Soon Now,或者Right Now,如果你喜欢生活在流血的边缘,我们最终将能够在本地写出PKCS#8密钥。

相关问题