diff options
Diffstat (limited to 'phpBB/phpbb/passwords/driver')
| -rw-r--r-- | phpBB/phpbb/passwords/driver/sha1_wcf1.php | 67 | 
1 files changed, 67 insertions, 0 deletions
| diff --git a/phpBB/phpbb/passwords/driver/sha1_wcf1.php b/phpBB/phpbb/passwords/driver/sha1_wcf1.php new file mode 100644 index 0000000000..4c1b449c0a --- /dev/null +++ b/phpBB/phpbb/passwords/driver/sha1_wcf1.php @@ -0,0 +1,67 @@ +<?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_wcf1 extends base +{ +	const PREFIX = '$wcf1$'; + +	/** +	* @inheritdoc +	*/ +	public function get_prefix() +	{ +		return self::PREFIX; +	} + +	/** +	* @inheritdoc +	*/ +	public function is_legacy() +	{ +		return true; +	} + +	/** +	* @inheritdoc +	*/ +	public function hash($password, $user_row = '') +	{ +		// Do not support hashing +		return false; +	} + +	/** +	* @inheritdoc +	*/ +	public function check($password, $hash, $user_row = array()) +	{ +		if (empty($hash) || !isset($user_row['user_passwd_salt'])) +		{ +			return false; +		} +		else +		{ +			// Works for standard WCF 1.x, i.e. WBB3 and similar +			return $hash === sha1($user_row['user_passwd_salt'] . sha1($user_row['user_passwd_salt'] . sha1($password))); +		} +	} + +	/** +	* @inheritdoc +	*/ +	public function get_settings_only($hash, $full = false) +	{ +		return false; +	} +} | 
