I'm trying to load a particular private key encoded in binary DER
format (PKCS#8
) into Ruby.
However, OpenSSL::PKey
won't recognize it. I can make it work by doing some console work and transforming it into a PEM
like so:
openssl pkcs8 -inform DER -in file.key -passin pass:xxxxxxxx >private_key.pem
After this, the key can correctly be read.
However, since I would like for the whole process to be done in memory instead of writing and reading files.
So my question is: Is it possible to load private keys from the binary encoded DER
format into Ruby/OpenSSL?
Thank you for your time,
Fernando
Yes, you can indirectly load PKCS#8 DER-encoded private keys using Ruby OpenSSL.
OpenSSL::PKey::RSA.new
will only handle PEM-formatted PKCS#8, but it is easy to read the binary DER and convert it to a PEM-formatted string and then load from the string.For example, with these DER-encoded private keys:
You can do something like this:
Read the DER bytes, Base64 them and put the PEM tags on top and bottom, and then load the key.
You could find documentation about OpenSSL implementation for Ruby here :