aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrxu <rxu@mail.ru>2019-12-28 12:20:51 +0700
committerrxu <rxu@mail.ru>2019-12-28 12:20:51 +0700
commit3669849368b8b39d661e08c2476c510cd4fc7445 (patch)
tree3547b51c67cc9729af0e0b0b39e8f838a72e3d98
parentd000717d341a2c12099b0fba3ab677bbb0f2340c (diff)
downloadforums-3669849368b8b39d661e08c2476c510cd4fc7445.tar
forums-3669849368b8b39d661e08c2476c510cd4fc7445.tar.gz
forums-3669849368b8b39d661e08c2476c510cd4fc7445.tar.bz2
forums-3669849368b8b39d661e08c2476c510cd4fc7445.tar.xz
forums-3669849368b8b39d661e08c2476c510cd4fc7445.zip
[ticket/16266] Refactor patch using argon2 predefined constants
PHPBB3-16266
-rw-r--r--phpBB/phpbb/passwords/driver/argon2i.php9
-rw-r--r--phpBB/phpbb/passwords/driver/base_native.php19
2 files changed, 5 insertions, 23 deletions
diff --git a/phpBB/phpbb/passwords/driver/argon2i.php b/phpBB/phpbb/passwords/driver/argon2i.php
index f4a6e3e644..f622ad889b 100644
--- a/phpBB/phpbb/passwords/driver/argon2i.php
+++ b/phpBB/phpbb/passwords/driver/argon2i.php
@@ -38,13 +38,14 @@ class argon2i extends base_native
parent::__construct($config, $helper);
/**
- * For Sodium implementation of argon2 algorithm, set special cost factor values (since PHP 7.4)
+ * For Sodium implementation of argon2 algorithm (since PHP 7.4), set special value of 1 for "threads" cost factor
* See https://wiki.php.net/rfc/sodium.argon.hash and PHPBB3-16266
* Don't allow cost factors to be below default settings where possible
*/
- $this->memory_cost = $this->is_sodium() ? max($memory_cost, 256 * 1024) : max($memory_cost, 1024);
- $this->threads = $this->is_sodium() ? 1 : max($threads, 2);
- $this->time_cost = $this->is_sodium() ? max($time_cost, 3) : max($time_cost, 2);
+ $this->memory_cost = max($memory_cost, PASSWORD_ARGON2_DEFAULT_MEMORY_COST);
+ $this->time_cost = max($time_cost, PASSWORD_ARGON2_DEFAULT_TIME_COST);
+ $this->threads = (defined('PASSWORD_ARGON2_PROVIDER') && PASSWORD_ARGON2_PROVIDER == 'sodium') ?
+ PASSWORD_ARGON2_DEFAULT_THREADS : max($threads, PASSWORD_ARGON2_DEFAULT_THREADS);
}
/**
diff --git a/phpBB/phpbb/passwords/driver/base_native.php b/phpBB/phpbb/passwords/driver/base_native.php
index ab2e9f83a4..87498327f9 100644
--- a/phpBB/phpbb/passwords/driver/base_native.php
+++ b/phpBB/phpbb/passwords/driver/base_native.php
@@ -58,25 +58,6 @@ abstract class base_native extends base
}
/**
- * Check if Sodium implementation for argon2 algorithm is being used
- *
- * @link https://wiki.php.net/rfc/sodium.argon.hash
- *
- * @return bool
- */
- public function is_sodium()
- {
- static $is_sodium;
-
- if (!isset($is_sodium))
- {
- $is_sodium = defined('PASSWORD_ARGON2_PROVIDER') && PASSWORD_ARGON2_PROVIDER == 'sodium';
- }
-
- return $is_sodium;
- }
-
- /**
* {@inheritdoc}
*/
public function is_supported()