You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.4 KiB
PHP
50 lines
1.4 KiB
PHP
<?php
|
|
use \ParagonIE\ConstantTime\Base32Hex;
|
|
|
|
class Base32HexTest extends PHPUnit\Framework\TestCase
|
|
{
|
|
/**
|
|
* @covers Base32Hex::encode()
|
|
* @covers Base32Hex::decode()
|
|
* @covers Base32Hex::encodeUpper()
|
|
* @covers Base32Hex::decodeUpper()
|
|
*/
|
|
public function testRandom()
|
|
{
|
|
for ($i = 1; $i < 32; ++$i) {
|
|
for ($j = 0; $j < 50; ++$j) {
|
|
$random = \random_bytes($i);
|
|
|
|
$enc = Base32Hex::encode($random);
|
|
$this->assertSame(
|
|
$random,
|
|
Base32Hex::decode($enc)
|
|
);
|
|
$unpadded = \rtrim($enc, '=');
|
|
$this->assertSame(
|
|
$unpadded,
|
|
Base32Hex::encodeUnpadded($random)
|
|
);
|
|
$this->assertSame(
|
|
$random,
|
|
Base32Hex::decode($unpadded)
|
|
);
|
|
|
|
$enc = Base32Hex::encodeUpper($random);
|
|
$this->assertSame(
|
|
$random,
|
|
Base32Hex::decodeUpper($enc)
|
|
); $unpadded = \rtrim($enc, '=');
|
|
$this->assertSame(
|
|
$unpadded,
|
|
Base32Hex::encodeUpperUnpadded($random)
|
|
);
|
|
$this->assertSame(
|
|
$random,
|
|
Base32Hex::decodeUpper($unpadded)
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|