File: CanonicalTrait.php

package info (click to toggle)
php-constant-time 3.0.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 308 kB
  • sloc: php: 1,676; makefile: 16; xml: 15
file content (29 lines) | stat: -rw-r--r-- 644 bytes parent folder | download
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;
    }
}