diff options
author | Marc Alexander <admin@m-a-styles.de> | 2014-04-24 21:00:33 +0200 |
---|---|---|
committer | Marc Alexander <admin@m-a-styles.de> | 2014-06-01 21:31:04 +0200 |
commit | 2ea45a06e724dfe9c3248fbb659d86558b55265e (patch) | |
tree | ce2ddb8471817b1b3596d2455fb92f8246bc512e /phpBB/phpbb/passwords | |
parent | 48679eeff884ce564f7a5ceb7db1b6c64e5dcb67 (diff) | |
download | forums-2ea45a06e724dfe9c3248fbb659d86558b55265e.tar forums-2ea45a06e724dfe9c3248fbb659d86558b55265e.tar.gz forums-2ea45a06e724dfe9c3248fbb659d86558b55265e.tar.bz2 forums-2ea45a06e724dfe9c3248fbb659d86558b55265e.tar.xz forums-2ea45a06e724dfe9c3248fbb659d86558b55265e.zip |
[ticket/12352] Add legacy passwords driver for sha1 smf type passwords
PHPBB3-12352
Diffstat (limited to 'phpBB/phpbb/passwords')
-rw-r--r-- | phpBB/phpbb/passwords/driver/base.php | 8 | ||||
-rw-r--r-- | phpBB/phpbb/passwords/driver/driver_interface.php | 7 | ||||
-rw-r--r-- | phpBB/phpbb/passwords/driver/sha1_smf.php | 58 |
3 files changed, 73 insertions, 0 deletions
diff --git a/phpBB/phpbb/passwords/driver/base.php b/phpBB/phpbb/passwords/driver/base.php index fffc9d1461..b74c2d3d72 100644 --- a/phpBB/phpbb/passwords/driver/base.php +++ b/phpBB/phpbb/passwords/driver/base.php @@ -43,4 +43,12 @@ abstract class base implements driver_interface { return true; } + + /** + * @inheritdoc + */ + public function is_legacy() + { + return false; + } } diff --git a/phpBB/phpbb/passwords/driver/driver_interface.php b/phpBB/phpbb/passwords/driver/driver_interface.php index 54c9d6500e..d38681b75f 100644 --- a/phpBB/phpbb/passwords/driver/driver_interface.php +++ b/phpBB/phpbb/passwords/driver/driver_interface.php @@ -23,6 +23,13 @@ interface driver_interface public function is_supported(); /** + * Check if hash type is a legacy hash type + * + * @return bool True if it's a legacy hash type, false if not + */ + public function is_legacy(); + + /** * Returns the hash prefix * * @return string Hash prefix diff --git a/phpBB/phpbb/passwords/driver/sha1_smf.php b/phpBB/phpbb/passwords/driver/sha1_smf.php new file mode 100644 index 0000000000..f7f5587485 --- /dev/null +++ b/phpBB/phpbb/passwords/driver/sha1_smf.php @@ -0,0 +1,58 @@ +<?php +/** +* +* @package phpBB3 +* @copyright (c) 2014 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +namespace phpbb\passwords\driver; + +/** +* @package passwords +*/ +class sha1_smf extends base +{ + const PREFIX = '$smf$'; + + /** + * @inheritdoc + */ + public function get_prefix() + { + return self::PREFIX; + } + + /** + * @inheritdoc + */ + public function is_legacy() + { + return true; + } + + /** + * @inheritdoc + */ + public function hash($password, $user_row = '') + { + return (isset($user_row['login_name'])) ? sha1(strtolower($user_row['login_name']) . $password) : false; + } + + /** + * @inheritdoc + */ + public function check($password, $hash, $user_row = array()) + { + return $hash === $this->hash($password, $user_row); + } + + /** + * @inheritdoc + */ + public function get_settings_only($hash, $full = false) + { + return false; + } +} |