Skip to content
Snippets Groups Projects
Commit 43ee7484 authored by Andreas Gohr's avatar Andreas Gohr
Browse files

Support for kmd5 passcrypt method

Ignore-this: c809bd207504f78e84685612b0a668a7

This is a MD5 based hashing method used in the Unclassified NewsBoard forum
software (which is used for DokuWiki's supprt forum)

darcs-hash:20091015184330-7ad00-38680848952bdb46052dcf3597fa5e91f892ca51.gz
parent c2a66484
No related branches found
No related tags found
No related merge requests found
......@@ -872,6 +872,7 @@ function act_resendpwd(){
* crypt - Unix crypt
* mysql - MySQL password (old method)
* my411 - MySQL 4.1.1 password
* kmd5 - Salted MD5 hashing as used by UNB
*
* @author Andreas Gohr <andi@splitbrain.org>
* @return string The crypted password
......@@ -942,6 +943,11 @@ function auth_cryptPassword($clear,$method='',$salt=null){
return sprintf("%08x%08x", ($nr & 0x7fffffff), ($nr2 & 0x7fffffff));
case 'my411':
return '*'.sha1(pack("H*", sha1($clear)));
case 'kmd5':
$key = substr($salt, 16, 2);
$hash1 = strtolower(md5($key . md5($clear)));
$hash2 = substr($hash1, 0, 16) . $key . substr($hash1, 16);
return $hash2;
default:
msg("Unsupported crypt method $method",-1);
}
......@@ -980,6 +986,9 @@ function auth_verifyPassword($clear,$crypt){
$method = 'mysql';
}elseif($len == 41 && $crypt[0] == '*'){
$method = 'my411';
}elseif($len == 34){
$method = 'kmd5';
$salt = $crypt;
}else{
$method = 'crypt';
$salt = substr($crypt,0,2);
......
......@@ -119,7 +119,7 @@ $meta['_authentication'] = array('fieldset');
$meta['useacl'] = array('onoff');
$meta['autopasswd'] = array('onoff');
$meta['authtype'] = array('authtype');
$meta['passcrypt'] = array('multichoice','_choices' => array('smd5','md5','apr1','sha1','ssha','crypt','mysql','my411'));
$meta['passcrypt'] = array('multichoice','_choices' => array('smd5','md5','apr1','sha1','ssha','crypt','mysql','my411','kmd5'));
$meta['defaultgroup']= array('string');
$meta['superuser'] = array('string');
$meta['manager'] = array('string');
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment