Fehlende ALTCHA-Bibliotheksdateien ergaenzt
This commit is contained in:
@@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace AltchaOrg\Altcha\V1;
|
||||||
|
|
||||||
|
use AltchaOrg\Altcha\V1\Hasher\Algorithm;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @phpstan-type ChallengeParams array<string, null|scalar>
|
||||||
|
*/
|
||||||
|
class BaseChallengeOptions
|
||||||
|
{
|
||||||
|
public const DEFAULT_MAX_NUMBER = 1000000;
|
||||||
|
|
||||||
|
public readonly string $salt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Options for creation of a new challenge.
|
||||||
|
*
|
||||||
|
* @see ChallengeOptions for options with sane defaults.
|
||||||
|
*
|
||||||
|
* @param ChallengeParams $params
|
||||||
|
*/
|
||||||
|
public function __construct(
|
||||||
|
public readonly Algorithm $algorithm,
|
||||||
|
public readonly int $maxNumber,
|
||||||
|
public readonly ?\DateTimeInterface $expires,
|
||||||
|
string $salt,
|
||||||
|
public readonly int $number,
|
||||||
|
public readonly array $params,
|
||||||
|
) {
|
||||||
|
if ($expires) {
|
||||||
|
$params['expires'] = $expires->getTimestamp();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($params)) {
|
||||||
|
$salt .= '?' . http_build_query($params);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add a delimiter to prevent parameter splicing
|
||||||
|
if (!str_ends_with($salt, '&')) {
|
||||||
|
$salt .= '&';
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->salt = $salt;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user