From eb6436ac828731817f18a73f5abbf5f89e759b5a Mon Sep 17 00:00:00 2001 From: ReScO Date: Thu, 15 Feb 2018 23:59:17 +0100 Subject: [PATCH] [SecurityBundle] Improve error when argon2i is not available --- .../DependencyInjection/SecurityExtension.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php index 8cfc185e3a..6431e3c1b4 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php @@ -566,7 +566,11 @@ class SecurityExtension extends Extension implements PrependExtensionInterface // Argon2i encoder if ('argon2i' === $config['algorithm']) { if (!Argon2iPasswordEncoder::isSupported()) { - throw new InvalidConfigurationException('Argon2i algorithm is not supported. Please install the libsodium extension or upgrade to PHP 7.2+.'); + if (\extension_loaded('sodium') && !\defined('SODIUM_CRYPTO_PWHASH_SALTBYTES')) { + throw new InvalidConfigurationException('The installed libsodium version does not have support for Argon2i. Use Bcrypt instead.'); + } + + throw new InvalidConfigurationException('Argon2i algorithm is not supported. Install the libsodium extension or use BCrypt instead.'); } return array(