PHP Classes

File: tests/CanonicalTrait.php

Recommend this page to a friend!
  Packages of Scott Arciszewski   PHP Constant Time String Encoding   tests/CanonicalTrait.php   Download  
File: tests/CanonicalTrait.php
Role: Class source
Content type: text/plain
Description: Class source
Class: PHP Constant Time String Encoding
Encode text without leaking context information
Author: By
Last change:
Date: 1 year ago
Size: 644 bytes
 

Contents

Class file image Download
<?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;
    }
}