【发布时间】:2010-02-21 03:53:56
【问题描述】:
我在 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 类库是否有这样做的机制?
【问题讨论】: