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:04800064EM routines::bad base64 decode"
Avec le str_replace la fonction base64_decode fonctionne.
Malgré tout je reste avec mon erreur error:04800064EM routines::bad base64 decode

J'ai le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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!

Merci d'avance et bonne journée! (bonne reprise à ceux qui rentrent de congés!)