1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
<?php
declare(strict_types=1);
namespace ParagonIE\ConstantTime\Tests;
use function strlen;
use function substr;
trait CanonicalTrait
{
public static function canonicalDataProvider(): array
{
return [
['a'],
['ab'],
['abcd'],
["\xff"],
["\xff\xff"],
["\xff\xff\xff\xff"]
];
}
abstract protected function getNextChar(string $c): string;
protected function increment(string $str): string
{
$i = strlen($str) - 1;
$c = $this->getNextChar($str[$i]);
return substr($str, 0, $i) . $c;
}
}
|