openssl_verify и «ошибка: 0906D06C: процедуры PEM: PEM_read_bio: нет начальной строки»

Я пытаюсь использовать функцию OpenSSL для RSA-подписи / проверки в PHP , Когда я пытаюсь сделать openssl_verify , используя мой открытый ключ, я получаю эту ошибку: ошибка: 0906D06C: процедуры PEM: PEM_read_bio: нет начальной строки , но сама функция работает правильно (возвращает 0, если сообщения были изменены, и 1, если нетронутыми. openssl_sign работает нормально.

Как это исправить?

В настоящее время я использую открытый ключ, сгенерированный openssl:

define("SC_MSG_PUBLIC", <<<EOD
-----BEGIN PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALjPcOckMHDVLiUstcRwwx8kF5PzsiEs
rskyndWisbXMLU9BHomXwL7Qg2L91jE+sNSobkzBDF41CbwDiNlofZUCAwEAAQ==
-----END PUBLIC KEY-----
EOD
);

Есть идеи, почему эта ошибка срабатывает, но все работает нормально?

Пытался сгенерировать открытый ключ из личного пространства и использовать его, но он выглядел точно так же, с тем же сообщением об ошибке: -S

$pkey = openssl_pkey_get_private(SC_MSG_PRIVATE);
$keyDetails = openssl_pkey_get_details($pkey);
file_put_contents('c:\publickey', $keyDetails['key']);

Также я попытался установить все новые версии (PHP 5.3.1, OpenSSL 1.0.0a) - тот же результат. И я на окнах.

12
задан jww 7 March 2016 в 04:16
поделиться

2 ответа

Причина:

Эта ошибка обычно возникает из-за одного поврежденного символа в начале файла .crt. Таким образом, есть вероятность, что у вас есть лишний пробел, лишний символ, лишняя строка и т. д. либо в файле сертификата SSL (.crt), либо в файле ключа SSL (.key).

Возможное решение(я):

  1. Проверьте файл .crt.
  2. Проблема с символом может быть в вашем ключе, попробуйте это (без разрывов строки и т. д.):

.

define("SC_MSG_PUBLIC", "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALjPcOckMHDVLiUstcRwwx8kF5PzsiEsrskyndWisbXMLU9BHomXwL7Qg2L91jE+sNSobkzBDF41CbwDiNlofZUCAwEAAQ==");
1
ответ дан 2 December 2019 в 07:20
поделиться

Возможно, вам будет проще использовать phpseclib для создания/проверки подписи:

http://phpseclib.sourceforge.net/documentation/misc_crypt.html#misc_crypt_rsa_examples

2
ответ дан 2 December 2019 в 07:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: