Я пытаюсь использовать функцию OpenSSL для знака/проверки RSA в PHP.
Когда я пытаюсь сделать openssl_verify
с помощью моего открытого ключа, я получаю эту ошибку: error:0906D06C:PEM routines:PEM_read_bio:no start line
, но сама функция работает правильно (возвращает 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) - тот же результат. И я нахожусь в окнах.