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.
85 lines
3.6 KiB
PHTML
85 lines
3.6 KiB
PHTML
4 years ago
|
<?php
|
||
|
use \ParagonIE\ConstantTime\Base32;
|
||
|
use \ParagonIE\ConstantTime\Base32Hex;
|
||
|
use \ParagonIE\ConstantTime\Base64;
|
||
|
use \ParagonIE\ConstantTime\Base64DotSlash;
|
||
|
use \ParagonIE\ConstantTime\Base64DotSlashOrdered;
|
||
|
use \ParagonIE\ConstantTime\Encoding;
|
||
|
use \ParagonIE\ConstantTime\Hex;
|
||
|
|
||
|
/**
|
||
|
* Class RFC4648Test
|
||
|
*
|
||
|
* @ref https://tools.ietf.org/html/rfc4648#section-10
|
||
|
*/
|
||
|
class RFC4648Test extends PHPUnit\Framework\TestCase
|
||
|
{
|
||
|
public function testVectorBase64()
|
||
|
{
|
||
|
$this->assertSame(Base64::encode(''), '');
|
||
|
$this->assertSame(Base64::encode('f'), 'Zg==');
|
||
|
$this->assertSame(Base64::encode('fo'), 'Zm8=');
|
||
|
$this->assertSame(Base64::encode('foo'), 'Zm9v');
|
||
|
$this->assertSame(Base64::encode('foob'), 'Zm9vYg==');
|
||
|
$this->assertSame(Base64::encode('fooba'), 'Zm9vYmE=');
|
||
|
$this->assertSame(Base64::encode('foobar'), 'Zm9vYmFy');
|
||
|
}
|
||
|
|
||
|
public function testVectorBase32()
|
||
|
{
|
||
|
$this->assertSame(Base32::encode(''), '');
|
||
|
$this->assertSame(Base32::encode('f'), 'my======');
|
||
|
$this->assertSame(Base32::encode('fo'), 'mzxq====');
|
||
|
$this->assertSame(Base32::encode('foo'), 'mzxw6===');
|
||
|
$this->assertSame(Base32::encode('foob'), 'mzxw6yq=');
|
||
|
$this->assertSame(Base32::encode('fooba'), 'mzxw6ytb');
|
||
|
$this->assertSame(Base32::encode('foobar'), 'mzxw6ytboi======');
|
||
|
|
||
|
$this->assertSame(Base32::encodeUpper(''), '');
|
||
|
$this->assertSame(Base32::encodeUpper('f'), 'MY======');
|
||
|
$this->assertSame(Base32::encodeUpper('fo'), 'MZXQ====');
|
||
|
$this->assertSame(Base32::encodeUpper('foo'), 'MZXW6===');
|
||
|
$this->assertSame(Base32::encodeUpper('foob'), 'MZXW6YQ=');
|
||
|
$this->assertSame(Base32::encodeUpper('fooba'), 'MZXW6YTB');
|
||
|
$this->assertSame(Base32::encodeUpper('foobar'), 'MZXW6YTBOI======');
|
||
|
}
|
||
|
|
||
|
public function testVectorBase32Hex()
|
||
|
{
|
||
|
$this->assertSame(Base32Hex::encode(''), '');
|
||
|
$this->assertSame(Base32Hex::encode('f'), 'co======');
|
||
|
$this->assertSame(Base32Hex::encode('fo'), 'cpng====');
|
||
|
$this->assertSame(Base32Hex::encode('foo'), 'cpnmu===');
|
||
|
$this->assertSame(Base32Hex::encode('foob'), 'cpnmuog=');
|
||
|
$this->assertSame(Base32Hex::encode('fooba'), 'cpnmuoj1');
|
||
|
$this->assertSame(Base32Hex::encode('foobar'), 'cpnmuoj1e8======');
|
||
|
|
||
|
$this->assertSame(Base32Hex::encodeUpper(''), '');
|
||
|
$this->assertSame(Base32Hex::encodeUpper('f'), 'CO======');
|
||
|
$this->assertSame(Base32Hex::encodeUpper('fo'), 'CPNG====');
|
||
|
$this->assertSame(Base32Hex::encodeUpper('foo'), 'CPNMU===');
|
||
|
$this->assertSame(Base32Hex::encodeUpper('foob'), 'CPNMUOG=');
|
||
|
$this->assertSame(Base32Hex::encodeUpper('fooba'), 'CPNMUOJ1');
|
||
|
$this->assertSame(Base32Hex::encodeUpper('foobar'), 'CPNMUOJ1E8======');
|
||
|
}
|
||
|
|
||
|
public function testVectorBase16()
|
||
|
{
|
||
|
$this->assertSame(Hex::encode(''), '');
|
||
|
$this->assertSame(Hex::encode('f'), '66');
|
||
|
$this->assertSame(Hex::encode('fo'), '666f');
|
||
|
$this->assertSame(Hex::encode('foo'), '666f6f');
|
||
|
$this->assertSame(Hex::encode('foob'), '666f6f62');
|
||
|
$this->assertSame(Hex::encode('fooba'), '666f6f6261');
|
||
|
$this->assertSame(Hex::encode('foobar'), '666f6f626172');
|
||
|
|
||
|
$this->assertSame(Hex::encodeUpper(''), '');
|
||
|
$this->assertSame(Hex::encodeUpper('f'), '66');
|
||
|
$this->assertSame(Hex::encodeUpper('fo'), '666F');
|
||
|
$this->assertSame(Hex::encodeUpper('foo'), '666F6F');
|
||
|
$this->assertSame(Hex::encodeUpper('foob'), '666F6F62');
|
||
|
$this->assertSame(Hex::encodeUpper('fooba'), '666F6F6261');
|
||
|
$this->assertSame(Hex::encodeUpper('foobar'), '666F6F626172');
|
||
|
}
|
||
|
}
|