[PHP][OPENSSL] Erreur "error:04800064:PEM routines::bad base64 decode"
Bonjour à tous,
Je bute sur un truc qui me paraissait simple au départ et qui finalement ne fonctionne pas.
J'ai généré un couple de clés publique-privée avec mkjwk.org.
Je voudrais maintenant extraire la clé publique et la clé privé pour encrypter/décrypter.
En parcourant les docs php (je suis en PHP8.2 sous Xampp/Windows), j'ai trouvé qu'on pouvait utiliser openssl_get_publickey en lui fournissant une clé publique au format PEM.
J'ai aussi trouvé qu'il fallait découper en lignes de 64 caractères.
J'ai essayé avec et sans le str_replace. L'erreur est la même : "error:04800064:PEM routines::bad base64 decode"
Avec le str_replace la fonction base64_decode fonctionne.
Malgré tout je reste avec mon erreur error:04800064:PEM routines::bad base64 decode
J'ai le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
var_dump(base64_decode($publicKey, true)) ; // KO
$str = str_replace(['-', '_', ''], ['+', '/', '='], $publicKey) ;
var_dump(base64_decode($str, true) ) ; // OK
echo "\n" ;
$str = chunk_split($str, 64, "\n");
var_dump($str) ;
var_dump(base64_decode($str, true) ) ; // OK
$key = "-----BEGIN PUBLIC KEY-----\n".$str."-----END PUBLIC KEY----\n";
var_dump($key) ;
var_dump (openssl_get_publickey($key)); // KO
var_dump(openssl_error_string()); |
Si quelqu'un a des idées! :D
Merci d'avance et bonne journée! (bonne reprise à ceux qui rentrent de congés!)