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: 8 months 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;
    }
}