From 13ff4837c5695b28c114f8c821ad6f86efdfee33 Mon Sep 17 00:00:00 2001 From: Thibault Dockx <thibault.dockx@fusiondirectory.org> Date: Mon, 24 Feb 2025 11:34:50 +0000 Subject: [PATCH] :sparkles: feat(password-methods) - change password-methods Adapt password-methods to php8.2 --- include/password-methods/class_passwordMethod.inc | 10 +++++----- include/password-methods/class_passwordMethodCrypt.inc | 4 ++-- include/password-methods/class_passwordMethodSasl.inc | 4 ++-- include/password-methods/class_passwordMethodSmd5.inc | 2 +- include/password-methods/class_passwordMethodSsha.inc | 2 +- .../password-methods/class_passwordMethodSsha512.inc | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/include/password-methods/class_passwordMethod.inc b/include/password-methods/class_passwordMethod.inc index 841a0889b..954daa58b 100755 --- a/include/password-methods/class_passwordMethod.inc +++ b/include/password-methods/class_passwordMethod.inc @@ -112,7 +112,7 @@ abstract class passwordMethod $pwd = $attrs['userPassword'][0]; } } - return preg_match("/^[^\}]*+\}!/", $pwd); + return preg_match("/^[^\}]*+\}!/", (string) $pwd); } /*! \brief Locks an account by adding a '!' as prefix to the password hashes. @@ -188,14 +188,14 @@ abstract class passwordMethod if (empty($pwd)) { $pwd = passwordMethodEmpty::LOCKVALUE; } else { - $pwd = preg_replace("/(^[^\}]+\})(.*$)/", "\\1!\\2", $pwd); + $pwd = preg_replace("/(^[^\}]+\})(.*$)/", "\\1!\\2", (string) $pwd); } } else { /* Unlock entry */ if ($pwd == passwordMethodEmpty::LOCKVALUE) { $pwd = ''; } else { - $pwd = preg_replace("/(^[^\}]+\})!(.*$)/", "\\1\\2", $pwd); + $pwd = preg_replace("/(^[^\}]+\})!(.*$)/", "\\1\\2", (string) $pwd); } } $modify['userPassword'] = $pwd; @@ -338,7 +338,7 @@ abstract class passwordMethod static function _extract_method ($password_hash): string { $hash = static::get_hash_name(); - if (preg_match("/^\{$hash\}/i", $password_hash)) { + if (preg_match("/^\{$hash\}/i", (string) $password_hash)) { return $hash; } @@ -391,7 +391,7 @@ abstract class passwordMethod global $config; if ($config->get_cfg_value('strictPasswordRules') == 'TRUE') { // Do we have UTF8 characters in the password? - return ($password == utf8_decode($password)); + return ($password == mb_convert_encoding((string) $password, 'ISO-8859-1')); } return TRUE; diff --git a/include/password-methods/class_passwordMethodCrypt.inc b/include/password-methods/class_passwordMethodCrypt.inc index 924e0c602..77a1995c9 100755 --- a/include/password-methods/class_passwordMethodCrypt.inc +++ b/include/password-methods/class_passwordMethodCrypt.inc @@ -148,11 +148,11 @@ class passwordMethodCrypt extends passwordMethod */ static function _extract_method ($password_hash): string { - if (!preg_match('/^{crypt}/i', $password_hash)) { + if (!preg_match('/^{crypt}/i', (string) $password_hash)) { return ""; } - $password_hash = preg_replace('/^{[^}]+}!?/', '', $password_hash); + $password_hash = preg_replace('/^{[^}]+}!?/', '', (string) $password_hash); if (preg_match("/^[a-zA-Z0-9.\/][a-zA-Z0-9.\/]/", $password_hash)) { return "crypt/standard-des"; diff --git a/include/password-methods/class_passwordMethodSasl.inc b/include/password-methods/class_passwordMethodSasl.inc index ba7b9a2d5..c6889c024 100755 --- a/include/password-methods/class_passwordMethodSasl.inc +++ b/include/password-methods/class_passwordMethodSasl.inc @@ -44,8 +44,8 @@ class passwordMethodSasl extends passwordMethod function __construct ($dn = '', $userTab = NULL) { global $config; - $this->realm = trim($config->get_cfg_value('saslRealm', '')); - $this->exop = trim($config->get_cfg_value('saslExop', '')); + $this->realm = trim((string) $config->get_cfg_value('saslRealm', '')); + $this->exop = trim((string) $config->get_cfg_value('saslExop', '')); if ($dn == '' || $dn == 'new') { return; diff --git a/include/password-methods/class_passwordMethodSmd5.inc b/include/password-methods/class_passwordMethodSmd5.inc index b44b3ea14..47e524a8b 100755 --- a/include/password-methods/class_passwordMethodSmd5.inc +++ b/include/password-methods/class_passwordMethodSmd5.inc @@ -65,7 +65,7 @@ class passwordMethodSmd5 extends passwordMethod function checkPassword ($pwd, $hash): bool { - $hash = base64_decode(substr($hash, 6)); + $hash = base64_decode(substr((string) $hash, 6)); $salt = substr($hash, 16); $hash = substr($hash, 0, 16); $nhash = pack('H*', md5($pwd . $salt)); diff --git a/include/password-methods/class_passwordMethodSsha.inc b/include/password-methods/class_passwordMethodSsha.inc index 6cc0c01c8..63f17b98e 100755 --- a/include/password-methods/class_passwordMethodSsha.inc +++ b/include/password-methods/class_passwordMethodSsha.inc @@ -73,7 +73,7 @@ class passwordMethodSsha extends passwordMethod function checkPassword ($pwd, $hash): bool { - $hash = base64_decode(substr($hash, 6)); + $hash = base64_decode(substr((string) $hash, 6)); $salt = substr($hash, 20); $hash = substr($hash, 0, 20); if (function_exists('sha1')) { diff --git a/include/password-methods/class_passwordMethodSsha512.inc b/include/password-methods/class_passwordMethodSsha512.inc index 5a52f7bf9..5767aeb26 100755 --- a/include/password-methods/class_passwordMethodSsha512.inc +++ b/include/password-methods/class_passwordMethodSsha512.inc @@ -70,7 +70,7 @@ class passwordMethodSsha512 extends passwordMethod function checkPassword ($pwd, $hash): bool { - $hash = base64_decode(substr($hash, 9)); + $hash = base64_decode(substr((string) $hash, 9)); $salt = substr($hash, 64); $hash = substr($hash, 0, 64); if (function_exists('hash')) { -- GitLab