Я создал закрытый ключ RSA в ruby с помощью:
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
Должен быть лучший способ, который я просто не могу найти. Есть ли в библиотеке классов OpenSSL в ruby механизм для этого?