mirror of
https://github.com/phpseclib/phpseclib.git
synced 2024-11-09 15:20:58 +00:00
Merge pull request #269 from bantu/code-sniffer-tests
Apply Code Sniffer to tests folder * bantu/code-sniffer-tests: Apply coding guidelines (with exceptions) to the tests directory. Update PHP_CodeSniffer from 1.4.7 to 1.5.2. This fixes a rule inheritance bug. Use exclude instead of changing severity. Add build directory.
This commit is contained in:
commit
8dc659d694
@ -20,7 +20,8 @@ before_script:
|
||||
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.5' ]; then composer install --dev --no-interaction; fi"
|
||||
|
||||
script:
|
||||
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.5' ]; then vendor/bin/phpcs -s --extensions=php --standard=tests/code_sniffer_ruleset.xml phpseclib/; fi"
|
||||
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.5' ]; then vendor/bin/phpcs -s --extensions=php --standard=build/code-sniffer-ruleset.xml phpseclib/; fi"
|
||||
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.5' ]; then vendor/bin/phpcs -s --extensions=php --standard=build/code-sniffer-ruleset-tests.xml tests/; fi"
|
||||
- phpunit --verbose --coverage-text --coverage-html code_coverage/
|
||||
|
||||
after_success:
|
||||
|
21
build/code-sniffer-ruleset-tests.xml
Normal file
21
build/code-sniffer-ruleset-tests.xml
Normal file
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0"?>
|
||||
<ruleset name="phpseclib Test Standard">
|
||||
|
||||
<description>phpseclib coding standard for tests</description>
|
||||
|
||||
<!-- In general rules that apply to library code also apply to tests. -->
|
||||
<rule ref="./code-sniffer-ruleset.xml">
|
||||
<!-- Exceptions to the library coding standard follow. -->
|
||||
|
||||
<!-- We do not care too much about method, class and file documentation,
|
||||
but having @author, @copyright and @license tags would be nice.
|
||||
The following configuration does not check for these tags, but
|
||||
complains if the file doc block is missing completely. -->
|
||||
<exclude name="PEAR.Commenting.ClassComment" />
|
||||
<exclude name="PEAR.Commenting.FunctionComment" />
|
||||
<exclude name="PEAR.Commenting.FileComment.MissingTag" />
|
||||
<exclude name="PEAR.Commenting.FileComment.MissingVersion" />
|
||||
<exclude name="PEAR.Commenting.FileComment.SpacingBeforeTags" />
|
||||
</rule>
|
||||
|
||||
</ruleset>
|
76
build/code-sniffer-ruleset.xml
Normal file
76
build/code-sniffer-ruleset.xml
Normal file
@ -0,0 +1,76 @@
|
||||
<?xml version="1.0"?>
|
||||
<ruleset name="phpseclib Standard">
|
||||
|
||||
<description>phpseclib coding standard</description>
|
||||
|
||||
<!-- We are using the PEAR standard as a base -->
|
||||
<rule ref="PEAR">
|
||||
<!-- Temporary exceptions to the PEAR standard follow -->
|
||||
<exclude name="Generic.ControlStructures.InlineControlStructure.Discouraged" />
|
||||
<exclude name="Generic.Files.LineLength.TooLong" />
|
||||
<exclude name="PEAR.NamingConventions.ValidFunctionName.FunctionNoCapital" />
|
||||
<exclude name="PEAR.NamingConventions.ValidFunctionName.NotCamelCaps" />
|
||||
<exclude name="PEAR.Commenting.ClassComment.InvalidVersion" />
|
||||
<exclude name="PEAR.Commenting.ClassComment.MissingTag" />
|
||||
<exclude name="PEAR.Commenting.FileComment.EmptyCopyright" />
|
||||
<exclude name="PEAR.Commenting.FileComment.InvalidVersion" />
|
||||
<exclude name="PEAR.Commenting.FunctionComment.ExtraParamComment" />
|
||||
<exclude name="PEAR.Commenting.FunctionComment.MissingReturn" />
|
||||
<exclude name="PEAR.Commenting.FunctionComment.MissingParamComment" />
|
||||
<exclude name="PEAR.Commenting.FunctionComment.MissingParamName" />
|
||||
<exclude name="PEAR.Commenting.FunctionComment.MissingParamTag" />
|
||||
<exclude name="PEAR.Commenting.FunctionComment.ParameterCommentsNotAligned" />
|
||||
<exclude name="PEAR.Commenting.FunctionComment.ParameterNamesNotAligned" />
|
||||
<exclude name="PEAR.Commenting.FunctionComment.ParamNameNoMatch" />
|
||||
<exclude name="PEAR.Commenting.FunctionComment.SpacingAfterParams" />
|
||||
<exclude name="PEAR.Commenting.FunctionComment.SpacingBeforeParams" />
|
||||
<exclude name="PEAR.Commenting.FunctionComment.SpacingBeforeTags" />
|
||||
<exclude name="PEAR.Functions.FunctionCallSignature.ContentAfterOpenBracket" />
|
||||
<exclude name="PEAR.Functions.FunctionCallSignature.CloseBracketLine" />
|
||||
<exclude name="PEAR.Functions.FunctionCallSignature.Indent" />
|
||||
<exclude name="PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket" />
|
||||
<exclude name="PEAR.WhiteSpace.ScopeClosingBrace.BreakIdent" />
|
||||
<exclude name="PEAR.WhiteSpace.ScopeClosingBrace.Indent" />
|
||||
<exclude name="PEAR.WhiteSpace.ScopeClosingBrace.Line" />
|
||||
<exclude name="PEAR.WhiteSpace.ScopeIndent.Incorrect" />
|
||||
</rule>
|
||||
|
||||
<!-- Useful additional rules follow -->
|
||||
|
||||
<!-- "for (; bar; )" should be "while (bar)" instead -->
|
||||
<rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop" />
|
||||
|
||||
<!-- A method MUST not only call its parent -->
|
||||
<rule ref="Generic.CodeAnalysis.UselessOverridingMethod" />
|
||||
|
||||
<!-- All code files MUST use only UTF-8 without BOM. -->
|
||||
<rule ref="Generic.Files.ByteOrderMark" />
|
||||
|
||||
<!-- Each file MUST end with exactly one newline character -->
|
||||
<rule ref="PSR2.Files.EndFileNewline" />
|
||||
|
||||
<!-- In the argument list, there MUST NOT be a space before each comma,
|
||||
and there MUST be one space after each comma. -->
|
||||
<rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing">
|
||||
<properties>
|
||||
<property name="equalsSpacing" value="1"/>
|
||||
</properties>
|
||||
</rule>
|
||||
<rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpacingAfterHint" />
|
||||
|
||||
<!-- There MUST NOT be trailing whitespace at the end of lines. -->
|
||||
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace" />
|
||||
|
||||
<!-- There MUST NOT be whitespace before the first content of a file -->
|
||||
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace.StartFile" />
|
||||
|
||||
<!-- There MUST NOT be whitespace after the last content of a file -->
|
||||
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace.EndFile" />
|
||||
|
||||
<!-- Functions MUST NOT contain multiple empty lines in a row -->
|
||||
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace.EmptyLines" />
|
||||
|
||||
<!-- The ?> closing tag MUST be omitted from files containing only PHP. -->
|
||||
<rule ref="Zend.Files.ClosingTag" />
|
||||
|
||||
</ruleset>
|
13
composer.lock
generated
13
composer.lock
generated
@ -3,23 +3,23 @@
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
|
||||
],
|
||||
"hash": "e692359d277b10176319a11c2aef51aa",
|
||||
"hash": "4975b8cde04a99d6e78e108753845af6",
|
||||
"packages": [
|
||||
|
||||
],
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "squizlabs/php_codesniffer",
|
||||
"version": "1.4.7",
|
||||
"version": "1.5.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
||||
"reference": "df764a1604607ea61c4eeea5410666e27cb37a8b"
|
||||
"reference": "a76a39b317ce8106abe6264daa505e24e1731860"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/df764a1604607ea61c4eeea5410666e27cb37a8b",
|
||||
"reference": "df764a1604607ea61c4eeea5410666e27cb37a8b",
|
||||
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/a76a39b317ce8106abe6264daa505e24e1731860",
|
||||
"reference": "a76a39b317ce8106abe6264daa505e24e1731860",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -39,7 +39,6 @@
|
||||
"CodeSniffer/CLI.php",
|
||||
"CodeSniffer/Exception.php",
|
||||
"CodeSniffer/File.php",
|
||||
"CodeSniffer/MultiFileSniff.php",
|
||||
"CodeSniffer/Report.php",
|
||||
"CodeSniffer/Reporting.php",
|
||||
"CodeSniffer/Sniff.php",
|
||||
@ -77,7 +76,7 @@
|
||||
"phpcs",
|
||||
"standards"
|
||||
],
|
||||
"time": "2013-09-26 00:08:21"
|
||||
"time": "2014-02-04 23:49:58"
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
|
@ -1,71 +1,72 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXIII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXIII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
class Crypt_AES_ContinuousBufferTest extends Crypt_AES_TestCase
|
||||
{
|
||||
// String intented
|
||||
protected $modes = array(
|
||||
'CRYPT_AES_MODE_CTR',
|
||||
'CRYPT_AES_MODE_OFB',
|
||||
'CRYPT_AES_MODE_CFB',
|
||||
);
|
||||
// String intented
|
||||
protected $modes = array(
|
||||
'CRYPT_AES_MODE_CTR',
|
||||
'CRYPT_AES_MODE_OFB',
|
||||
'CRYPT_AES_MODE_CFB',
|
||||
);
|
||||
|
||||
protected $plaintexts = array(
|
||||
'',
|
||||
'12345678901234567', // https://github.com/phpseclib/phpseclib/issues/39
|
||||
"\xDE\xAD\xBE\xAF",
|
||||
':-):-):-):-):-):-)', // https://github.com/phpseclib/phpseclib/pull/43
|
||||
);
|
||||
protected $plaintexts = array(
|
||||
'',
|
||||
'12345678901234567', // https://github.com/phpseclib/phpseclib/issues/39
|
||||
"\xDE\xAD\xBE\xAF",
|
||||
':-):-):-):-):-):-)', // https://github.com/phpseclib/phpseclib/pull/43
|
||||
);
|
||||
|
||||
protected $ivs = array(
|
||||
'',
|
||||
'test123',
|
||||
);
|
||||
protected $ivs = array(
|
||||
'',
|
||||
'test123',
|
||||
);
|
||||
|
||||
protected $keys = array(
|
||||
'',
|
||||
':-8', // https://github.com/phpseclib/phpseclib/pull/43
|
||||
'FOOBARZ',
|
||||
);
|
||||
protected $keys = array(
|
||||
'',
|
||||
':-8', // https://github.com/phpseclib/phpseclib/pull/43
|
||||
'FOOBARZ',
|
||||
);
|
||||
|
||||
/**
|
||||
* Produces all combinations of test values.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function allCombinations()
|
||||
{
|
||||
$result = array();
|
||||
/**
|
||||
* Produces all combinations of test values.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function allCombinations()
|
||||
{
|
||||
$result = array();
|
||||
|
||||
foreach ($this->modes as $mode)
|
||||
foreach ($this->plaintexts as $plaintext)
|
||||
foreach ($this->ivs as $iv)
|
||||
foreach ($this->keys as $key)
|
||||
$result[] = array($mode, $plaintext, $iv, $key);
|
||||
// @codingStandardsIgnoreStart
|
||||
foreach ($this->modes as $mode)
|
||||
foreach ($this->plaintexts as $plaintext)
|
||||
foreach ($this->ivs as $iv)
|
||||
foreach ($this->keys as $key)
|
||||
$result[] = array($mode, $plaintext, $iv, $key);
|
||||
// @codingStandardsIgnoreEnd
|
||||
|
||||
return $result;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider allCombinations
|
||||
*/
|
||||
public function testEncryptDecrypt($mode, $plaintext, $iv, $key)
|
||||
{
|
||||
$aes = new Crypt_AES(constant($mode));
|
||||
$aes->enableContinuousBuffer();
|
||||
$aes->setIV($iv);
|
||||
$aes->setKey($key);
|
||||
/**
|
||||
* @dataProvider allCombinations
|
||||
*/
|
||||
public function testEncryptDecrypt($mode, $plaintext, $iv, $key)
|
||||
{
|
||||
$aes = new Crypt_AES(constant($mode));
|
||||
$aes->enableContinuousBuffer();
|
||||
$aes->setIV($iv);
|
||||
$aes->setKey($key);
|
||||
|
||||
$actual = '';
|
||||
for ($i = 0, $strlen = strlen($plaintext); $i < $strlen; ++$i)
|
||||
{
|
||||
$actual .= $aes->decrypt($aes->encrypt($plaintext[$i]));
|
||||
}
|
||||
$actual = '';
|
||||
for ($i = 0, $strlen = strlen($plaintext); $i < $strlen; ++$i) {
|
||||
$actual .= $aes->decrypt($aes->encrypt($plaintext[$i]));
|
||||
}
|
||||
|
||||
$this->assertEquals($plaintext, $actual);
|
||||
}
|
||||
$this->assertEquals($plaintext, $actual);
|
||||
}
|
||||
}
|
||||
|
@ -1,27 +1,27 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXIII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXIII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
require_once 'Crypt/AES.php';
|
||||
|
||||
abstract class Crypt_AES_TestCase extends PhpseclibTestCase
|
||||
{
|
||||
static public function setUpBeforeClass()
|
||||
{
|
||||
require_once('Crypt/AES.php');
|
||||
static public function setUpBeforeClass()
|
||||
{
|
||||
if (!defined('CRYPT_AES_MODE')) {
|
||||
define('CRYPT_AES_MODE', CRYPT_AES_MODE_INTERNAL);
|
||||
}
|
||||
}
|
||||
|
||||
if (!defined('CRYPT_AES_MODE'))
|
||||
{
|
||||
define('CRYPT_AES_MODE', CRYPT_AES_MODE_INTERNAL);
|
||||
}
|
||||
}
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
if (defined('CRYPT_AES_MODE') && CRYPT_AES_MODE !== CRYPT_AES_MODE_INTERNAL)
|
||||
{
|
||||
$this->markTestSkipped('Skipping test because CRYPT_AES_MODE is not defined as CRYPT_AES_MODE_INTERNAL.');
|
||||
}
|
||||
}
|
||||
public function setUp()
|
||||
{
|
||||
if (defined('CRYPT_AES_MODE') && CRYPT_AES_MODE !== CRYPT_AES_MODE_INTERNAL) {
|
||||
$this->markTestSkipped(
|
||||
'Skipping test because CRYPT_AES_MODE is not defined as CRYPT_AES_MODE_INTERNAL.'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,47 +1,47 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
class Crypt_Hash_MD5Test extends Crypt_Hash_TestCase
|
||||
{
|
||||
public function getInstance()
|
||||
{
|
||||
return new Crypt_Hash('md5');
|
||||
}
|
||||
public function getInstance()
|
||||
{
|
||||
return new Crypt_Hash('md5');
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider hashData()
|
||||
*/
|
||||
public function testHash($message, $result)
|
||||
{
|
||||
$this->assertHashesTo($this->getInstance(), $message, $result);
|
||||
}
|
||||
/**
|
||||
* @dataProvider hashData()
|
||||
*/
|
||||
public function testHash($message, $result)
|
||||
{
|
||||
$this->assertHashesTo($this->getInstance(), $message, $result);
|
||||
}
|
||||
|
||||
static public function hashData()
|
||||
{
|
||||
return array(
|
||||
array('', 'd41d8cd98f00b204e9800998ecf8427e'),
|
||||
array('The quick brown fox jumps over the lazy dog', '9e107d9d372bb6826bd81d3542a419d6'),
|
||||
array('The quick brown fox jumps over the lazy dog.', 'e4d909c290d0fb1ca068ffaddf22cbd0'),
|
||||
);
|
||||
}
|
||||
static public function hashData()
|
||||
{
|
||||
return array(
|
||||
array('', 'd41d8cd98f00b204e9800998ecf8427e'),
|
||||
array('The quick brown fox jumps over the lazy dog', '9e107d9d372bb6826bd81d3542a419d6'),
|
||||
array('The quick brown fox jumps over the lazy dog.', 'e4d909c290d0fb1ca068ffaddf22cbd0'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider hmacData()
|
||||
*/
|
||||
public function testHMAC($key, $message, $result)
|
||||
{
|
||||
$this->assertHMACsTo($this->getInstance(), $key, $message, $result);
|
||||
}
|
||||
/**
|
||||
* @dataProvider hmacData()
|
||||
*/
|
||||
public function testHMAC($key, $message, $result)
|
||||
{
|
||||
$this->assertHMACsTo($this->getInstance(), $key, $message, $result);
|
||||
}
|
||||
|
||||
static public function hmacData()
|
||||
{
|
||||
return array(
|
||||
array('', '', '74e6f7298a9c2d168935f58c001bad88'),
|
||||
array('key', 'The quick brown fox jumps over the lazy dog', '80070713463e7749b90c2dc24911e275'),
|
||||
);
|
||||
}
|
||||
static public function hmacData()
|
||||
{
|
||||
return array(
|
||||
array('', '', '74e6f7298a9c2d168935f58c001bad88'),
|
||||
array('key', 'The quick brown fox jumps over the lazy dog', '80070713463e7749b90c2dc24911e275'),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -1,47 +1,52 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
require_once 'Crypt/Hash.php';
|
||||
|
||||
abstract class Crypt_Hash_TestCase extends PhpseclibTestCase
|
||||
{
|
||||
static public function setUpBeforeClass()
|
||||
{
|
||||
require_once('Crypt/Hash.php');
|
||||
static public function setUpBeforeClass()
|
||||
{
|
||||
if (!defined('CRYPT_HASH_MODE')) {
|
||||
define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_INTERNAL);
|
||||
}
|
||||
}
|
||||
|
||||
if (!defined('CRYPT_HASH_MODE'))
|
||||
{
|
||||
define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_INTERNAL);
|
||||
}
|
||||
}
|
||||
public function setUp()
|
||||
{
|
||||
if (defined('CRYPT_HASH_MODE') && CRYPT_HASH_MODE !== CRYPT_HASH_MODE_INTERNAL) {
|
||||
$this->markTestSkipped(
|
||||
'Skipping test because CRYPT_HASH_MODE is not defined as CRYPT_HASH_MODE_INTERNAL.'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
if (defined('CRYPT_HASH_MODE') && CRYPT_HASH_MODE !== CRYPT_HASH_MODE_INTERNAL)
|
||||
{
|
||||
$this->markTestSkipped('Skipping test because CRYPT_HASH_MODE is not defined as CRYPT_HASH_MODE_INTERNAL.');
|
||||
}
|
||||
}
|
||||
protected function assertHashesTo(Crypt_Hash $hash, $message, $expected)
|
||||
{
|
||||
$this->assertEquals(
|
||||
strtolower($expected),
|
||||
bin2hex($hash->hash($message)),
|
||||
sprintf("Failed asserting that '%s' hashes to '%s'.", $message, $expected)
|
||||
);
|
||||
}
|
||||
|
||||
protected function assertHashesTo(Crypt_Hash $hash, $message, $expected)
|
||||
{
|
||||
$this->assertEquals(
|
||||
strtolower($expected),
|
||||
bin2hex($hash->hash($message)),
|
||||
sprintf("Failed asserting that '%s' hashes to '%s'.", $message, $expected)
|
||||
);
|
||||
}
|
||||
protected function assertHMACsTo(Crypt_Hash $hash, $key, $message, $expected)
|
||||
{
|
||||
$hash->setKey($key);
|
||||
|
||||
protected function assertHMACsTo(Crypt_Hash $hash, $key, $message, $expected)
|
||||
{
|
||||
$hash->setKey($key);
|
||||
|
||||
$this->assertEquals(
|
||||
strtolower($expected),
|
||||
bin2hex($hash->hash($message)),
|
||||
sprintf("Failed asserting that '%s' HMACs to '%s' with key '%s'.", $message, $expected, $key)
|
||||
);
|
||||
}
|
||||
$this->assertEquals(
|
||||
strtolower($expected),
|
||||
bin2hex($hash->hash($message)),
|
||||
sprintf(
|
||||
"Failed asserting that '%s' HMACs to '%s' with key '%s'.",
|
||||
$message,
|
||||
$expected,
|
||||
$key
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -1,31 +1,28 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright MMXIII Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright MMXIII Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
require_once 'Crypt/RSA.php' ;
|
||||
|
||||
class Crypt_RSA_LoadKeyTest extends PhpseclibTestCase
|
||||
{
|
||||
static public function setUpBeforeClass()
|
||||
{
|
||||
require_once('Crypt/RSA.php');
|
||||
}
|
||||
public function testBadKey()
|
||||
{
|
||||
$rsa = new Crypt_RSA();
|
||||
|
||||
public function testBadKey()
|
||||
{
|
||||
$rsa = new Crypt_RSA();
|
||||
$key = 'zzzzzzzzzzzzzz';
|
||||
|
||||
$key = 'zzzzzzzzzzzzzz';
|
||||
$this->assertFalse($rsa->loadKey($key));
|
||||
}
|
||||
|
||||
$this->assertFalse($rsa->loadKey($key));
|
||||
}
|
||||
public function testPKCS1Key()
|
||||
{
|
||||
$rsa = new Crypt_RSA();
|
||||
|
||||
public function testPKCS1Key()
|
||||
{
|
||||
$rsa = new Crypt_RSA();
|
||||
|
||||
$key = '-----BEGIN RSA PRIVATE KEY-----
|
||||
$key = '-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
|
||||
wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
|
||||
1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
|
||||
@ -39,14 +36,14 @@ U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
|
||||
37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=
|
||||
-----END RSA PRIVATE KEY-----';
|
||||
|
||||
$this->assertTrue($rsa->loadKey($key));
|
||||
}
|
||||
$this->assertTrue($rsa->loadKey($key));
|
||||
}
|
||||
|
||||
public function testPKCS1SpacesKey()
|
||||
{
|
||||
$rsa = new Crypt_RSA();
|
||||
public function testPKCS1SpacesKey()
|
||||
{
|
||||
$rsa = new Crypt_RSA();
|
||||
|
||||
$key = '-----BEGIN RSA PRIVATE KEY-----
|
||||
$key = '-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
|
||||
wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
|
||||
1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
|
||||
@ -59,16 +56,16 @@ X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
|
||||
U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
|
||||
37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=
|
||||
-----END RSA PRIVATE KEY-----';
|
||||
$key = str_replace(array("\r", "\n", "\r\n"), ' ', $key);
|
||||
$key = str_replace(array("\r", "\n", "\r\n"), ' ', $key);
|
||||
|
||||
$this->assertTrue($rsa->loadKey($key));
|
||||
}
|
||||
$this->assertTrue($rsa->loadKey($key));
|
||||
}
|
||||
|
||||
public function testPKCS1NoHeaderKey()
|
||||
{
|
||||
$rsa = new Crypt_RSA();
|
||||
public function testPKCS1NoHeaderKey()
|
||||
{
|
||||
$rsa = new Crypt_RSA();
|
||||
|
||||
$key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
|
||||
$key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
|
||||
wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
|
||||
1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
|
||||
3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2
|
||||
@ -80,44 +77,44 @@ X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
|
||||
U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
|
||||
37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=';
|
||||
|
||||
$this->assertTrue($rsa->loadKey($key));
|
||||
}
|
||||
$this->assertTrue($rsa->loadKey($key));
|
||||
}
|
||||
|
||||
public function testPKCS1NoWhitespaceNoHeaderKey()
|
||||
{
|
||||
$rsa = new Crypt_RSA();
|
||||
public function testPKCS1NoWhitespaceNoHeaderKey()
|
||||
{
|
||||
$rsa = new Crypt_RSA();
|
||||
|
||||
$key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp' .
|
||||
'wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5' .
|
||||
'1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh' .
|
||||
'3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2' .
|
||||
'pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX' .
|
||||
'GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il' .
|
||||
'AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF' .
|
||||
'L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k' .
|
||||
'X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl' .
|
||||
'U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ' .
|
||||
'37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=';
|
||||
$this->assertTrue($rsa->loadKey($key));
|
||||
}
|
||||
$key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp' .
|
||||
'wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5' .
|
||||
'1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh' .
|
||||
'3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2' .
|
||||
'pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX' .
|
||||
'GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il' .
|
||||
'AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF' .
|
||||
'L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k' .
|
||||
'X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl' .
|
||||
'U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ' .
|
||||
'37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=';
|
||||
$this->assertTrue($rsa->loadKey($key));
|
||||
}
|
||||
|
||||
public function testRawPKCS1Key()
|
||||
{
|
||||
$rsa = new Crypt_RSA();
|
||||
public function testRawPKCS1Key()
|
||||
{
|
||||
$rsa = new Crypt_RSA();
|
||||
|
||||
$key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp' .
|
||||
'wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5' .
|
||||
'1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh' .
|
||||
'3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2' .
|
||||
'pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX' .
|
||||
'GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il' .
|
||||
'AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF' .
|
||||
'L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k' .
|
||||
'X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl' .
|
||||
'U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ' .
|
||||
'37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=';
|
||||
$key = base64_decode($key);
|
||||
$key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp' .
|
||||
'wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5' .
|
||||
'1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh' .
|
||||
'3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2' .
|
||||
'pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX' .
|
||||
'GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il' .
|
||||
'AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF' .
|
||||
'L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k' .
|
||||
'X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl' .
|
||||
'U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ' .
|
||||
'37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=';
|
||||
$key = base64_decode($key);
|
||||
|
||||
$this->assertTrue($rsa->loadKey($key));
|
||||
}
|
||||
$this->assertTrue($rsa->loadKey($key));
|
||||
}
|
||||
}
|
||||
|
@ -1,21 +1,20 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXIII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXIII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
class Math_BigInteger_BCMathTest extends Math_BigInteger_TestCase
|
||||
{
|
||||
static public function setUpBeforeClass()
|
||||
{
|
||||
if (!extension_loaded('bcmath'))
|
||||
{
|
||||
self::markTestSkipped('BCMath extension is not available.');
|
||||
}
|
||||
static public function setUpBeforeClass()
|
||||
{
|
||||
if (!extension_loaded('bcmath')) {
|
||||
self::markTestSkipped('BCMath extension is not available.');
|
||||
}
|
||||
|
||||
parent::setUpBeforeClass();
|
||||
parent::setUpBeforeClass();
|
||||
|
||||
self::ensureConstant('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_BCMATH);
|
||||
}
|
||||
self::ensureConstant('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_BCMATH);
|
||||
}
|
||||
}
|
||||
|
@ -1,21 +1,20 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXIII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXIII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
class Math_BigInteger_GMPTest extends Math_BigInteger_TestCase
|
||||
{
|
||||
static public function setUpBeforeClass()
|
||||
{
|
||||
if (!extension_loaded('gmp'))
|
||||
{
|
||||
self::markTestSkipped('GNU Multiple Precision (GMP) extension is not available.');
|
||||
}
|
||||
static public function setUpBeforeClass()
|
||||
{
|
||||
if (!extension_loaded('gmp')) {
|
||||
self::markTestSkipped('GNU Multiple Precision (GMP) extension is not available.');
|
||||
}
|
||||
|
||||
parent::setUpBeforeClass();
|
||||
parent::setUpBeforeClass();
|
||||
|
||||
self::ensureConstant('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_GMP);
|
||||
}
|
||||
self::ensureConstant('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_GMP);
|
||||
}
|
||||
}
|
||||
|
@ -1,21 +1,20 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXIII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXIII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
class Math_BigInteger_InternalOpenSSLTest extends Math_BigInteger_TestCase
|
||||
{
|
||||
static public function setUpBeforeClass()
|
||||
{
|
||||
if (!function_exists('openssl_public_encrypt'))
|
||||
{
|
||||
self::markTestSkipped('openssl_public_encrypt() function is not available.');
|
||||
}
|
||||
static public function setUpBeforeClass()
|
||||
{
|
||||
if (!function_exists('openssl_public_encrypt')) {
|
||||
self::markTestSkipped('openssl_public_encrypt() function is not available.');
|
||||
}
|
||||
|
||||
parent::setUpBeforeClass();
|
||||
parent::setUpBeforeClass();
|
||||
|
||||
self::ensureConstant('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_INTERNAL);
|
||||
}
|
||||
self::ensureConstant('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_INTERNAL);
|
||||
}
|
||||
}
|
||||
|
@ -1,17 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXIII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXIII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
class Math_BigInteger_InternalTest extends Math_BigInteger_TestCase
|
||||
{
|
||||
static public function setUpBeforeClass()
|
||||
{
|
||||
parent::setUpBeforeClass();
|
||||
static public function setUpBeforeClass()
|
||||
{
|
||||
parent::setUpBeforeClass();
|
||||
|
||||
self::ensureConstant('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_INTERNAL);
|
||||
self::ensureConstant('MATH_BIGINTEGER_OPENSSL_DISABLE', true);
|
||||
}
|
||||
self::ensureConstant('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_INTERNAL);
|
||||
self::ensureConstant('MATH_BIGINTEGER_OPENSSL_DISABLE', true);
|
||||
}
|
||||
}
|
||||
|
@ -1,268 +1,268 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
require_once 'Math/BigInteger.php';
|
||||
|
||||
abstract class Math_BigInteger_TestCase extends PhpseclibTestCase
|
||||
{
|
||||
static public function setUpBeforeClass()
|
||||
{
|
||||
parent::setUpBeforeClass();
|
||||
static public function setUpBeforeClass()
|
||||
{
|
||||
parent::setUpBeforeClass();
|
||||
|
||||
self::reRequireFile('Math/BigInteger.php');
|
||||
}
|
||||
self::reRequireFile('Math/BigInteger.php');
|
||||
}
|
||||
|
||||
public function getInstance($x = 0, $base = 10)
|
||||
{
|
||||
return new Math_BigInteger($x, $base);
|
||||
}
|
||||
public function getInstance($x = 0, $base = 10)
|
||||
{
|
||||
return new Math_BigInteger($x, $base);
|
||||
}
|
||||
|
||||
public function testConstructorBase2()
|
||||
{
|
||||
// 2**65 = 36893488147419103232
|
||||
$this->assertSame('36893488147419103232', (string) $this->getInstance('1' . str_repeat('0', 65), 2));
|
||||
}
|
||||
public function testConstructorBase2()
|
||||
{
|
||||
// 2**65 = 36893488147419103232
|
||||
$this->assertSame('36893488147419103232', (string) $this->getInstance('1' . str_repeat('0', 65), 2));
|
||||
}
|
||||
|
||||
public function testConstructorBase10()
|
||||
{
|
||||
$this->assertSame('18446744073709551616', (string) $this->getInstance('18446744073709551616'));
|
||||
}
|
||||
public function testConstructorBase10()
|
||||
{
|
||||
$this->assertSame('18446744073709551616', (string) $this->getInstance('18446744073709551616'));
|
||||
}
|
||||
|
||||
public function testConstructorBase16()
|
||||
{
|
||||
$this->assertSame('50', (string) $this->getInstance('0x32', 16));
|
||||
$this->assertSame('12345678910', (string) $this->getInstance('0x2DFDC1C3E', 16));
|
||||
$this->assertSame('18446744073709551615', (string) $this->getInstance('0xFFFFFFFFFFFFFFFF', 16));
|
||||
$this->assertSame('18446744073709551616', (string) $this->getInstance('0x10000000000000000', 16));
|
||||
}
|
||||
public function testConstructorBase16()
|
||||
{
|
||||
$this->assertSame('50', (string) $this->getInstance('0x32', 16));
|
||||
$this->assertSame('12345678910', (string) $this->getInstance('0x2DFDC1C3E', 16));
|
||||
$this->assertSame('18446744073709551615', (string) $this->getInstance('0xFFFFFFFFFFFFFFFF', 16));
|
||||
$this->assertSame('18446744073709551616', (string) $this->getInstance('0x10000000000000000', 16));
|
||||
}
|
||||
|
||||
public function testToBytes()
|
||||
{
|
||||
$this->assertSame(chr(65), $this->getInstance('65')->toBytes());
|
||||
}
|
||||
public function testToBytes()
|
||||
{
|
||||
$this->assertSame(chr(65), $this->getInstance('65')->toBytes());
|
||||
}
|
||||
|
||||
public function testToBytesTwosCompliment()
|
||||
{
|
||||
$this->assertSame(chr(126), $this->getInstance('01111110', 2)->toBytes(true));
|
||||
}
|
||||
public function testToBytesTwosCompliment()
|
||||
{
|
||||
$this->assertSame(chr(126), $this->getInstance('01111110', 2)->toBytes(true));
|
||||
}
|
||||
|
||||
public function testToHex()
|
||||
{
|
||||
$this->assertSame('41', $this->getInstance('65')->toHex());
|
||||
}
|
||||
public function testToHex()
|
||||
{
|
||||
$this->assertSame('41', $this->getInstance('65')->toHex());
|
||||
}
|
||||
|
||||
public function testToBits()
|
||||
{
|
||||
$this->assertSame('1000001', $this->getInstance('65')->toBits());
|
||||
}
|
||||
public function testToBits()
|
||||
{
|
||||
$this->assertSame('1000001', $this->getInstance('65')->toBits());
|
||||
}
|
||||
|
||||
public function testAdd()
|
||||
{
|
||||
$x = $this->getInstance('18446744073709551615');
|
||||
$y = $this->getInstance( '100000000000');
|
||||
public function testAdd()
|
||||
{
|
||||
$x = $this->getInstance('18446744073709551615');
|
||||
$y = $this->getInstance( '100000000000');
|
||||
|
||||
$a = $x->add($y);
|
||||
$b = $y->add($x);
|
||||
$a = $x->add($y);
|
||||
$b = $y->add($x);
|
||||
|
||||
$this->assertTrue($a->equals($b));
|
||||
$this->assertTrue($b->equals($a));
|
||||
$this->assertTrue($a->equals($b));
|
||||
$this->assertTrue($b->equals($a));
|
||||
|
||||
$this->assertSame('18446744173709551615', (string) $a);
|
||||
$this->assertSame('18446744173709551615', (string) $b);
|
||||
}
|
||||
$this->assertSame('18446744173709551615', (string) $a);
|
||||
$this->assertSame('18446744173709551615', (string) $b);
|
||||
}
|
||||
|
||||
public function testSubtract()
|
||||
{
|
||||
$x = $this->getInstance('18446744073709551618');
|
||||
$y = $this->getInstance( '4000000000000');
|
||||
$this->assertSame('18446740073709551618', (string) $x->subtract($y));
|
||||
}
|
||||
public function testSubtract()
|
||||
{
|
||||
$x = $this->getInstance('18446744073709551618');
|
||||
$y = $this->getInstance( '4000000000000');
|
||||
$this->assertSame('18446740073709551618', (string) $x->subtract($y));
|
||||
}
|
||||
|
||||
public function testMultiply()
|
||||
{
|
||||
$x = $this->getInstance('8589934592'); // 2**33
|
||||
$y = $this->getInstance('36893488147419103232'); // 2**65
|
||||
public function testMultiply()
|
||||
{
|
||||
$x = $this->getInstance('8589934592'); // 2**33
|
||||
$y = $this->getInstance('36893488147419103232'); // 2**65
|
||||
|
||||
$a = $x->multiply($y); // 2**98
|
||||
$b = $y->multiply($x); // 2**98
|
||||
$a = $x->multiply($y); // 2**98
|
||||
$b = $y->multiply($x); // 2**98
|
||||
|
||||
$this->assertTrue($a->equals($b));
|
||||
$this->assertTrue($b->equals($a));
|
||||
$this->assertTrue($a->equals($b));
|
||||
$this->assertTrue($b->equals($a));
|
||||
|
||||
$this->assertSame('316912650057057350374175801344', (string) $a);
|
||||
$this->assertSame('316912650057057350374175801344', (string) $b);
|
||||
}
|
||||
$this->assertSame('316912650057057350374175801344', (string) $a);
|
||||
$this->assertSame('316912650057057350374175801344', (string) $b);
|
||||
}
|
||||
|
||||
public function testDivide()
|
||||
{
|
||||
$x = $this->getInstance('1180591620717411303425'); // 2**70 + 1
|
||||
$y = $this->getInstance('12345678910');
|
||||
public function testDivide()
|
||||
{
|
||||
$x = $this->getInstance('1180591620717411303425'); // 2**70 + 1
|
||||
$y = $this->getInstance('12345678910');
|
||||
|
||||
list($q, $r) = $x->divide($y);
|
||||
list($q, $r) = $x->divide($y);
|
||||
|
||||
$this->assertSame('95627922070', (string) $q);
|
||||
$this->assertSame('10688759725', (string) $r);
|
||||
}
|
||||
$this->assertSame('95627922070', (string) $q);
|
||||
$this->assertSame('10688759725', (string) $r);
|
||||
}
|
||||
|
||||
public function testModPow()
|
||||
{
|
||||
$a = $this->getInstance('10');
|
||||
$b = $this->getInstance('20');
|
||||
$c = $this->getInstance('30');
|
||||
$d = $a->modPow($b, $c);
|
||||
public function testModPow()
|
||||
{
|
||||
$a = $this->getInstance('10');
|
||||
$b = $this->getInstance('20');
|
||||
$c = $this->getInstance('30');
|
||||
$d = $a->modPow($b, $c);
|
||||
|
||||
$this->assertSame('10', (string) $d);
|
||||
}
|
||||
$this->assertSame('10', (string) $d);
|
||||
}
|
||||
|
||||
public function testModInverse()
|
||||
{
|
||||
$a = $this->getInstance(30);
|
||||
$b = $this->getInstance(17);
|
||||
public function testModInverse()
|
||||
{
|
||||
$a = $this->getInstance(30);
|
||||
$b = $this->getInstance(17);
|
||||
|
||||
$c = $a->modInverse($b);
|
||||
$this->assertSame('4', (string) $c);
|
||||
$c = $a->modInverse($b);
|
||||
$this->assertSame('4', (string) $c);
|
||||
|
||||
$d = $a->multiply($c);
|
||||
list($q, $r) = $d->divide($b);
|
||||
$this->assertSame('1', (string) $r);
|
||||
}
|
||||
$d = $a->multiply($c);
|
||||
list($q, $r) = $d->divide($b);
|
||||
$this->assertSame('1', (string) $r);
|
||||
}
|
||||
|
||||
public function testExtendedGCD()
|
||||
{
|
||||
$a = $this->getInstance(693);
|
||||
$b = $this->getInstance(609);
|
||||
public function testExtendedGCD()
|
||||
{
|
||||
$a = $this->getInstance(693);
|
||||
$b = $this->getInstance(609);
|
||||
|
||||
$arr = $a->extendedGCD($b);
|
||||
$arr = $a->extendedGCD($b);
|
||||
|
||||
$this->assertSame('21', (string) $arr['gcd']);
|
||||
$this->assertSame(21, $a->toString() * $arr['x']->toString() + $b->toString() * $arr['y']->toString());
|
||||
}
|
||||
$this->assertSame('21', (string) $arr['gcd']);
|
||||
$this->assertSame(21, $a->toString() * $arr['x']->toString() + $b->toString() * $arr['y']->toString());
|
||||
}
|
||||
|
||||
public function testGCD()
|
||||
{
|
||||
$x = $this->getInstance(693);
|
||||
$y = $this->getInstance(609);
|
||||
$this->assertSame('21', (string) $x->gcd($y));
|
||||
}
|
||||
public function testGCD()
|
||||
{
|
||||
$x = $this->getInstance(693);
|
||||
$y = $this->getInstance(609);
|
||||
$this->assertSame('21', (string) $x->gcd($y));
|
||||
}
|
||||
|
||||
public function testAbs()
|
||||
{
|
||||
$x = $this->getInstance('-18446744073709551617');
|
||||
$y = $x->abs();
|
||||
public function testAbs()
|
||||
{
|
||||
$x = $this->getInstance('-18446744073709551617');
|
||||
$y = $x->abs();
|
||||
|
||||
$this->assertSame('-18446744073709551617', (string) $x);
|
||||
$this->assertSame('18446744073709551617', (string) $y);
|
||||
}
|
||||
$this->assertSame('-18446744073709551617', (string) $x);
|
||||
$this->assertSame('18446744073709551617', (string) $y);
|
||||
}
|
||||
|
||||
public function testEquals()
|
||||
{
|
||||
$x = $this->getInstance('18446744073709551616');
|
||||
$y = $this->getInstance('18446744073709551616');
|
||||
public function testEquals()
|
||||
{
|
||||
$x = $this->getInstance('18446744073709551616');
|
||||
$y = $this->getInstance('18446744073709551616');
|
||||
|
||||
$this->assertTrue($x->equals($y));
|
||||
$this->assertTrue($y->equals($x));
|
||||
}
|
||||
$this->assertTrue($x->equals($y));
|
||||
$this->assertTrue($y->equals($x));
|
||||
}
|
||||
|
||||
public function testCompare()
|
||||
{
|
||||
$a = $this->getInstance('-18446744073709551616');
|
||||
$b = $this->getInstance('36893488147419103232');
|
||||
$c = $this->getInstance('36893488147419103232');
|
||||
$d = $this->getInstance('316912650057057350374175801344');
|
||||
public function testCompare()
|
||||
{
|
||||
$a = $this->getInstance('-18446744073709551616');
|
||||
$b = $this->getInstance('36893488147419103232');
|
||||
$c = $this->getInstance('36893488147419103232');
|
||||
$d = $this->getInstance('316912650057057350374175801344');
|
||||
|
||||
// a < b
|
||||
$this->assertLessThan(0, $a->compare($b));
|
||||
$this->assertGreaterThan(0, $b->compare($a));
|
||||
// a < b
|
||||
$this->assertLessThan(0, $a->compare($b));
|
||||
$this->assertGreaterThan(0, $b->compare($a));
|
||||
|
||||
// b = c
|
||||
$this->assertSame(0, $b->compare($c));
|
||||
$this->assertSame(0, $c->compare($b));
|
||||
// b = c
|
||||
$this->assertSame(0, $b->compare($c));
|
||||
$this->assertSame(0, $c->compare($b));
|
||||
|
||||
// c < d
|
||||
$this->assertLessThan(0, $c->compare($d));
|
||||
$this->assertGreaterThan(0, $d->compare($c));
|
||||
}
|
||||
// c < d
|
||||
$this->assertLessThan(0, $c->compare($d));
|
||||
$this->assertGreaterThan(0, $d->compare($c));
|
||||
}
|
||||
|
||||
public function testBitwiseAND()
|
||||
{
|
||||
$x = $this->getInstance('66666666666666666666666', 16);
|
||||
$y = $this->getInstance('33333333333333333333333', 16);
|
||||
$z = $this->getInstance('22222222222222222222222', 16);
|
||||
public function testBitwiseAND()
|
||||
{
|
||||
$x = $this->getInstance('66666666666666666666666', 16);
|
||||
$y = $this->getInstance('33333333333333333333333', 16);
|
||||
$z = $this->getInstance('22222222222222222222222', 16);
|
||||
|
||||
$this->assertSame($z->toHex(), $x->bitwise_AND($y)->toHex());
|
||||
}
|
||||
$this->assertSame($z->toHex(), $x->bitwise_AND($y)->toHex());
|
||||
}
|
||||
|
||||
public function testBitwiseOR()
|
||||
{
|
||||
$x = $this->getInstance('11111111111111111111111', 16);
|
||||
$y = $this->getInstance('EEEEEEEEEEEEEEEEEEEEEEE', 16);
|
||||
$z = $this->getInstance('FFFFFFFFFFFFFFFFFFFFFFF', 16);
|
||||
public function testBitwiseOR()
|
||||
{
|
||||
$x = $this->getInstance('11111111111111111111111', 16);
|
||||
$y = $this->getInstance('EEEEEEEEEEEEEEEEEEEEEEE', 16);
|
||||
$z = $this->getInstance('FFFFFFFFFFFFFFFFFFFFFFF', 16);
|
||||
|
||||
$this->assertSame($z->toHex(), $x->bitwise_OR($y)->toHex());
|
||||
}
|
||||
$this->assertSame($z->toHex(), $x->bitwise_OR($y)->toHex());
|
||||
}
|
||||
|
||||
public function testBitwiseXOR()
|
||||
{
|
||||
$x = $this->getInstance('AFAFAFAFAFAFAFAFAFAFAFAF', 16);
|
||||
$y = $this->getInstance('133713371337133713371337', 16);
|
||||
$z = $this->getInstance('BC98BC98BC98BC98BC98BC98', 16);
|
||||
public function testBitwiseXOR()
|
||||
{
|
||||
$x = $this->getInstance('AFAFAFAFAFAFAFAFAFAFAFAF', 16);
|
||||
$y = $this->getInstance('133713371337133713371337', 16);
|
||||
$z = $this->getInstance('BC98BC98BC98BC98BC98BC98', 16);
|
||||
|
||||
$this->assertSame($z->toHex(), $x->bitwise_XOR($y)->toHex());
|
||||
}
|
||||
$this->assertSame($z->toHex(), $x->bitwise_XOR($y)->toHex());
|
||||
}
|
||||
|
||||
public function testBitwiseNOT()
|
||||
{
|
||||
$x = $this->getInstance('EEEEEEEEEEEEEEEEEEEEEEE', 16);
|
||||
$z = $this->getInstance('11111111111111111111111', 16);
|
||||
public function testBitwiseNOT()
|
||||
{
|
||||
$x = $this->getInstance('EEEEEEEEEEEEEEEEEEEEEEE', 16);
|
||||
$z = $this->getInstance('11111111111111111111111', 16);
|
||||
|
||||
$this->assertSame($z->toHex(), $x->bitwise_NOT()->toHex());
|
||||
}
|
||||
$this->assertSame($z->toHex(), $x->bitwise_NOT()->toHex());
|
||||
}
|
||||
|
||||
public function testBitwiseLeftShift()
|
||||
{
|
||||
$x = $this->getInstance('0x0000000FF0000000', 16);
|
||||
$y = $this->getInstance('0x000FF00000000000', 16);
|
||||
public function testBitwiseLeftShift()
|
||||
{
|
||||
$x = $this->getInstance('0x0000000FF0000000', 16);
|
||||
$y = $this->getInstance('0x000FF00000000000', 16);
|
||||
|
||||
$this->assertSame($y->toHex(), $x->bitwise_LeftShift(16)->toHex());
|
||||
}
|
||||
$this->assertSame($y->toHex(), $x->bitwise_LeftShift(16)->toHex());
|
||||
}
|
||||
|
||||
public function testBitwiseRightShift()
|
||||
{
|
||||
$x = $this->getInstance('0x0000000FF0000000', 16);
|
||||
$y = $this->getInstance('0x00000000000FF000', 16);
|
||||
$z = $this->getInstance('0x000000000000000F', 16);
|
||||
$n = $this->getInstance(0);
|
||||
public function testBitwiseRightShift()
|
||||
{
|
||||
$x = $this->getInstance('0x0000000FF0000000', 16);
|
||||
$y = $this->getInstance('0x00000000000FF000', 16);
|
||||
$z = $this->getInstance('0x000000000000000F', 16);
|
||||
$n = $this->getInstance(0);
|
||||
|
||||
$this->assertSame($y->toHex(), $x->bitwise_RightShift(16)->toHex());
|
||||
$this->assertSame($z->toHex(), $x->bitwise_RightShift(32)->toHex());
|
||||
$this->assertSame($n->toHex(), $x->bitwise_RightShift(36)->toHex());
|
||||
}
|
||||
$this->assertSame($y->toHex(), $x->bitwise_RightShift(16)->toHex());
|
||||
$this->assertSame($z->toHex(), $x->bitwise_RightShift(32)->toHex());
|
||||
$this->assertSame($n->toHex(), $x->bitwise_RightShift(36)->toHex());
|
||||
}
|
||||
|
||||
public function testSerializable()
|
||||
{
|
||||
$x = $this->getInstance('18446744073709551616');
|
||||
$y = unserialize(serialize($x));
|
||||
public function testSerializable()
|
||||
{
|
||||
$x = $this->getInstance('18446744073709551616');
|
||||
$y = unserialize(serialize($x));
|
||||
|
||||
$this->assertTrue($x->equals($y));
|
||||
$this->assertTrue($y->equals($x));
|
||||
$this->assertTrue($x->equals($y));
|
||||
$this->assertTrue($y->equals($x));
|
||||
|
||||
$this->assertSame('18446744073709551616', (string) $x);
|
||||
$this->assertSame('18446744073709551616', (string) $y);
|
||||
}
|
||||
$this->assertSame('18446744073709551616', (string) $x);
|
||||
$this->assertSame('18446744073709551616', (string) $y);
|
||||
}
|
||||
|
||||
public function testClone()
|
||||
{
|
||||
$x = $this->getInstance('18446744073709551616');
|
||||
$y = clone $x;
|
||||
public function testClone()
|
||||
{
|
||||
$x = $this->getInstance('18446744073709551616');
|
||||
$y = clone $x;
|
||||
|
||||
$this->assertTrue($x->equals($y));
|
||||
$this->assertTrue($y->equals($x));
|
||||
$this->assertTrue($x->equals($y));
|
||||
$this->assertTrue($y->equals($x));
|
||||
|
||||
$this->assertSame('18446744073709551616', (string) $x);
|
||||
$this->assertSame('18446744073709551616', (string) $y);
|
||||
}
|
||||
$this->assertSame('18446744073709551616', (string) $x);
|
||||
$this->assertSame('18446744073709551616', (string) $y);
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Marc Scholten <marc@pedigital.de>
|
||||
* @copyright MMXIII Marc Scholten
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @author Marc Scholten <marc@pedigital.de>
|
||||
* @copyright MMXIII Marc Scholten
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
class Net_SSH1Test extends PhpseclibTestCase
|
||||
|
@ -1,24 +1,13 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @author Marc Scholten <marc@pedigital.de>
|
||||
* @copyright MMXIII Marc Scholten
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @author Marc Scholten <marc@pedigital.de>
|
||||
* @copyright MMXIII Marc Scholten
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
class Net_SSH2Test extends PhpseclibTestCase
|
||||
{
|
||||
/**
|
||||
* @return Net_SSH2
|
||||
*/
|
||||
private function createSSHMock()
|
||||
{
|
||||
return $this->getMockBuilder('Net_SSH2')
|
||||
->disableOriginalConstructor()
|
||||
->setMethods(array('__destruct'))
|
||||
->getMock();
|
||||
}
|
||||
|
||||
public function formatLogDataProvider()
|
||||
{
|
||||
return array(
|
||||
@ -65,12 +54,12 @@ class Net_SSH2Test extends PhpseclibTestCase
|
||||
public function testGenerateIdentifier($expected, array $requiredExtensions)
|
||||
{
|
||||
$notAllowed = array('gmp', 'bcmath', 'mcrypt', 'gmp');
|
||||
foreach($notAllowed as $notAllowedExtension) {
|
||||
if(in_array($notAllowedExtension, $requiredExtensions)) {
|
||||
foreach ($notAllowed as $notAllowedExtension) {
|
||||
if (in_array($notAllowedExtension, $requiredExtensions)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if(extension_loaded($notAllowedExtension)) {
|
||||
if (extension_loaded($notAllowedExtension)) {
|
||||
$this->markTestSkipped('Extension ' . $notAllowedExtension . ' is not allowed for this data-set');
|
||||
}
|
||||
}
|
||||
@ -81,4 +70,14 @@ class Net_SSH2Test extends PhpseclibTestCase
|
||||
$this->assertEquals($expected, $identifier);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Net_SSH2
|
||||
*/
|
||||
protected function createSSHMock()
|
||||
{
|
||||
return $this->getMockBuilder('Net_SSH2')
|
||||
->disableOriginalConstructor()
|
||||
->setMethods(array('__destruct'))
|
||||
->getMock();
|
||||
}
|
||||
}
|
||||
|
@ -1,74 +1,64 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXIII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @author Andreas Fischer <bantu@phpbb.com>
|
||||
* @copyright MMXIII Andreas Fischer
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
abstract class PhpseclibTestCase extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* @param string $constant
|
||||
* @param mixed $expected
|
||||
*
|
||||
* @return null
|
||||
*/
|
||||
static protected function ensureConstant($constant, $expected)
|
||||
{
|
||||
if (defined($constant))
|
||||
{
|
||||
$value = constant($constant);
|
||||
/**
|
||||
* @param string $constant
|
||||
* @param mixed $expected
|
||||
*
|
||||
* @return null
|
||||
*/
|
||||
static protected function ensureConstant($constant, $expected)
|
||||
{
|
||||
if (defined($constant)) {
|
||||
$value = constant($constant);
|
||||
|
||||
if ($value !== $expected)
|
||||
{
|
||||
if (function_exists('runkit_constant_redefine'))
|
||||
{
|
||||
if (!runkit_constant_redefine($constant, $expected))
|
||||
{
|
||||
self::markTestSkipped(sprintf(
|
||||
"Failed to redefine constant %s to %s",
|
||||
$constant,
|
||||
$expected
|
||||
));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
self::markTestSkipped(sprintf(
|
||||
"Skipping test because constant %s is %s instead of %s",
|
||||
$constant,
|
||||
$value,
|
||||
$expected
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
define($constant, $expected);
|
||||
}
|
||||
}
|
||||
if ($value !== $expected) {
|
||||
if (function_exists('runkit_constant_redefine')) {
|
||||
if (!runkit_constant_redefine($constant, $expected)) {
|
||||
self::markTestSkipped(sprintf(
|
||||
"Failed to redefine constant %s to %s",
|
||||
$constant,
|
||||
$expected
|
||||
));
|
||||
}
|
||||
} else {
|
||||
self::markTestSkipped(sprintf(
|
||||
"Skipping test because constant %s is %s instead of %s",
|
||||
$constant,
|
||||
$value,
|
||||
$expected
|
||||
));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
define($constant, $expected);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $filename
|
||||
*
|
||||
* @return null
|
||||
*/
|
||||
static protected function reRequireFile($filename)
|
||||
{
|
||||
if (function_exists('runkit_import'))
|
||||
{
|
||||
$result = runkit_import(
|
||||
$filename,
|
||||
RUNKIT_IMPORT_FUNCTIONS |
|
||||
RUNKIT_IMPORT_CLASS_METHODS |
|
||||
RUNKIT_IMPORT_OVERRIDE
|
||||
);
|
||||
/**
|
||||
* @param string $filename
|
||||
*
|
||||
* @return null
|
||||
*/
|
||||
static protected function reRequireFile($filename)
|
||||
{
|
||||
if (function_exists('runkit_import')) {
|
||||
$result = runkit_import(
|
||||
$filename,
|
||||
RUNKIT_IMPORT_FUNCTIONS |
|
||||
RUNKIT_IMPORT_CLASS_METHODS |
|
||||
RUNKIT_IMPORT_OVERRIDE
|
||||
);
|
||||
|
||||
if (!$result)
|
||||
{
|
||||
self::markTestSkipped("Failed to reimport file $filename");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!$result) {
|
||||
self::markTestSkipped("Failed to reimport file $filename");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
/**
|
||||
* Bootstrapping File for phpseclib Test Suite
|
||||
*
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
date_default_timezone_set('UTC');
|
||||
@ -10,35 +10,34 @@ date_default_timezone_set('UTC');
|
||||
// Set up include path accordingly. This is especially required because some
|
||||
// class files of phpseclib require() other dependencies.
|
||||
set_include_path(implode(PATH_SEPARATOR, array(
|
||||
dirname(__FILE__) . '/../phpseclib/',
|
||||
dirname(__FILE__) . '/',
|
||||
get_include_path(),
|
||||
dirname(__FILE__) . '/../phpseclib/',
|
||||
dirname(__FILE__) . '/',
|
||||
get_include_path(),
|
||||
)));
|
||||
|
||||
function phpseclib_is_includable($suffix)
|
||||
{
|
||||
foreach (explode(PATH_SEPARATOR, get_include_path()) as $prefix)
|
||||
{
|
||||
$ds = substr($prefix, -1) == DIRECTORY_SEPARATOR ? '' : DIRECTORY_SEPARATOR;
|
||||
$file = $prefix . $ds . $suffix;
|
||||
foreach (explode(PATH_SEPARATOR, get_include_path()) as $prefix) {
|
||||
$ds = substr($prefix, -1) == DIRECTORY_SEPARATOR ? '' : DIRECTORY_SEPARATOR;
|
||||
$file = $prefix . $ds . $suffix;
|
||||
|
||||
if (file_exists($file))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (file_exists($file)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
function phpseclib_autoload($class)
|
||||
{
|
||||
$file = str_replace('_', '/', $class) . '.php';
|
||||
$file = str_replace('_', '/', $class) . '.php';
|
||||
|
||||
if (phpseclib_is_includable($file))
|
||||
{
|
||||
require $file;
|
||||
}
|
||||
if (phpseclib_is_includable($file)) {
|
||||
// @codingStandardsIgnoreStart
|
||||
require $file;
|
||||
// @codingStandardsIgnoreEnd
|
||||
}
|
||||
}
|
||||
|
||||
spl_autoload_register('phpseclib_autoload');
|
||||
|
@ -1,77 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<ruleset name="phpseclib Standard">
|
||||
|
||||
<description>phpseclib coding standard</description>
|
||||
|
||||
<!-- We are using the PEAR standard as a base -->
|
||||
<rule ref="PEAR"/>
|
||||
|
||||
<!-- Temporary exceptions to the PEAR standard follow -->
|
||||
|
||||
<rule ref="Generic.ControlStructures.InlineControlStructure.Discouraged"><severity>0</severity></rule>
|
||||
<rule ref="Generic.Files.LineLength.TooLong"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.NamingConventions.ValidFunctionName.FunctionNoCapital"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.NamingConventions.ValidFunctionName.NotCamelCaps"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Commenting.ClassComment.InvalidVersion"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Commenting.ClassComment.MissingTag"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Commenting.FileComment.EmptyCopyright"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Commenting.FileComment.InvalidVersion"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Commenting.FunctionComment.ExtraParamComment"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Commenting.FunctionComment.MissingReturn"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Commenting.FunctionComment.MissingParamComment"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Commenting.FunctionComment.MissingParamName"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Commenting.FunctionComment.MissingParamTag"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Commenting.FunctionComment.ParameterCommentsNotAligned"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Commenting.FunctionComment.ParameterNamesNotAligned"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Commenting.FunctionComment.ParamNameNoMatch"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParams"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Commenting.FunctionComment.SpacingBeforeParams"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Commenting.FunctionComment.SpacingBeforeTags"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Functions.FunctionCallSignature.ContentAfterOpenBracket"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Functions.FunctionCallSignature.CloseBracketLine"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Functions.FunctionCallSignature.Indent"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.WhiteSpace.ScopeClosingBrace.BreakIdent"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.WhiteSpace.ScopeClosingBrace.Indent"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.WhiteSpace.ScopeClosingBrace.Line"><severity>0</severity></rule>
|
||||
<rule ref="PEAR.WhiteSpace.ScopeIndent.Incorrect"><severity>0</severity></rule>
|
||||
|
||||
<!-- Useful additional rules follow -->
|
||||
|
||||
<!-- "for (; bar; )" should be "while (bar)" instead -->
|
||||
<rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop" />
|
||||
|
||||
<!-- A method MUST not only call its parent -->
|
||||
<rule ref="Generic.CodeAnalysis.UselessOverridingMethod" />
|
||||
|
||||
<!-- All code files MUST use only UTF-8 without BOM. -->
|
||||
<rule ref="Generic.Files.ByteOrderMark" />
|
||||
|
||||
<!-- Each file MUST end with exactly one newline character -->
|
||||
<rule ref="PSR2.Files.EndFileNewline" />
|
||||
|
||||
<!-- In the argument list, there MUST NOT be a space before each comma,
|
||||
and there MUST be one space after each comma. -->
|
||||
<rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing">
|
||||
<properties>
|
||||
<property name="equalsSpacing" value="1"/>
|
||||
</properties>
|
||||
</rule>
|
||||
<rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpacingAfterHint" />
|
||||
|
||||
<!-- There MUST NOT be trailing whitespace at the end of lines. -->
|
||||
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace" />
|
||||
|
||||
<!-- There MUST NOT be whitespace before the first content of a file -->
|
||||
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace.StartFile" />
|
||||
|
||||
<!-- There MUST NOT be whitespace after the last content of a file -->
|
||||
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace.EndFile" />
|
||||
|
||||
<!-- Functions MUST NOT contain multiple empty lines in a row -->
|
||||
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace.EmptyLines" />
|
||||
|
||||
<!-- The ?> closing tag MUST be omitted from files containing only PHP. -->
|
||||
<rule ref="Zend.Files.ClosingTag" />
|
||||
|
||||
</ruleset>
|
Loading…
Reference in New Issue
Block a user