Невозможно сгенерировать объект OpenSSL :: PKey - PullRequest
0 голосов
/ 13 мая 2019

Я хочу сгенерировать openSSL :: Pkey с использованием открытого ключа, но получаю следующее сообщение об ошибке "OpenSSL :: PKey :: RSAError: Ни PUB-ключ, ни PRIV-ключ: вложенная ошибка asn1"

Это открытый ключ:

----- НАЧАТЬ ПУБЛИЧНЫЙ КЛЮЧ ----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAttI6ImgD74PhHWVqnrqSOmStboplyL02DB3 / nc2iyDdYLzXoBIQN + NPMBPlsZlEKuKjsg5Ycfp6VjcmncM3CH9MGIr + Lmbj1HZmO / jJGJ84RPhzYOiZuElzs3seIcOtOa3BpFeqRsXJlrf1IVBKVU3erka5ACLVyrsjmp / VXMx5QjPD0qXARMGb6rDewTkyg3pGz07Y7rZgXkTl54ase + XaPegOankxdEQhVjPdrk7eSlIQS5Ni7FAcSyTOtYoPgiP7W0PolOMHvpFg96CHjc8V8xDsFdh0wbHd49WcKxiJMIfL65VUIW5aob9fw05a5FczyASa0iNtRiICy / QnCqQIDAQAB ----- КОНЕЦ ОБЩЕСТВЕННОГО КЛЮЧА -----

Это код, генерирующий ошибку

OpenSSL::PKey::RSA.new (Base64.decode64(public_key))

Кто-нибудь знает, как это исправить и может сказать, что не так с ключом. Спасибо

1 Ответ

0 голосов
/ 13 мая 2019
  1. Вам не нужно декодировать base64 вручную.
  2. Убедитесь, что ключ отформатирован правильно: BEGIN PUBLIC KEY и END PUBLIC KEY должны быть в отдельных строках.

Рабочий пример:

require "openssl"

key = "-----BEGIN PUBLIC KEY-----\n" \
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAttI6ImgD74PhHWVqnrqSOmStboplyL02DB3/nc2iyDdYLzXoBIQN+NPMBPlsZlEKuKjsg5Ycfp6VjcmncM3CH9MGIr+Lmbj1HZmO/jJGJ84RPhzYOiZuElzs3seIcOtOa3BpFeqRsXJlrf1IVBKVU3erka5ACLVyrsjmp/VXMx5QjPD0qXARMGb6rDewTkyg3pGz07Y7rZgXkTl54ase+XaPegOankxdEQhVjPdrk7eSlIQS5Ni7FAcSyTOtYoPgiP7W0PolOMHvpFg96CHjc8V8xDsFdh0wbHd49WcKxiJMIfL65VUIW5aob9fw05a5FczyASa0iNtRiICy/QnCqQIDAQAB\n" \
"-----END PUBLIC KEY-----"

p OpenSSL::PKey::RSA.new(key)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...