Hash configuration
This commit is contained in:
@@ -74,4 +74,12 @@ abstract class AbstractAlgorithm implements IPasswordAlgorithm
|
||||
* @inheritdoc
|
||||
*/
|
||||
public abstract function getPasswordHash($password);
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function configuration()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,6 +100,27 @@ class CryptArgon2 extends AbstractAlgorithm
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function configuration()
|
||||
{
|
||||
return [
|
||||
[
|
||||
"name" => "memoryCost", "visible_name" => "Memory cost (KiB)",
|
||||
"default" => PASSWORD_ARGON2_DEFAULT_MEMORY_COST, "min" => 1, "max" => 1048576
|
||||
],
|
||||
[
|
||||
"name" => "timeCost", "visible_name" => "Time cost",
|
||||
"default" => PASSWORD_ARGON2_DEFAULT_TIME_COST, "min" => 1, "max" => 1024
|
||||
],
|
||||
[
|
||||
"name" => "threads", "visible_name" => "Threads",
|
||||
"default" => PASSWORD_ARGON2_DEFAULT_THREADS, "min" => 1, "max" => 1024
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
|
||||
@@ -67,6 +67,19 @@ class CryptBlowfish extends AbstractAlgorithm
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function configuration()
|
||||
{
|
||||
return [
|
||||
[
|
||||
"name" => "cost", "visible_name" => "Cost", "default" => 10,
|
||||
"min" => 4, "max" => 31
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the algorithm name.
|
||||
*
|
||||
|
||||
@@ -48,6 +48,19 @@ class CryptExtendedDES extends AbstractCrypt
|
||||
$this->iterationCount = $iterationCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function configuration()
|
||||
{
|
||||
return [
|
||||
[
|
||||
"name" => "iterations", "visible_name" => "Iterations", "default" => 1000,
|
||||
"min" => 0, "max" => 16777215
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
@@ -76,7 +89,7 @@ class CryptExtendedDES extends AbstractCrypt
|
||||
while ($number) {
|
||||
$rem = $number % $base;
|
||||
$number = (int)($number / $base);
|
||||
$arr[] = $alphabet[$rem];
|
||||
$chars[] = $alphabet[$rem];
|
||||
}
|
||||
|
||||
return str_pad(implode($chars), 4, ".", STR_PAD_RIGHT);
|
||||
|
||||
@@ -49,6 +49,19 @@ class CryptSHA256 extends AbstractCrypt
|
||||
$this->rounds = $rounds;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function configuration()
|
||||
{
|
||||
return [
|
||||
[
|
||||
"name" => "rounds", "visible_name" => "Rounds", "default" => 5000,
|
||||
"min" => 1000, "max" => 999999999
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
|
||||
@@ -49,6 +49,19 @@ class CryptSHA512 extends AbstractCrypt
|
||||
$this->rounds = $rounds;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function configuration()
|
||||
{
|
||||
return [
|
||||
[
|
||||
"name" => "rounds", "visible_name" => "Rounds", "default" => 5000,
|
||||
"min" => 1000, "max" => 999999999
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
|
||||
@@ -56,4 +56,13 @@ interface IPasswordAlgorithm
|
||||
* @return boolean True if the password is correct, false otherwise.
|
||||
*/
|
||||
public function checkPassword($password, $dbHash);
|
||||
|
||||
/**
|
||||
* Configuration for the algorithm.
|
||||
* The return array should contain entries which define keys:
|
||||
* name, visible_name, default, min, max.
|
||||
*
|
||||
* @return array The configuration array.
|
||||
*/
|
||||
public function configuration();
|
||||
}
|
||||
|
||||
@@ -143,6 +143,19 @@ class Phpass extends AbstractAlgorithm
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function configuration()
|
||||
{
|
||||
return [
|
||||
[
|
||||
"name" => "iterations", "visible_name" => "Iterations (log2)",
|
||||
"default" => 8, "min" => 4, "max" => 31
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user