1
0
mirror of https://github.com/danog/tgseclib.git synced 2024-12-03 10:07:47 +01:00

Apply coding guidelines (with exceptions) to the tests directory.

This commit is contained in:
Andreas Fischer 2014-02-15 19:57:49 +01:00
parent 9cb25c3032
commit ef528ea879
16 changed files with 573 additions and 563 deletions

View File

@ -21,6 +21,7 @@ before_script:
script: script:
- 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.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/ - phpunit --verbose --coverage-text --coverage-html code_coverage/
after_success: after_success:

View 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>

View File

@ -1,71 +1,72 @@
<?php <?php
/** /**
* @author Andreas Fischer <bantu@phpbb.com> * @author Andreas Fischer <bantu@phpbb.com>
* @copyright MMXIII Andreas Fischer * @copyright MMXIII Andreas Fischer
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
*/ */
class Crypt_AES_ContinuousBufferTest extends Crypt_AES_TestCase class Crypt_AES_ContinuousBufferTest extends Crypt_AES_TestCase
{ {
// String intented // String intented
protected $modes = array( protected $modes = array(
'CRYPT_AES_MODE_CTR', 'CRYPT_AES_MODE_CTR',
'CRYPT_AES_MODE_OFB', 'CRYPT_AES_MODE_OFB',
'CRYPT_AES_MODE_CFB', 'CRYPT_AES_MODE_CFB',
); );
protected $plaintexts = array( protected $plaintexts = array(
'', '',
'12345678901234567', // https://github.com/phpseclib/phpseclib/issues/39 '12345678901234567', // https://github.com/phpseclib/phpseclib/issues/39
"\xDE\xAD\xBE\xAF", "\xDE\xAD\xBE\xAF",
':-):-):-):-):-):-)', // https://github.com/phpseclib/phpseclib/pull/43 ':-):-):-):-):-):-)', // https://github.com/phpseclib/phpseclib/pull/43
); );
protected $ivs = array( protected $ivs = array(
'', '',
'test123', 'test123',
); );
protected $keys = array( protected $keys = array(
'', '',
':-8', // https://github.com/phpseclib/phpseclib/pull/43 ':-8', // https://github.com/phpseclib/phpseclib/pull/43
'FOOBARZ', 'FOOBARZ',
); );
/** /**
* Produces all combinations of test values. * Produces all combinations of test values.
* *
* @return array * @return array
*/ */
public function allCombinations() public function allCombinations()
{ {
$result = array(); $result = array();
foreach ($this->modes as $mode) // @codingStandardsIgnoreStart
foreach ($this->plaintexts as $plaintext) foreach ($this->modes as $mode)
foreach ($this->ivs as $iv) foreach ($this->plaintexts as $plaintext)
foreach ($this->keys as $key) foreach ($this->ivs as $iv)
$result[] = array($mode, $plaintext, $iv, $key); foreach ($this->keys as $key)
$result[] = array($mode, $plaintext, $iv, $key);
// @codingStandardsIgnoreEnd
return $result; return $result;
} }
/** /**
* @dataProvider allCombinations * @dataProvider allCombinations
*/ */
public function testEncryptDecrypt($mode, $plaintext, $iv, $key) public function testEncryptDecrypt($mode, $plaintext, $iv, $key)
{ {
$aes = new Crypt_AES(constant($mode)); $aes = new Crypt_AES(constant($mode));
$aes->enableContinuousBuffer(); $aes->enableContinuousBuffer();
$aes->setIV($iv); $aes->setIV($iv);
$aes->setKey($key); $aes->setKey($key);
$actual = ''; $actual = '';
for ($i = 0, $strlen = strlen($plaintext); $i < $strlen; ++$i) for ($i = 0, $strlen = strlen($plaintext); $i < $strlen; ++$i) {
{ $actual .= $aes->decrypt($aes->encrypt($plaintext[$i]));
$actual .= $aes->decrypt($aes->encrypt($plaintext[$i])); }
}
$this->assertEquals($plaintext, $actual); $this->assertEquals($plaintext, $actual);
} }
} }

View File

