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; +	} +}  | 
