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
|
<?php
declare(strict_types=1);
namespace ParagonIE\ConstantTime\Tests;
use ParagonIE\ConstantTime\Binary;
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 = Binary::safeStrlen($str) - 1;
$c = $this->getNextChar($str[$i]);
return Binary::safeSubstr($str, 0, $i) . $c;
}
}
|