@ -1,27 +1,27 @@
<?php <?php
/** /**
* @author Andreas Fischer <bantu@phpbb.com> * @author Andreas Fischer <bantu@phpbb.com>
* @copyright MMXIII Andreas Fischer * @copyright MMXIII Andreas Fischer
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
*/ */
require_once 'Crypt/AES.php';
abstract class Crypt_AES_TestCase extends PhpseclibTestCase abstract class Crypt_AES_TestCase extends PhpseclibTestCase
{ {
static public function setUpBeforeClass() static public function setUpBeforeClass()
{ {
require_once('Crypt/AES.php'); if (!defined('CRYPT_AES_MODE')) {
define('CRYPT_AES_MODE', CRYPT_AES_MODE_INTERNAL);
}
}
if (!defined('CRYPT_AES_MODE')) public function setUp()
{ {
define('CRYPT_AES_MODE', CRYPT_AES_MODE_INTERNAL); 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.');
}
}
} }

View File

@ -1,47 +1,47 @@
<?php <?php
/** /**
* @author Andreas Fischer <bantu@phpbb.com> * @author Andreas Fischer <bantu@phpbb.com>
* @copyright MMXII Andreas Fischer * @copyright MMXII Andreas Fischer
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
*/ */
class Crypt_Hash_MD5Test extends Crypt_Hash_TestCase class Crypt_Hash_MD5Test extends Crypt_Hash_TestCase
{ {
public function getInstance() public function getInstance()
{ {
return new Crypt_Hash('md5'); return new Crypt_Hash('md5');
} }
/** /**
* @dataProvider hashData() * @dataProvider hashData()
*/ */
public function testHash($message, $result) public function testHash($message, $result)
{ {
$this->assertHashesTo($this->getInstance(), $message, $result); $this->assertHashesTo($this->getInstance(), $message, $result);
} }
static public function hashData() static public function hashData()
{ {
return array( return array(
array('', 'd41d8cd98f00b204e9800998ecf8427e'), array('', 'd41d8cd98f00b204e9800998ecf8427e'),
array('The quick brown fox jumps over the lazy dog', '9e107d9d372bb6826bd81d3542a419d6'), array('The quick brown fox jumps over the lazy dog', '9e107d9d372bb6826bd81d3542a419d6'),
array('The quick brown fox jumps over the lazy dog.', 'e4d909c290d0fb1ca068ffaddf22cbd0'), array('The quick brown fox jumps over the lazy dog.', 'e4d909c290d0fb1ca068ffaddf22cbd0'),
); );
} }
/** /**
* @dataProvider hmacData() * @dataProvider hmacData()
*/ */
public function testHMAC($key, $message, $result) public function testHMAC($key, $message, $result)
{ {
$this->assertHMACsTo($this->getInstance(), $key, $message, $result); $this->assertHMACsTo($this->getInstance(), $key, $message, $result);
} }
static public function hmacData() static public function hmacData()
{ {
return array( return array(
array('', '', '74e6f7298a9c2d168935f58c001bad88'), array('', '', '74e6f7298a9c2d168935f58c001bad88'),
array('key', 'The quick brown fox jumps over the lazy dog', '80070713463e7749b90c2dc24911e275'), array('key', 'The quick brown fox jumps over the lazy dog', '80070713463e7749b90c2dc24911e275'),
); );
} }
} }

View File

@ -1,47 +1,52 @@
<?php <?php
/** /**
* @author Andreas Fischer <bantu@phpbb.com> * @author Andreas Fischer <bantu@phpbb.com>
* @copyright MMXII Andreas Fischer * @copyright MMXII Andreas Fischer
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
*/ */
require_once 'Crypt/Hash.php';
abstract class Crypt_Hash_TestCase extends PhpseclibTestCase abstract class Crypt_Hash_TestCase extends PhpseclibTestCase
{ {
static public function setUpBeforeClass() static public function setUpBeforeClass()
{ {
require_once('Crypt/Hash.php'); if (!defined('CRYPT_HASH_MODE')) {
define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_INTERNAL);
}
}
if (!defined('CRYPT_HASH_MODE')) public function setUp()
{ {
define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_INTERNAL); 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() protected function assertHashesTo(Crypt_Hash $hash, $message, $expected)
{ {
if (defined('CRYPT_HASH_MODE') && CRYPT_HASH_MODE !== CRYPT_HASH_MODE_INTERNAL) $this->assertEquals(
{ strtolower($expected),
$this->markTestSkipped('Skipping test because CRYPT_HASH_MODE is not defined as CRYPT_HASH_MODE_INTERNAL.'); bin2hex($hash->hash($message)),
} sprintf("Failed asserting that '%s' hashes to '%s'.", $message, $expected)
} );
}
protected function assertHashesTo(Crypt_Hash $hash, $message, $expected) protected function assertHMACsTo(Crypt_Hash $hash, $key, $message, $expected)
{ {
$this->assertEquals( $hash->setKey($key);
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) $this->assertEquals(
{ strtolower($expected),
$hash->setKey($key); bin2hex($hash->hash($message)),
sprintf(
$this->assertEquals( "Failed asserting that '%s' HMACs to '%s' with key '%s'.",
strtolower($expected), $message,
bin2hex($hash->hash($message)), $expected,
sprintf("Failed asserting that '%s' HMACs to '%s' with key '%s'.", $message, $expected, $key) $key
); )
} );
}
} }

View File

@ -1,31 +1,28 @@
<?php <?php
/** /**
* @author Jim Wigginton <terrafrost@php.net> * @author Jim Wigginton <terrafrost@php.net>
* @copyright MMXIII Jim Wigginton * @copyright MMXIII Jim Wigginton
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
*/ */
require_once 'Crypt/RSA.php' ;
class Crypt_RSA_LoadKeyTest extends PhpseclibTestCase class Crypt_RSA_LoadKeyTest extends PhpseclibTestCase
{ {
static public function setUpBeforeClass() public function testBadKey()
{ {
require_once('Crypt/RSA.php'); $rsa = new Crypt_RSA();
}
public function testBadKey() $key = 'zzzzzzzzzzzzzz';
{
$rsa = new Crypt_RSA();
$key = 'zzzzzzzzzzzzzz'; $this->assertFalse($rsa->loadKey($key));
}
$this->assertFalse($rsa->loadKey($key)); public function testPKCS1Key()
} {
$rsa = new Crypt_RSA();
public function testPKCS1Key() $key = '-----BEGIN RSA PRIVATE KEY-----
{
$rsa = new Crypt_RSA();
$key = '-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5 wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh 1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
@ -39,14 +36,14 @@ U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0= 37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=
-----END RSA PRIVATE KEY-----'; -----END RSA PRIVATE KEY-----';
$this->assertTrue($rsa->loadKey($key)); $this->assertTrue($rsa->loadKey($key));
} }
public function testPKCS1SpacesKey() public function testPKCS1SpacesKey()
{ {
$rsa = new Crypt_RSA(); $rsa = new Crypt_RSA();
$key = '-----BEGIN RSA PRIVATE KEY----- $key = '-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5 wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh 1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
@ -59,16 +56,16 @@ X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0= 37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=
-----END RSA PRIVATE KEY-----'; -----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() public function testPKCS1NoHeaderKey()
{ {
$rsa = new Crypt_RSA(); $rsa = new Crypt_RSA();
$key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp $key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5 wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh 1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2 3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2
@ -80,44 +77,44 @@ X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0='; 37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=';
$this->assertTrue($rsa->loadKey($key)); $this->assertTrue($rsa->loadKey($key));
} }
public function testPKCS1NoWhitespaceNoHeaderKey() public function testPKCS1NoWhitespaceNoHeaderKey()
{ {
$rsa = new Crypt_RSA(); $rsa = new Crypt_RSA();
$key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp' . $key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp' .
'wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5' . 'wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5' .
'1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh' . '1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh' .
'3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2' . '3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2' .
'pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX' . 'pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX' .
'GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il' . 'GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il' .
'AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF' . 'AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF' .
'L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k' . 'L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k' .
'X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl' . 'X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl' .
'U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ' . 'U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ' .
'37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0='; '37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=';
$this->assertTrue($rsa->loadKey($key)); $this->assertTrue($rsa->loadKey($key));
} }
public function testRawPKCS1Key() public function testRawPKCS1Key()
{ {
$rsa = new Crypt_RSA(); $rsa = new Crypt_RSA();
$key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp' . $key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp' .
'wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5' . 'wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5' .
'1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh' . '1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh' .
'3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2' . '3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2' .
'pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX' . 'pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX' .
'GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il' . 'GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il' .
'AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF' . 'AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF' .
'L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k' . 'L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k' .
'X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl' . 'X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl' .
'U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ' . 'U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ' .
'37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0='; '37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=';
$key = base64_decode($key); $key = base64_decode($key);
$this->assertTrue($rsa->loadKey($key)); $this->assertTrue($rsa->loadKey($key));
} }
} }

View File

@ -1,21 +1,20 @@
<?php <?php
/** /**
* @author Andreas Fischer <bantu@phpbb.com> * @author Andreas Fischer <bantu@phpbb.com>
* @copyright MMXIII Andreas Fischer * @copyright MMXIII Andreas Fischer
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
*/ */
class Math_BigInteger_BCMathTest extends Math_BigInteger_TestCase class Math_BigInteger_BCMathTest extends Math_BigInteger_TestCase
{ {
static public function setUpBeforeClass() static public function setUpBeforeClass()
{ {
if (!extension_loaded('bcmath')) if (!extension_loaded('bcmath')) {
{ self::markTestSkipped('BCMath extension is not available.');
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);
} }
} }

View File

@ -1,21 +1,20 @@
<?php <?php
/** /**
* @author Andreas Fischer <bantu@phpbb.com> * @author Andreas Fischer <bantu@phpbb.com>
* @copyright MMXIII Andreas Fischer * @copyright MMXIII Andreas Fischer
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
*/ */
class Math_BigInteger_GMPTest extends Math_BigInteger_TestCase class Math_BigInteger_GMPTest extends Math_BigInteger_TestCase
{ {
static public function setUpBeforeClass() static public function setUpBeforeClass()
{ {
if (!extension_loaded('gmp')) if (!extension_loaded('gmp')) {
{ self::markTestSkipped('GNU Multiple Precision (GMP) extension is not available.');
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);
} }
} }

View File

@ -1,21 +1,20 @@
<?php <?php
/** /**
* @author Andreas Fischer <bantu@phpbb.com> * @author Andreas Fischer <bantu@phpbb.com>
* @copyright MMXIII Andreas Fischer * @copyright MMXIII Andreas Fischer
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
*/ */
class Math_BigInteger_InternalOpenSSLTest extends Math_BigInteger_TestCase class Math_BigInteger_InternalOpenSSLTest extends Math_BigInteger_TestCase
{ {
static public function setUpBeforeClass() static public function setUpBeforeClass()
{ {
if (!function_exists('openssl_public_encrypt')) if (!function_exists('openssl_public_encrypt')) {
{ self::markTestSkipped('openssl_public_encrypt() function is not available.');
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);
} }
} }

View File

@ -1,17 +1,17 @@
<?php <?php
/** /**
* @author Andreas Fischer <bantu@phpbb.com> * @author Andreas Fischer <bantu@phpbb.com>
* @copyright MMXIII Andreas Fischer * @copyright MMXIII Andreas Fischer
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
*/ */
class Math_BigInteger_InternalTest extends Math_BigInteger_TestCase class Math_BigInteger_InternalTest extends Math_BigInteger_TestCase
{ {
static public function setUpBeforeClass() static public function setUpBeforeClass()
{ {
parent::setUpBeforeClass(); parent::setUpBeforeClass();
self::ensureConstant('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_INTERNAL); self::ensureConstant('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_INTERNAL);
self::ensureConstant('MATH_BIGINTEGER_OPENSSL_DISABLE', true); self::ensureConstant('MATH_BIGINTEGER_OPENSSL_DISABLE', true);
} }
} }

View File

@ -1,268 +1,268 @@
<?php <?php
/** /**
* @author Andreas Fischer <bantu@phpbb.com> * @author Andreas Fischer <bantu@phpbb.com>
* @copyright MMXII Andreas Fischer * @copyright MMXII Andreas Fischer
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
*/ */
require_once 'Math/BigInteger.php'; require_once 'Math/BigInteger.php';
abstract class Math_BigInteger_TestCase extends PhpseclibTestCase abstract class Math_BigInteger_TestCase extends PhpseclibTestCase
{ {
static public function setUpBeforeClass() static public function setUpBeforeClass()
{ {
parent::setUpBeforeClass(); parent::setUpBeforeClass();
self::reRequireFile('Math/BigInteger.php'); self::reRequireFile('Math/BigInteger.php');
} }
public function getInstance($x = 0, $base = 10) public function getInstance($x = 0, $base = 10)
{ {
return new Math_BigInteger($x, $base); return new Math_BigInteger($x, $base);
} }
public function testConstructorBase2() public function testConstructorBase2()
{ {
// 2**65 = 36893488147419103232 // 2**65 = 36893488147419103232
$this->assertSame('36893488147419103232', (string) $this->getInstance('1' . str_repeat('0', 65), 2)); $this->assertSame('36893488147419103232', (string) $this->getInstance('1' . str_repeat('0', 65), 2));
} }
public function testConstructorBase10() public function testConstructorBase10()
{ {
$this->assertSame('18446744073709551616', (string) $this->getInstance('18446744073709551616')); $this->assertSame('18446744073709551616', (string) $this->getInstance('18446744073709551616'));
} }
public function testConstructorBase16() public function testConstructorBase16()
{ {
$this->assertSame('50', (string) $this->getInstance('0x32', 16)); $this->assertSame('50', (string) $this->getInstance('0x32', 16));
$this->assertSame('12345678910', (string) $this->getInstance('0x2DFDC1C3E', 16)); $this->assertSame('12345678910', (string) $this->getInstance('0x2DFDC1C3E', 16));
$this->assertSame('18446744073709551615', (string) $this->getInstance('0xFFFFFFFFFFFFFFFF', 16)); $this->assertSame('18446744073709551615', (string) $this->getInstance('0xFFFFFFFFFFFFFFFF', 16));
$this->assertSame('18446744073709551616', (string) $this->getInstance('0x10000000000000000', 16)); $this->assertSame('18446744073709551616', (string) $this->getInstance('0x10000000000000000', 16));
} }
public function testToBytes() public function testToBytes()
{ {
$this->assertSame(chr(65), $this->getInstance('65')->toBytes()); $this->assertSame(chr(65), $this->getInstance('65')->toBytes());
} }
public function testToBytesTwosCompliment() public function testToBytesTwosCompliment()
{ {
$this->assertSame(chr(126), $this->getInstance('01111110', 2)->toBytes(true)); $this->assertSame(chr(126), $this->getInstance('01111110', 2)->toBytes(true));
} }
public function testToHex() public function testToHex()
{ {
$this->assertSame('41', $this->getInstance('65')->toHex()); $this->assertSame('41', $this->getInstance('65')->toHex());
} }
public function testToBits() public function testToBits()
{ {
$this->assertSame('1000001', $this->getInstance('65')->toBits()); $this->assertSame('1000001', $this->getInstance('65')->toBits());
} }
public function testAdd() public function testAdd()
{ {
$x = $this->getInstance('18446744073709551615'); $x = $this->getInstance('18446744073709551615');
$y = $this->getInstance( '100000000000'); $y = $this->getInstance( '100000000000');
$a = $x->add($y); $a = $x->add($y);
$b = $y->add($x); $b = $y->add($x);
$this->assertTrue($a->equals($b)); $this->assertTrue($a->equals($b));
$this->assertTrue($b->equals($a)); $this->assertTrue($b->equals($a));
$this->assertSame('18446744173709551615', (string) $a); $this->assertSame('18446744173709551615', (string) $a);
$this->assertSame('18446744173709551615', (string) $b); $this->assertSame('18446744173709551615', (string) $b);
} }
public function testSubtract() public function testSubtract()
{ {
$x = $this->getInstance('18446744073709551618'); $x = $this->getInstance('18446744073709551618');
$y = $this->getInstance( '4000000000000'); $y = $this->getInstance( '4000000000000');
$this->assertSame('18446740073709551618', (string) $x->subtract($y)); $this->assertSame('18446740073709551618', (string) $x->subtract($y));
} }
public function testMultiply() public function testMultiply()
{ {
$x = $this->getInstance('8589934592'); // 2**33 $x = $this->getInstance('8589934592'); // 2**33
$y = $this->getInstance('36893488147419103232'); // 2**65 $y = $this->getInstance('36893488147419103232'); // 2**65
$a = $x->multiply($y); // 2**98 $a = $x->multiply($y); // 2**98
$b = $y->multiply($x); // 2**98 $b = $y->multiply($x); // 2**98
$this->assertTrue($a->equals($b)); $this->assertTrue($a->equals($b));
$this->assertTrue($b->equals($a)); $this->assertTrue($b->equals($a));
$this->assertSame('316912650057057350374175801344', (string) $a); $this->assertSame('316912650057057350374175801344', (string) $a);
$this->assertSame('316912650057057350374175801344', (string) $b); $this->assertSame('316912650057057350374175801344', (string) $b);
} }
public function testDivide() public function testDivide()
{ {
$x = $this->getInstance('1180591620717411303425'); // 2**70 + 1 $x = $this->getInstance('1180591620717411303425'); // 2**70 + 1
$y = $this->getInstance('12345678910'); $y = $this->getInstance('12345678910');
list($q, $r) = $x->divide($y); list($q, $r) = $x->divide($y);
$this->assertSame('95627922070', (string) $q); $this->assertSame('95627922070', (string) $q);
$this->assertSame('10688759725', (string) $r); $this->assertSame('10688759725', (string) $r);
} }
public function testModPow() public function testModPow()
{ {
$a = $this->getInstance('10'); $a = $this->getInstance('10');
$b = $this->getInstance('20'); $b = $this->getInstance('20');
$c = $this->getInstance('30'); $c = $this->getInstance('30');
$d = $a->modPow($b, $c); $d = $a->modPow($b, $c);
$this->assertSame('10', (string) $d); $this->assertSame('10', (string) $d);
} }
public function testModInverse() public function testModInverse()
{ {
$a = $this->getInstance(30); $a = $this->getInstance(30);
$b = $this->getInstance(17); $b = $this->getInstance(17);
$c = $a->modInverse($b); $c = $a->modInverse($b);
$this->assertSame('4', (string) $c); $this->assertSame('4', (string) $c);
$d = $a->multiply($c); $d = $a->multiply($c);
list($q, $r) = $d->divide($b); list($q, $r) = $d->divide($b);
$this->assertSame('1', (string) $r); $this->assertSame('1', (string) $r);
} }
public function testExtendedGCD() public function testExtendedGCD()
{ {
$a = $this->getInstance(693); $a = $this->getInstance(693);
$b = $this->getInstance(609); $b = $this->getInstance(609);
$arr = $a->extendedGCD($b); $arr = $a->extendedGCD($b);
$this->assertSame('21', (string) $arr['gcd']); $this->assertSame('21', (string) $arr['gcd']);
$this->assertSame(21, $a->toString() * $arr['x']->toString() + $b->toString() * $arr['y']->toString()); $this->assertSame(21, $a->toString() * $arr['x']->toString() + $b->toString() * $arr['y']->toString());
} }
public function testGCD() public function testGCD()
{ {
$x = $this->getInstance(693); $x = $this->getInstance(693);
$y = $this->getInstance(609); $y = $this->getInstance(609);
$this->assertSame('21', (string) $x->gcd($y)); $this->assertSame('21', (string) $x->gcd($y));
} }
public function testAbs() public function testAbs()
{ {
$x = $this->getInstance('-18446744073709551617'); $x = $this->getInstance('-18446744073709551617');
$y = $x->abs(); $y = $x->abs();
$this->assertSame('-18446744073709551617', (string) $x); $this->assertSame('-18446744073709551617', (string) $x);
$this->assertSame('18446744073709551617', (string) $y); $this->assertSame('18446744073709551617', (string) $y);
} }
public function testEquals() public function testEquals()
{ {
$x = $this->getInstance('18446744073709551616'); $x = $this->getInstance('18446744073709551616');
$y = $this->getInstance('18446744073709551616'); $y = $this->getInstance('18446744073709551616');
$this->assertTrue($x->equals($y)); $this->assertTrue($x->equals($y));
$this->assertTrue($y->equals($x)); $this->assertTrue($y->equals($x));
} }
public function testCompare() public function testCompare()
{ {
$a = $this->getInstance('-18446744073709551616'); $a = $this->getInstance('-18446744073709551616');
$b = $this->getInstance('36893488147419103232'); $b = $this->getInstance('36893488147419103232');
$c = $this->getInstance('36893488147419103232'); $c = $this->getInstance('36893488147419103232');
$d = $this->getInstance('316912650057057350374175801344'); $d = $this->getInstance('316912650057057350374175801344');
// a < b // a < b
$this->assertLessThan(0, $a->compare($b)); $this->assertLessThan(0, $a->compare($b));
$this->assertGreaterThan(0, $b->compare($a)); $this->assertGreaterThan(0, $b->compare($a));
// b = c // b = c
$this->assertSame(0, $b->compare($c)); $this->assertSame(0, $b->compare($c));
$this->assertSame(0, $c->compare($b)); $this->assertSame(0, $c->compare($b));
// c < d // c < d
$this->assertLessThan(0, $c->compare($d)); $this->assertLessThan(0, $c->compare($d));
$this->assertGreaterThan(0, $d->compare($c)); $this->assertGreaterThan(0, $d->compare($c));
} }
public function testBitwiseAND() public function testBitwiseAND()
{ {
$x = $this->getInstance('66666666666666666666666', 16); $x = $this->getInstance('66666666666666666666666', 16);
$y = $this->getInstance('33333333333333333333333', 16); $y = $this->getInstance('33333333333333333333333', 16);
$z = $this->getInstance('22222222222222222222222', 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() public function testBitwiseOR()
{ {
$x = $this->getInstance('11111111111111111111111', 16); $x = $this->getInstance('11111111111111111111111', 16);
$y = $this->getInstance('EEEEEEEEEEEEEEEEEEEEEEE', 16); $y = $this->getInstance('EEEEEEEEEEEEEEEEEEEEEEE', 16);
$z = $this->getInstance('FFFFFFFFFFFFFFFFFFFFFFF', 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() public function testBitwiseXOR()
{ {
$x = $this->getInstance('AFAFAFAFAFAFAFAFAFAFAFAF', 16); $x = $this->getInstance('AFAFAFAFAFAFAFAFAFAFAFAF', 16);
$y = $this->getInstance('133713371337133713371337', 16); $y = $this->getInstance('133713371337133713371337', 16);
$z = $this->getInstance('BC98BC98BC98BC98BC98BC98', 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() public function testBitwiseNOT()
{ {
$x = $this->getInstance('EEEEEEEEEEEEEEEEEEEEEEE', 16); $x = $this->getInstance('EEEEEEEEEEEEEEEEEEEEEEE', 16);
$z = $this->getInstance('11111111111111111111111', 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() public function testBitwiseLeftShift()
{ {
$x = $this->getInstance('0x0000000FF0000000', 16); $x = $this->getInstance('0x0000000FF0000000', 16);
$y = $this->getInstance('0x000FF00000000000', 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() public function testBitwiseRightShift()
{ {
$x = $this->getInstance('0x0000000FF0000000', 16); $x = $this->getInstance('0x0000000FF0000000', 16);
$y = $this->getInstance('0x00000000000FF000', 16); $y = $this->getInstance('0x00000000000FF000', 16);
$z = $this->getInstance('0x000000000000000F', 16); $z = $this->getInstance('0x000000000000000F', 16);
$n = $this->getInstance(0); $n = $this->getInstance(0);
$this->assertSame($y->toHex(), $x->bitwise_RightShift(16)->toHex()); $this->assertSame($y->toHex(), $x->bitwise_RightShift(16)->toHex());
$this->assertSame($z->toHex(), $x->bitwise_RightShift(32)->toHex()); $this->assertSame($z->toHex(), $x->bitwise_RightShift(32)->toHex());
$this->assertSame($n->toHex(), $x->bitwise_RightShift(36)->toHex()); $this->assertSame($n->toHex(), $x->bitwise_RightShift(36)->toHex());
} }
public function testSerializable() public function testSerializable()
{ {
$x = $this->getInstance('18446744073709551616'); $x = $this->getInstance('18446744073709551616');
$y = unserialize(serialize($x)); $y = unserialize(serialize($x));
$this->assertTrue($x->equals($y)); $this->assertTrue($x->equals($y));
$this->assertTrue($y->equals($x)); $this->assertTrue($y->equals($x));
$this->assertSame('18446744073709551616', (string) $x); $this->assertSame('18446744073709551616', (string) $x);
$this->assertSame('18446744073709551616', (string) $y); $this->assertSame('18446744073709551616', (string) $y);
} }
public function testClone() public function testClone()
{ {
$x = $this->getInstance('18446744073709551616'); $x = $this->getInstance('18446744073709551616');
$y = clone $x; $y = clone $x;
$this->assertTrue($x->equals($y)); $this->assertTrue($x->equals($y));
$this->assertTrue($y->equals($x)); $this->assertTrue($y->equals($x));
$this->assertSame('18446744073709551616', (string) $x); $this->assertSame('18446744073709551616', (string) $x);
$this->assertSame('18446744073709551616', (string) $y); $this->assertSame('18446744073709551616', (string) $y);
} }
} }

View File

@ -1,8 +1,8 @@
<?php <?php
/** /**
* @author Marc Scholten <marc@pedigital.de> * @author Marc Scholten <marc@pedigital.de>
* @copyright MMXIII Marc Scholten * @copyright MMXIII Marc Scholten
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
*/ */
class Net_SSH1Test extends PhpseclibTestCase class Net_SSH1Test extends PhpseclibTestCase

View File

@ -1,24 +1,13 @@
<?php <?php
/** /**
* @author Marc Scholten <marc@pedigital.de> * @author Marc Scholten <marc@pedigital.de>
* @copyright MMXIII Marc Scholten * @copyright MMXIII Marc Scholten
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
*/ */
class Net_SSH2Test extends PhpseclibTestCase class Net_SSH2Test extends PhpseclibTestCase
{ {
/**
* @return Net_SSH2
*/
private function createSSHMock()
{
return $this->getMockBuilder('Net_SSH2')
->disableOriginalConstructor()
->setMethods(array('__destruct'))
->getMock();
}
public function formatLogDataProvider() public function formatLogDataProvider()
{ {
return array( return array(
@ -65,12 +54,12 @@ class Net_SSH2Test extends PhpseclibTestCase
public function testGenerateIdentifier($expected, array $requiredExtensions) public function testGenerateIdentifier($expected, array $requiredExtensions)
{ {
$notAllowed = array('gmp', 'bcmath', 'mcrypt', 'gmp'); $notAllowed = array('gmp', 'bcmath', 'mcrypt', 'gmp');
foreach($notAllowed as $notAllowedExtension) { foreach ($notAllowed as $notAllowedExtension) {
if(in_array($notAllowedExtension, $requiredExtensions)) { if (in_array($notAllowedExtension, $requiredExtensions)) {
continue; continue;
} }
if(extension_loaded($notAllowedExtension)) { if (extension_loaded($notAllowedExtension)) {
$this->markTestSkipped('Extension ' . $notAllowedExtension . ' is not allowed for this data-set'); $this->markTestSkipped('Extension ' . $notAllowedExtension . ' is not allowed for this data-set');
} }
} }
@ -81,4 +70,14 @@ class Net_SSH2Test extends PhpseclibTestCase
$this->assertEquals($expected, $identifier); $this->assertEquals($expected, $identifier);
} }
/**
* @return Net_SSH2
*/
protected function createSSHMock()
{
return $this->getMockBuilder('Net_SSH2')
->disableOriginalConstructor()
->setMethods(array('__destruct'))
->getMock();
}
} }

View File

@ -1,74 +1,64 @@
<?php <?php
/** /**
* @author Andreas Fischer <bantu@phpbb.com> * @author Andreas Fischer <bantu@phpbb.com>
* @copyright MMXIII Andreas Fischer * @copyright MMXIII Andreas Fischer
* @license http://www.opensource.org/licenses/mit-license.html MIT License * @license http://www.opensource.org/licenses/mit-license.html MIT License
*/ */
abstract class PhpseclibTestCase extends PHPUnit_Framework_TestCase abstract class PhpseclibTestCase extends PHPUnit_Framework_TestCase
{ {
/** /**
* @param string $constant * @param string $constant
* @param mixed $expected * @param mixed $expected
* *
* @return null * @return null
*/ */
static protected function ensureConstant($constant, $expected) static protected function ensureConstant($constant, $expected)
{ {
if (defined($constant)) if (defined($constant)) {
{ $value = constant($constant);
$value = constant($constant);
if ($value !== $expected) if ($value !== $expected) {
{ if (function_exists('runkit_constant_redefine')) {
if (function_exists('runkit_constant_redefine')) if (!runkit_constant_redefine($constant, $expected)) {
{ self::markTestSkipped(sprintf(
if (!runkit_constant_redefine($constant, $expected)) "Failed to redefine constant %s to %s",
{ $constant,
self::markTestSkipped(sprintf( $expected
"Failed to redefine constant %s to %s", ));
$constant, }
$expected } else {
)); self::markTestSkipped(sprintf(
} "Skipping test because constant %s is %s instead of %s",
} $constant,
else $value,
{ $expected
self::markTestSkipped(sprintf( ));
"Skipping test because constant %s is %s instead of %s", }
$constant, }
$value, } else {
$expected define($constant, $expected);
)); }
} }
}
}
else
{
define($constant, $expected);
}
}
/** /**
* @param string $filename * @param string $filename
* *
* @return null * @return null
*/ */
static protected function reRequireFile($filename) static protected function reRequireFile($filename)
{ {
if (function_exists('runkit_import')) if (function_exists('runkit_import')) {
{ $result = runkit_import(
$result = runkit_import( $filename,
$filename, RUNKIT_IMPORT_FUNCTIONS |
RUNKIT_IMPORT_FUNCTIONS | RUNKIT_IMPORT_CLASS_METHODS |
RUNKIT_IMPORT_CLASS_METHODS | RUNKIT_IMPORT_OVERRIDE
RUNKIT_IMPORT_OVERRIDE );
);
if (!$result) if (!$result) {
{ self::markTestSkipped("Failed to reimport file $filename");
self::markTestSkipped("Failed to reimport file $filename"); }
} }
} }
}
} }

View File

@ -2,7 +2,7 @@
/** /**
* Bootstrapping File for phpseclib Test Suite * 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'); 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 // Set up include path accordingly. This is especially required because some
// class files of phpseclib require() other dependencies. // class files of phpseclib require() other dependencies.
set_include_path(implode(PATH_SEPARATOR, array( set_include_path(implode(PATH_SEPARATOR, array(
dirname(__FILE__) . '/../phpseclib/', dirname(__FILE__) . '/../phpseclib/',
dirname(__FILE__) . '/', dirname(__FILE__) . '/',
get_include_path(), get_include_path(),
))); )));
function phpseclib_is_includable($suffix) function phpseclib_is_includable($suffix)
{ {
foreach (explode(PATH_SEPARATOR, get_include_path()) as $prefix) foreach (explode(PATH_SEPARATOR, get_include_path()) as $prefix) {
{ $ds = substr($prefix, -1) == DIRECTORY_SEPARATOR ? '' : DIRECTORY_SEPARATOR;
$ds = substr($prefix, -1) == DIRECTORY_SEPARATOR ? '' : DIRECTORY_SEPARATOR; $file = $prefix . $ds . $suffix;
$file = $prefix . $ds . $suffix;
if (file_exists($file)) if (file_exists($file)) {
{ return true;
return true; }
} }
}
return false; return false;
} }
function phpseclib_autoload($class) function phpseclib_autoload($class)
{ {
$file = str_replace('_', '/', $class) . '.php'; $file = str_replace('_', '/', $class) . '.php';
if (phpseclib_is_includable($file)) if (phpseclib_is_includable($file)) {
{ // @codingStandardsIgnoreStart
require $file; require $file;
} // @codingStandardsIgnoreEnd
}
} }
spl_autoload_register('phpseclib_autoload'); spl_autoload_register('phpseclib_autoload');