Obecnie próbuje odczytać klucz publiczny .pem
, aby zweryfikować go za pomocą openssl
.openssl_verify(): Podany parametr klucza nie może być wymuszony na klucz publiczny dla pliku .pem
/**
* Check whether the signed message sent back by the server is
* correct or not.
*/
function check($str, $MAC)
{
$fp = fopen(
dirname(__FILE__) . '/rsa_public_key.pem',
'r'
);
$cert = fread($fp, 8192);
fclose($fp);
$pubkeyid = openssl_get_publickey($cert);
return openssl_verify($str, $MAC, $pubkeyid);
}
Z powiedział, że po wykonaniu mojego skryptu, otrzymuję ten błąd:
openssl_verify(): supplied key param cannot be coerced into a public key in some/path at line X
Początkowo napisałem tę funkcję, aby zaakceptować .cer
certyfikaty. Oto wyjaśnienie różnicy między tymi wszystkimi different key formats. Dla mojego zrozumienia .pem
są podobne do .cer
, jednak nie mogłem do końca życia wymyślić, jak zezwolić na mój skrypt do odczytu mojego pliku .pem
.
Moje pytanie brzmi - co muszę zrobić, aby moja funkcja mogła odczytać ten klucz publiczny?
EDYCJA: Po niektórych Googling, próbowałem przy użyciu file_get_contents()
do konkretnej ścieżki, ale otrzymam ten sam błąd.
Co może być przyczyną tego błędu?
Masz na myśli, że upewniłeś się, że każda linia ma 64 znaki? – Lamy
Każda linia bloku Base64, przypuszczam, nie linie nagłówka/stopki. –
@ theGreenCabbage, odpowiedź będzie miała więcej wartości z kodem w nim. – Eugene