diff options
author | Marc Alexander <admin@m-a-styles.de> | 2014-05-29 22:50:21 +0200 |
---|---|---|
committer | Marc Alexander <admin@m-a-styles.de> | 2014-06-01 21:31:05 +0200 |
commit | f3eba6275a6965f866b6e3bed7ce5330a14eb960 (patch) | |
tree | a5b5cf68a21fca2a997ec5442b8bbcf3b4be0f42 /phpBB/phpbb/passwords/driver | |
parent | 97c36b00b36a0191a453fd265c4d5f651da065bb (diff) | |
download | forums-f3eba6275a6965f866b6e3bed7ce5330a14eb960.tar forums-f3eba6275a6965f866b6e3bed7ce5330a14eb960.tar.gz forums-f3eba6275a6965f866b6e3bed7ce5330a14eb960.tar.bz2 forums-f3eba6275a6965f866b6e3bed7ce5330a14eb960.tar.xz forums-f3eba6275a6965f866b6e3bed7ce5330a14eb960.zip |
[ticket/12352] Add passwords driver for xenforo 1.0, 1.1 passwords
PHPBB3-12352
Diffstat (limited to 'phpBB/phpbb/passwords/driver')
-rw-r--r-- | phpBB/phpbb/passwords/driver/sha_xf1.php | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/phpBB/phpbb/passwords/driver/sha_xf1.php b/phpBB/phpbb/passwords/driver/sha_xf1.php new file mode 100644 index 0000000000..0dd21b10fe --- /dev/null +++ b/phpBB/phpbb/passwords/driver/sha_xf1.php @@ -0,0 +1,75 @@ +<?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 sha_xf1 extends base +{ + const PREFIX = '$xf1$'; + + /** + * @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 xenforo 1.0, 1.1 + if ($hash === sha1(sha1($password) . $user_row['user_passwd_salt']) + || $hash === hash('sha256', hash('sha256', $password) . $user_row['user_passwd_salt'])) + { + return true; + } + else + { + return false; + } + } + } + + /** + * @inheritdoc + */ + public function get_settings_only($hash, $full = false) + { + return false; + } +} |