privé J'ai créé une clé privée RSA en Ruby avec:OpenSSL en rubis: PKCS # 8 pour les clés
require 'openssl'
key = OpenSSL::PKey::RSA.generate(1024)
Je peux obtenir la clé dans des formats PEM ou DER:
key.to_pem
key.to_der
Mais il ne semble pas y avoir un moyen de l'obtenir au format PKCS # 8. Le meilleur que je suis venu avec est d'appeler à OpenSSL dans un autre processus:
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
Il doit y avoir une meilleure façon que je ne peux pas trouver. Est-ce que la bibliothèque de classes OpenSSL de ruby a un mécanisme pour le faire?
Eh bien, avez-vous le code qui se trouve quelque part? EDIT: évidemment https://github.com/twg/openssl_pkcs8 –
Ouais, c'est tout. Aussi emballé dans un [gem] (https://rubygems.org/gems/openssl_pkcs8) pour votre commodité. J'ai du mal à le faire fonctionner dans Ruby 2.0, cependant. – tadman
@tadman J'ai mis à jour le code pour Ruby 2.2.1 et cela fonctionne comme un charme. Il y a une demande de traction sur votre gemme ici: https://github.com/twg/openssl_pkcs8/pull/4 –