From c3388548118321c6234be2cae6a3bbe10cdb0c55 Mon Sep 17 00:00:00 2001 From: root-www Date: Thu, 9 Sep 2021 13:36:24 +0200 Subject: [PATCH] suppression de la desinstallation (car pas desinstallable, ca doit aller dans un plugins-dist/ ou le core), generation de la cle dans _DIR_ETC.cles.php et inclusions via chiffrement_options.php, ajout d'un cas pour la longueur 98 dans auth/spip.php pour les hash argon2i --- auth/spip.php | 12 ++++++------ chiffrer_administrations.php | 1 - chiffrer_fonctions.php | 11 ++--------- chiffrer_options.php | 7 +++++++ 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/auth/spip.php b/auth/spip.php index 88f7ed1..dd64e2c 100644 --- a/auth/spip.php +++ b/auth/spip.php @@ -43,22 +43,19 @@ function auth_spip_dist($login, $pass, $serveur = '', $phpauth = false) { $shapass = $pass_hash_next = ""; if ($pass) { - $row = sql_fetsel("alea_actuel, alea_futur", "spip_auteurs", "login=" . sql_quote($login, $serveur, 'text'), '', '', + $row = sql_fetsel("*", "spip_auteurs", "login=" . sql_quote($login, $serveur, 'text') . " AND statut<>'5poubelle'", '', '', '', '', $serveur); if ($row) { include_spip('auth/sha256.inc'); $pass_poivre = hash_hmac("sha256", $pass, $GLOBALS['cle_secrete']); - $pass_hash_next = password_hash($pass_poivre, PASSWORD_BCRYPT, ['salt' => $row['alea_futur']]); + $pass_hash_next = password_hash($pass_poivre, PASSWORD_DEFAULT, ['salt' => $row['alea_futur']]); $shapass = spip_sha256($row['alea_actuel'] . $pass); $md5pass = md5($row['alea_actuel'] . $pass); } } else { return array(); } - - $row = sql_fetsel("*", "spip_auteurs", - "login=" . sql_quote($login, $serveur, 'text') . " AND statut<>'5poubelle'", '', '', '', '', $serveur); switch ( strlen($row["pass"]) ) { case 32: @@ -70,6 +67,9 @@ function auth_spip_dist($login, $pass, $serveur = '', $phpauth = false) { case 64: if ( $row["pass"] != $shapass ) unset($row); break; + case 98: + if ( ! password_verify($pass_poivre, $row["pass"]) ) unset($row); + break; default: unset($row); } @@ -278,7 +278,7 @@ function auth_spip_modifier_pass($login, $new_pass, $id_auteur, $serveur = '') { $alea_actuel = creer_uniqid(); $alea_futur = creer_uniqid(); $pass_poivre = hash_hmac("sha256", $new_pass, $GLOBALS['cle_secrete']); - $pass = password_hash($pass_poivre, PASSWORD_BCRYPT, ['salt' => $alea_actuel]); + $pass = password_hash($pass_poivre, PASSWORD_DEFAULT, ['salt' => $alea_actuel]); $c['pass'] = $pass; $c['htpass'] = $htpass; diff --git a/chiffrer_administrations.php b/chiffrer_administrations.php index 5cc0067..c0ab0e8 100644 --- a/chiffrer_administrations.php +++ b/chiffrer_administrations.php @@ -28,7 +28,6 @@ function chiffrement_installation(){ function chiffrement_desinstallation(){ include_spip("chiffrer_fonctions"); - supprimer_cle(); } /** diff --git a/chiffrer_fonctions.php b/chiffrer_fonctions.php index 0cb22db..a6458b8 100644 --- a/chiffrer_fonctions.php +++ b/chiffrer_fonctions.php @@ -13,21 +13,14 @@ if (!defined('_ECRIRE_INC_VERSION')) { return; } - - function initialiser_cle(){ - if ( $fichier_cles = find_in_path("chiffrer_options.php") ){ + $fichier_cles = _DIR_ETC."cles.php"; + if ( ! file_exists($fichier_cles) ){ $GLOBALS['cle_secrete'] = openssl_random_pseudo_bytes(16); ecrire_fichier($fichier_cles, "