Расшифруйте PKCS # 8 Ruby OpenSSL - PullRequest
0 голосов
/ 20 февраля 2019

Мне нужно использовать рубиновый гем OpenSSL для расшифровки файла.Я попробовал то, что сказал мне каждый пост.Я пытался использовать этот код из: Загрузите двоичный ключ PKCS # 8 в Ruby

  def box(tag, lines)
    lines.unshift "-----BEGIN #{tag}-----"
    lines.push "-----END #{tag}-----"
    lines.join("\n")
  end

  def der_to_pem(tag, der)
    box tag, Base64.strict_encode64(der).scan(/.{1,64}/)
  end

  pem = der_to_pementer code here('ENCRYPTED PRIVATE KEY', File.read('./file.key'))
  key = OpenSSL::PKey::RSA.new(pem, 'passkey')
  puts key 
  puts pem

И я получаю это:

-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAzxy...
...ECYUOVC3zgw23aGcFA8z9ghI=
-----END RSA PRIVATE KEY-----

-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFDjBABgk...
...Y948X9Zop7aCnxmWI7vHNts=
-----END ENCRYPTED PRIVATE KEY-----

Но мне нужно что-товот так:

-----BEGIN PRIVATE KEY-----
MIIEvwIBADA...
...ZwUDzP2CEg==
-----END PRIVATE KEY-----

Это код консоли, который работает, но, как я уже сказал, мне нужно использовать гем ruby:

openssl pkcs8 -inform DER -in "./file.key" -passin pass:passkey -out "./file.key.pem"

1 Ответ

0 голосов
/ 21 февраля 2019

К сожалению, невозможно расшифровать формат PKCS # 8 с помощью openssl gem.Но есть несколько хакерских способов.

  1. Выполните команду OpenSSL из ruby.
  2. Установите следующий гем (https://github.com/twg/openssl_pkcs8)
...