=') && \defined('PASSWORD_ARGON2ID')) { return password_hash($plaintext, \PASSWORD_ARGON2ID, $options); } throw new UnsupportedPasswordHandlerException('Argon2id algorithm is not supported.'); } /** * Check that the password handler is supported in this environment * * @return boolean * * @since 1.3.0 */ public static function isSupported() { // Check for native PHP engine support in the password extension if (version_compare(\PHP_VERSION, '7.3', '>=') && \defined('PASSWORD_ARGON2ID')) { return true; } return false; } /** * Validate a password * * @param string $plaintext The plain text password to validate * @param string $hashed The password hash to validate against * * @return boolean * * @since 1.3.0 * @throws UnsupportedPasswordHandlerException if the password handler is not supported */ public function validatePassword($plaintext, $hashed) { // Use the password extension if able if (version_compare(\PHP_VERSION, '7.3', '>=') && \defined('PASSWORD_ARGON2ID')) { return password_verify($plaintext, $hashed); } throw new UnsupportedPasswordHandlerException('Argon2id algorithm is not supported.'); } }