use short array syntax for arrays

This commit is contained in:
terrafrost 2016-11-30 15:19:23 -06:00
parent 7182ec393b
commit c852bae3c8
24 changed files with 570 additions and 570 deletions

View File

@ -84,7 +84,7 @@ class Blowfish extends BlockCipher
* @access private * @access private
* @var array * @var array
*/ */
var $sbox0 = array( var $sbox0 = [
0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99, 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99,
0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e,
0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,
@ -117,7 +117,7 @@ class Blowfish extends BlockCipher
0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, 0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,
0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915, 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915,
0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a
); ];
/** /**
* S-Box 1 * S-Box 1
@ -125,7 +125,7 @@ class Blowfish extends BlockCipher
* @access private * @access private
* @var array * @var array
*/ */
var $sbox1 = array( var $sbox1 = [
0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266,
0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e,
0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, 0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,
@ -158,7 +158,7 @@ class Blowfish extends BlockCipher
0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, 0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc,
0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340,
0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7
); ];
/** /**
* S-Box 2 * S-Box 2
@ -166,7 +166,7 @@ class Blowfish extends BlockCipher
* @access private * @access private
* @var array * @var array
*/ */
var $sbox2 = array( var $sbox2 = [
0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068, 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068,
0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840,
0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504, 0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504,
@ -199,7 +199,7 @@ class Blowfish extends BlockCipher
0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, 0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc,
0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c, 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c,
0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0
); ];
/** /**
* S-Box 3 * S-Box 3
@ -207,7 +207,7 @@ class Blowfish extends BlockCipher
* @access private * @access private
* @var array * @var array
*/ */
var $sbox3 = array( var $sbox3 = [
0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe, 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe,
0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4,
0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, 0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6,
@ -240,7 +240,7 @@ class Blowfish extends BlockCipher
0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,
0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9, 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9,
0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6
); ];
/** /**
* P-Array consists of 18 32-bit subkeys * P-Array consists of 18 32-bit subkeys
@ -248,11 +248,11 @@ class Blowfish extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $parray = array( var $parray = [
0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0, 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0,
0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b
); ];
/** /**
* The BCTX-working Array * The BCTX-working Array
@ -355,18 +355,18 @@ class Blowfish extends BlockCipher
// already expanded // already expanded
return; return;
} }
$this->kl = array('key' => $this->key); $this->kl = ['key' => $this->key];
/* key-expanding p[] and S-Box building sb[] */ /* key-expanding p[] and S-Box building sb[] */
$this->bctx = array( $this->bctx = [
'p' => array(), 'p' => [],
'sb' => array( 'sb' => [
$this->sbox0, $this->sbox0,
$this->sbox1, $this->sbox1,
$this->sbox2, $this->sbox2,
$this->sbox3 $this->sbox3
) ]
); ];
// unpack binary string in unsigned chars // unpack binary string in unsigned chars
$key = array_values(unpack('C*', $this->key)); $key = array_values(unpack('C*', $this->key));
@ -506,7 +506,7 @@ class Blowfish extends BlockCipher
'; ';
break; break;
default: default:
$p = array(); $p = [];
for ($i = 0; $i < 18; ++$i) { for ($i = 0; $i < 18; ++$i) {
$p[] = '$p_' . $i; $p[] = '$p_' . $i;
} }
@ -576,13 +576,13 @@ class Blowfish extends BlockCipher
'; ';
$lambda_functions[$code_hash] = $this->_createInlineCryptFunction( $lambda_functions[$code_hash] = $this->_createInlineCryptFunction(
array( [
'init_crypt' => $init_crypt, 'init_crypt' => $init_crypt,
'init_encrypt' => '', 'init_encrypt' => '',
'init_decrypt' => '', 'init_decrypt' => '',
'encrypt_block' => $encrypt_block, 'encrypt_block' => $encrypt_block,
'decrypt_block' => $decrypt_block 'decrypt_block' => $decrypt_block
) ]
); );
} }
$this->inline_crypt = $lambda_functions[$code_hash]; $this->inline_crypt = $lambda_functions[$code_hash];

View File

@ -1806,11 +1806,11 @@ abstract class SymmetricKey
{ {
$this->engine = null; $this->engine = null;
$candidateEngines = array( $candidateEngines = [
$this->preferredEngine, $this->preferredEngine,
self::ENGINE_OPENSSL, self::ENGINE_OPENSSL,
self::ENGINE_MCRYPT self::ENGINE_MCRYPT
); ];
foreach ($candidateEngines as $engine) { foreach ($candidateEngines as $engine) {
if ($this->isValidEngine($engine)) { if ($this->isValidEngine($engine)) {
$this->engine = $engine; $this->engine = $engine;
@ -1935,14 +1935,14 @@ abstract class SymmetricKey
$this->enchanged = $this->dechanged = true; $this->enchanged = $this->dechanged = true;
if (!isset($this->enmcrypt)) { if (!isset($this->enmcrypt)) {
static $mcrypt_modes = array( static $mcrypt_modes = [
self::MODE_CTR => 'ctr', self::MODE_CTR => 'ctr',
self::MODE_ECB => MCRYPT_MODE_ECB, self::MODE_ECB => MCRYPT_MODE_ECB,
self::MODE_CBC => MCRYPT_MODE_CBC, self::MODE_CBC => MCRYPT_MODE_CBC,
self::MODE_CFB => 'ncfb', self::MODE_CFB => 'ncfb',
self::MODE_OFB => MCRYPT_MODE_NOFB, self::MODE_OFB => MCRYPT_MODE_NOFB,
self::MODE_STREAM => MCRYPT_MODE_STREAM, self::MODE_STREAM => MCRYPT_MODE_STREAM,
); ];
$this->demcrypt = @mcrypt_module_open($this->cipher_name_mcrypt, '', $mcrypt_modes[$this->mode], ''); $this->demcrypt = @mcrypt_module_open($this->cipher_name_mcrypt, '', $mcrypt_modes[$this->mode], '');
$this->enmcrypt = @mcrypt_module_open($this->cipher_name_mcrypt, '', $mcrypt_modes[$this->mode], ''); $this->enmcrypt = @mcrypt_module_open($this->cipher_name_mcrypt, '', $mcrypt_modes[$this->mode], '');
@ -2033,9 +2033,9 @@ abstract class SymmetricKey
*/ */
function _clearBuffers() function _clearBuffers()
{ {
$this->enbuffer = $this->debuffer = array('ciphertext' => '', 'xor' => '', 'pos' => 0, 'enmcrypt_init' => true); $this->enbuffer = $this->debuffer = ['ciphertext' => '', 'xor' => '', 'pos' => 0, 'enmcrypt_init' => true];
if ($this->iv === false && !in_array($this->mode, array(self::MODE_STREAM, self::MODE_ECB))) { if ($this->iv === false && !in_array($this->mode, [self::MODE_STREAM, self::MODE_ECB])) {
throw new \UnexpectedValueException('No IV has been defined'); throw new \UnexpectedValueException('No IV has been defined');
} }
@ -2262,13 +2262,13 @@ abstract class SymmetricKey
* *
* Structure of: * Structure of:
* <code> * <code>
* $cipher_code = array( * $cipher_code = [
* 'init_crypt' => (string) '', // optional * 'init_crypt' => (string) '', // optional
* 'init_encrypt' => (string) '', // optional * 'init_encrypt' => (string) '', // optional
* 'init_decrypt' => (string) '', // optional * 'init_decrypt' => (string) '', // optional
* 'encrypt_block' => (string) '', // required * 'encrypt_block' => (string) '', // required
* 'decrypt_block' => (string) '' // required * 'decrypt_block' => (string) '' // required
* ); * ];
* </code> * </code>
* *
* @see self::_setupInlineCrypt() * @see self::_setupInlineCrypt()
@ -2647,7 +2647,7 @@ abstract class SymmetricKey
*/ */
function &_getLambdaFunctions() function &_getLambdaFunctions()
{ {
static $functions = array(); static $functions = [];
return $functions; return $functions;
} }

View File

@ -102,13 +102,13 @@ class DES extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $openssl_mode_names = array( var $openssl_mode_names = [
self::MODE_ECB => 'des-ecb', self::MODE_ECB => 'des-ecb',
self::MODE_CBC => 'des-cbc', self::MODE_CBC => 'des-cbc',
self::MODE_CFB => 'des-cfb', self::MODE_CFB => 'des-cfb',
self::MODE_OFB => 'des-ofb' self::MODE_OFB => 'des-ofb'
// self::MODE_CTR is undefined for DES // self::MODE_CTR is undefined for DES
); ];
/** /**
* Optimizing value while CFB-encrypting * Optimizing value while CFB-encrypting
@ -161,7 +161,7 @@ class DES extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $shuffle = array( var $shuffle = [
"\x00\x00\x00\x00\x00\x00\x00\x00", "\x00\x00\x00\x00\x00\x00\x00\xFF", "\x00\x00\x00\x00\x00\x00\x00\x00", "\x00\x00\x00\x00\x00\x00\x00\xFF",
"\x00\x00\x00\x00\x00\x00\xFF\x00", "\x00\x00\x00\x00\x00\x00\xFF\xFF", "\x00\x00\x00\x00\x00\x00\xFF\x00", "\x00\x00\x00\x00\x00\x00\xFF\xFF",
"\x00\x00\x00\x00\x00\xFF\x00\x00", "\x00\x00\x00\x00\x00\xFF\x00\xFF", "\x00\x00\x00\x00\x00\xFF\x00\x00", "\x00\x00\x00\x00\x00\xFF\x00\xFF",
@ -290,7 +290,7 @@ class DES extends BlockCipher
"\xFF\xFF\xFF\xFF\xFF\x00\xFF\x00", "\xFF\xFF\xFF\xFF\xFF\x00\xFF\xFF", "\xFF\xFF\xFF\xFF\xFF\x00\xFF\x00", "\xFF\xFF\xFF\xFF\xFF\x00\xFF\xFF",
"\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00", "\xFF\xFF\xFF\xFF\xFF\xFF\x00\xFF", "\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00", "\xFF\xFF\xFF\xFF\xFF\xFF\x00\xFF",
"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00", "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00", "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
); ];
/** /**
* IP mapping helper table. * IP mapping helper table.
@ -300,7 +300,7 @@ class DES extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $ipmap = array( var $ipmap = [
0x00, 0x10, 0x01, 0x11, 0x20, 0x30, 0x21, 0x31, 0x00, 0x10, 0x01, 0x11, 0x20, 0x30, 0x21, 0x31,
0x02, 0x12, 0x03, 0x13, 0x22, 0x32, 0x23, 0x33, 0x02, 0x12, 0x03, 0x13, 0x22, 0x32, 0x23, 0x33,
0x40, 0x50, 0x41, 0x51, 0x60, 0x70, 0x61, 0x71, 0x40, 0x50, 0x41, 0x51, 0x60, 0x70, 0x61, 0x71,
@ -333,7 +333,7 @@ class DES extends BlockCipher
0x8E, 0x9E, 0x8F, 0x9F, 0xAE, 0xBE, 0xAF, 0xBF, 0x8E, 0x9E, 0x8F, 0x9F, 0xAE, 0xBE, 0xAF, 0xBF,
0xCC, 0xDC, 0xCD, 0xDD, 0xEC, 0xFC, 0xED, 0xFD, 0xCC, 0xDC, 0xCD, 0xDD, 0xEC, 0xFC, 0xED, 0xFD,
0xCE, 0xDE, 0xCF, 0xDF, 0xEE, 0xFE, 0xEF, 0xFF 0xCE, 0xDE, 0xCF, 0xDF, 0xEE, 0xFE, 0xEF, 0xFF
); ];
/** /**
* Inverse IP mapping helper table. * Inverse IP mapping helper table.
@ -342,7 +342,7 @@ class DES extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $invipmap = array( var $invipmap = [
0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0,
0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0, 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,
0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8,
@ -375,7 +375,7 @@ class DES extends BlockCipher
0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7, 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,
0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF, 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF,
0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF
); ];
/** /**
* Pre-permuted S-box1 * Pre-permuted S-box1
@ -386,7 +386,7 @@ class DES extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $sbox1 = array( var $sbox1 = [
0x00808200, 0x00000000, 0x00008000, 0x00808202, 0x00808200, 0x00000000, 0x00008000, 0x00808202,
0x00808002, 0x00008202, 0x00000002, 0x00008000, 0x00808002, 0x00008202, 0x00000002, 0x00008000,
0x00000200, 0x00808200, 0x00808202, 0x00000200, 0x00000200, 0x00808200, 0x00808202, 0x00000200,
@ -403,7 +403,7 @@ class DES extends BlockCipher
0x00800002, 0x00000202, 0x00008202, 0x00808200, 0x00800002, 0x00000202, 0x00008202, 0x00808200,
0x00000202, 0x00800200, 0x00800200, 0x00000000, 0x00000202, 0x00800200, 0x00800200, 0x00000000,
0x00008002, 0x00008200, 0x00000000, 0x00808002 0x00008002, 0x00008200, 0x00000000, 0x00808002
); ];
/** /**
* Pre-permuted S-box2 * Pre-permuted S-box2
@ -411,7 +411,7 @@ class DES extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $sbox2 = array( var $sbox2 = [
0x40084010, 0x40004000, 0x00004000, 0x00084010, 0x40084010, 0x40004000, 0x00004000, 0x00084010,
0x00080000, 0x00000010, 0x40080010, 0x40004010, 0x00080000, 0x00000010, 0x40080010, 0x40004010,
0x40000010, 0x40084010, 0x40084000, 0x40000000, 0x40000010, 0x40084010, 0x40084000, 0x40000000,
@ -428,7 +428,7 @@ class DES extends BlockCipher
0x00080010, 0x40004010, 0x40000010, 0x00080010, 0x00080010, 0x40004010, 0x40000010, 0x00080010,
0x00084000, 0x00000000, 0x40004000, 0x00004010, 0x00084000, 0x00000000, 0x40004000, 0x00004010,
0x40000000, 0x40080010, 0x40084010, 0x00084000 0x40000000, 0x40080010, 0x40084010, 0x00084000
); ];
/** /**
* Pre-permuted S-box3 * Pre-permuted S-box3
@ -436,7 +436,7 @@ class DES extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $sbox3 = array( var $sbox3 = [
0x00000104, 0x04010100, 0x00000000, 0x04010004, 0x00000104, 0x04010100, 0x00000000, 0x04010004,
0x04000100, 0x00000000, 0x00010104, 0x04000100, 0x04000100, 0x00000000, 0x00010104, 0x04000100,
0x00010004, 0x04000004, 0x04000004, 0x00010000, 0x00010004, 0x04000004, 0x04000004, 0x00010000,
@ -453,7 +453,7 @@ class DES extends BlockCipher
0x00000004, 0x00010104, 0x00010100, 0x04000004, 0x00000004, 0x00010104, 0x00010100, 0x04000004,
0x04010000, 0x04000104, 0x00000104, 0x04010000, 0x04010000, 0x04000104, 0x00000104, 0x04010000,
0x00010104, 0x00000004, 0x04010004, 0x00010100 0x00010104, 0x00000004, 0x04010004, 0x00010100
); ];
/** /**
* Pre-permuted S-box4 * Pre-permuted S-box4
@ -461,7 +461,7 @@ class DES extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $sbox4 = array( var $sbox4 = [
0x80401000, 0x80001040, 0x80001040, 0x00000040, 0x80401000, 0x80001040, 0x80001040, 0x00000040,
0x00401040, 0x80400040, 0x80400000, 0x80001000, 0x00401040, 0x80400040, 0x80400000, 0x80001000,
0x00000000, 0x00401000, 0x00401000, 0x80401040, 0x00000000, 0x00401000, 0x00401000, 0x80401040,
@ -478,7 +478,7 @@ class DES extends BlockCipher
0x80400000, 0x80001000, 0x00401040, 0x80400040, 0x80400000, 0x80001000, 0x00401040, 0x80400040,
0x80001000, 0x00001040, 0x00400000, 0x80401000, 0x80001000, 0x00001040, 0x00400000, 0x80401000,
0x00000040, 0x00400000, 0x00001000, 0x00401040 0x00000040, 0x00400000, 0x00001000, 0x00401040
); ];
/** /**
* Pre-permuted S-box5 * Pre-permuted S-box5
@ -486,7 +486,7 @@ class DES extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $sbox5 = array( var $sbox5 = [
0x00000080, 0x01040080, 0x01040000, 0x21000080, 0x00000080, 0x01040080, 0x01040000, 0x21000080,
0x00040000, 0x00000080, 0x20000000, 0x01040000, 0x00040000, 0x00000080, 0x20000000, 0x01040000,
0x20040080, 0x00040000, 0x01000080, 0x20040080, 0x20040080, 0x00040000, 0x01000080, 0x20040080,
@ -503,7 +503,7 @@ class DES extends BlockCipher
0x01040000, 0x00000000, 0x20040000, 0x21000000, 0x01040000, 0x00000000, 0x20040000, 0x21000000,
0x00040080, 0x01000080, 0x20000080, 0x00040000, 0x00040080, 0x01000080, 0x20000080, 0x00040000,
0x00000000, 0x20040000, 0x01040080, 0x20000080 0x00000000, 0x20040000, 0x01040080, 0x20000080
); ];
/** /**
* Pre-permuted S-box6 * Pre-permuted S-box6
@ -511,7 +511,7 @@ class DES extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $sbox6 = array( var $sbox6 = [
0x10000008, 0x10200000, 0x00002000, 0x10202008, 0x10000008, 0x10200000, 0x00002000, 0x10202008,
0x10200000, 0x00000008, 0x10202008, 0x00200000, 0x10200000, 0x00000008, 0x10202008, 0x00200000,
0x10002000, 0x00202008, 0x00200000, 0x10000008, 0x10002000, 0x00202008, 0x00200000, 0x10000008,
@ -528,7 +528,7 @@ class DES extends BlockCipher
0x00000008, 0x00002000, 0x10200000, 0x00202008, 0x00000008, 0x00002000, 0x10200000, 0x00202008,
0x00002000, 0x00200008, 0x10002008, 0x00000000, 0x00002000, 0x00200008, 0x10002008, 0x00000000,
0x10202000, 0x10000000, 0x00200008, 0x10002008 0x10202000, 0x10000000, 0x00200008, 0x10002008
); ];
/** /**
* Pre-permuted S-box7 * Pre-permuted S-box7
@ -536,7 +536,7 @@ class DES extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $sbox7 = array( var $sbox7 = [
0x00100000, 0x02100001, 0x02000401, 0x00000000, 0x00100000, 0x02100001, 0x02000401, 0x00000000,
0x00000400, 0x02000401, 0x00100401, 0x02100400, 0x00000400, 0x02000401, 0x00100401, 0x02100400,
0x02100401, 0x00100000, 0x00000000, 0x02000001, 0x02100401, 0x00100000, 0x00000000, 0x02000001,
@ -553,7 +553,7 @@ class DES extends BlockCipher
0x00100400, 0x00000000, 0x00000001, 0x02100401, 0x00100400, 0x00000000, 0x00000001, 0x02100401,
0x00000000, 0x00100401, 0x02100000, 0x00000400, 0x00000000, 0x00100401, 0x02100000, 0x00000400,
0x02000001, 0x02000400, 0x00000400, 0x00100001 0x02000001, 0x02000400, 0x00000400, 0x00100001
); ];
/** /**
* Pre-permuted S-box8 * Pre-permuted S-box8
@ -561,7 +561,7 @@ class DES extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $sbox8 = array( var $sbox8 = [
0x08000820, 0x00000800, 0x00020000, 0x08020820, 0x08000820, 0x00000800, 0x00020000, 0x08020820,
0x08000000, 0x08000820, 0x00000020, 0x08000000, 0x08000000, 0x08000820, 0x00000020, 0x08000000,
0x00020020, 0x08020000, 0x08020820, 0x00020800, 0x00020020, 0x08020000, 0x08020820, 0x00020800,
@ -578,7 +578,7 @@ class DES extends BlockCipher
0x08020000, 0x08000800, 0x08000820, 0x00000000, 0x08020000, 0x08000800, 0x08000820, 0x00000000,
0x08020820, 0x00020800, 0x00020800, 0x00000820, 0x08020820, 0x00020800, 0x00020800, 0x00000820,
0x00000820, 0x00020020, 0x08000000, 0x08020800 0x00000820, 0x00020020, 0x08000000, 0x08020800
); ];
/** /**
* Default Constructor. * Default Constructor.
@ -707,7 +707,7 @@ class DES extends BlockCipher
// Do the initial IP permutation. // Do the initial IP permutation.
$t = unpack('Nl/Nr', $block); $t = unpack('Nl/Nr', $block);
list($l, $r) = array($t['l'], $t['r']); list($l, $r) = [$t['l'], $t['r']];
$block = ($shuffleip[ $r & 0xFF] & "\x80\x80\x80\x80\x80\x80\x80\x80") | $block = ($shuffleip[ $r & 0xFF] & "\x80\x80\x80\x80\x80\x80\x80\x80") |
($shuffleip[($r >> 8) & 0xFF] & "\x40\x40\x40\x40\x40\x40\x40\x40") | ($shuffleip[($r >> 8) & 0xFF] & "\x40\x40\x40\x40\x40\x40\x40\x40") |
($shuffleip[($r >> 16) & 0xFF] & "\x20\x20\x20\x20\x20\x20\x20\x20") | ($shuffleip[($r >> 16) & 0xFF] & "\x20\x20\x20\x20\x20\x20\x20\x20") |
@ -719,7 +719,7 @@ class DES extends BlockCipher
// Extract L0 and R0. // Extract L0 and R0.
$t = unpack('Nl/Nr', $block); $t = unpack('Nl/Nr', $block);
list($l, $r) = array($t['l'], $t['r']); list($l, $r) = [$t['l'], $t['r']];
for ($des_round = 0; $des_round < $this->des_rounds; ++$des_round) { for ($des_round = 0; $des_round < $this->des_rounds; ++$des_round) {
// Perform the 16 steps. // Perform the 16 steps.
@ -770,13 +770,13 @@ class DES extends BlockCipher
// already expanded // already expanded
return; return;
} }
$this->kl = array('key' => $this->key, 'des_rounds' => $this->des_rounds); $this->kl = ['key' => $this->key, 'des_rounds' => $this->des_rounds];
static $shifts = array( // number of key bits shifted per round static $shifts = [ // number of key bits shifted per round
1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1
); ];
static $pc1map = array( static $pc1map = [
0x00, 0x00, 0x08, 0x08, 0x04, 0x04, 0x0C, 0x0C, 0x00, 0x00, 0x08, 0x08, 0x04, 0x04, 0x0C, 0x0C,
0x02, 0x02, 0x0A, 0x0A, 0x06, 0x06, 0x0E, 0x0E, 0x02, 0x02, 0x0A, 0x0A, 0x06, 0x06, 0x0E, 0x0E,
0x10, 0x10, 0x18, 0x18, 0x14, 0x14, 0x1C, 0x1C, 0x10, 0x10, 0x18, 0x18, 0x14, 0x14, 0x1C, 0x1C,
@ -809,16 +809,16 @@ class DES extends BlockCipher
0xE2, 0xE2, 0xEA, 0xEA, 0xE6, 0xE6, 0xEE, 0xEE, 0xE2, 0xE2, 0xEA, 0xEA, 0xE6, 0xE6, 0xEE, 0xEE,
0xF0, 0xF0, 0xF8, 0xF8, 0xF4, 0xF4, 0xFC, 0xFC, 0xF0, 0xF0, 0xF8, 0xF8, 0xF4, 0xF4, 0xFC, 0xFC,
0xF2, 0xF2, 0xFA, 0xFA, 0xF6, 0xF6, 0xFE, 0xFE 0xF2, 0xF2, 0xFA, 0xFA, 0xF6, 0xF6, 0xFE, 0xFE
); ];
// Mapping tables for the PC-2 transformation. // Mapping tables for the PC-2 transformation.
static $pc2mapc1 = array( static $pc2mapc1 = [
0x00000000, 0x00000400, 0x00200000, 0x00200400, 0x00000000, 0x00000400, 0x00200000, 0x00200400,
0x00000001, 0x00000401, 0x00200001, 0x00200401, 0x00000001, 0x00000401, 0x00200001, 0x00200401,
0x02000000, 0x02000400, 0x02200000, 0x02200400, 0x02000000, 0x02000400, 0x02200000, 0x02200400,
0x02000001, 0x02000401, 0x02200001, 0x02200401 0x02000001, 0x02000401, 0x02200001, 0x02200401
); ];
static $pc2mapc2 = array( static $pc2mapc2 = [
0x00000000, 0x00000800, 0x08000000, 0x08000800, 0x00000000, 0x00000800, 0x08000000, 0x08000800,
0x00010000, 0x00010800, 0x08010000, 0x08010800, 0x00010000, 0x00010800, 0x08010000, 0x08010800,
0x00000000, 0x00000800, 0x08000000, 0x08000800, 0x00000000, 0x00000800, 0x08000000, 0x08000800,
@ -883,8 +883,8 @@ class DES extends BlockCipher
0x01050110, 0x01050910, 0x09050110, 0x09050910, 0x01050110, 0x01050910, 0x09050110, 0x09050910,
0x01040110, 0x01040910, 0x09040110, 0x09040910, 0x01040110, 0x01040910, 0x09040110, 0x09040910,
0x01050110, 0x01050910, 0x09050110, 0x09050910 0x01050110, 0x01050910, 0x09050110, 0x09050910
); ];
static $pc2mapc3 = array( static $pc2mapc3 = [
0x00000000, 0x00000004, 0x00001000, 0x00001004, 0x00000000, 0x00000004, 0x00001000, 0x00001004,
0x00000000, 0x00000004, 0x00001000, 0x00001004, 0x00000000, 0x00000004, 0x00001000, 0x00001004,
0x10000000, 0x10000004, 0x10001000, 0x10001004, 0x10000000, 0x10000004, 0x10001000, 0x10001004,
@ -949,8 +949,8 @@ class DES extends BlockCipher
0x20080022, 0x20080026, 0x20081022, 0x20081026, 0x20080022, 0x20080026, 0x20081022, 0x20081026,
0x30080022, 0x30080026, 0x30081022, 0x30081026, 0x30080022, 0x30080026, 0x30081022, 0x30081026,
0x30080022, 0x30080026, 0x30081022, 0x30081026 0x30080022, 0x30080026, 0x30081022, 0x30081026
); ];
static $pc2mapc4 = array( static $pc2mapc4 = [
0x00000000, 0x00100000, 0x00000008, 0x00100008, 0x00000000, 0x00100000, 0x00000008, 0x00100008,
0x00000200, 0x00100200, 0x00000208, 0x00100208, 0x00000200, 0x00100200, 0x00000208, 0x00100208,
0x00000000, 0x00100000, 0x00000008, 0x00100008, 0x00000000, 0x00100000, 0x00000008, 0x00100008,
@ -1015,14 +1015,14 @@ class DES extends BlockCipher
0x04022200, 0x04122200, 0x04022208, 0x04122208, 0x04022200, 0x04122200, 0x04022208, 0x04122208,
0x04022000, 0x04122000, 0x04022008, 0x04122008, 0x04022000, 0x04122000, 0x04022008, 0x04122008,
0x04022200, 0x04122200, 0x04022208, 0x04122208 0x04022200, 0x04122200, 0x04022208, 0x04122208
); ];
static $pc2mapd1 = array( static $pc2mapd1 = [
0x00000000, 0x00000001, 0x08000000, 0x08000001, 0x00000000, 0x00000001, 0x08000000, 0x08000001,
0x00200000, 0x00200001, 0x08200000, 0x08200001, 0x00200000, 0x00200001, 0x08200000, 0x08200001,
0x00000002, 0x00000003, 0x08000002, 0x08000003, 0x00000002, 0x00000003, 0x08000002, 0x08000003,
0x00200002, 0x00200003, 0x08200002, 0x08200003 0x00200002, 0x00200003, 0x08200002, 0x08200003
); ];
static $pc2mapd2 = array( static $pc2mapd2 = [
0x00000000, 0x00100000, 0x00000800, 0x00100800, 0x00000000, 0x00100000, 0x00000800, 0x00100800,
0x00000000, 0x00100000, 0x00000800, 0x00100800, 0x00000000, 0x00100000, 0x00000800, 0x00100800,
0x04000000, 0x04100000, 0x04000800, 0x04100800, 0x04000000, 0x04100000, 0x04000800, 0x04100800,
@ -1087,8 +1087,8 @@ class DES extends BlockCipher
0x00020204, 0x00120204, 0x00020A04, 0x00120A04, 0x00020204, 0x00120204, 0x00020A04, 0x00120A04,
0x04020204, 0x04120204, 0x04020A04, 0x04120A04, 0x04020204, 0x04120204, 0x04020A04, 0x04120A04,
0x04020204, 0x04120204, 0x04020A04, 0x04120A04 0x04020204, 0x04120204, 0x04020A04, 0x04120A04
); ];
static $pc2mapd3 = array( static $pc2mapd3 = [
0x00000000, 0x00010000, 0x02000000, 0x02010000, 0x00000000, 0x00010000, 0x02000000, 0x02010000,
0x00000020, 0x00010020, 0x02000020, 0x02010020, 0x00000020, 0x00010020, 0x02000020, 0x02010020,
0x00040000, 0x00050000, 0x02040000, 0x02050000, 0x00040000, 0x00050000, 0x02040000, 0x02050000,
@ -1153,8 +1153,8 @@ class DES extends BlockCipher
0x20002030, 0x20012030, 0x22002030, 0x22012030, 0x20002030, 0x20012030, 0x22002030, 0x22012030,
0x20042010, 0x20052010, 0x22042010, 0x22052010, 0x20042010, 0x20052010, 0x22042010, 0x22052010,
0x20042030, 0x20052030, 0x22042030, 0x22052030 0x20042030, 0x20052030, 0x22042030, 0x22052030
); ];
static $pc2mapd4 = array( static $pc2mapd4 = [
0x00000000, 0x00000400, 0x01000000, 0x01000400, 0x00000000, 0x00000400, 0x01000000, 0x01000400,
0x00000000, 0x00000400, 0x01000000, 0x01000400, 0x00000000, 0x00000400, 0x01000000, 0x01000400,
0x00000100, 0x00000500, 0x01000100, 0x01000500, 0x00000100, 0x00000500, 0x01000100, 0x01000500,
@ -1219,16 +1219,16 @@ class DES extends BlockCipher
0x10081008, 0x10081408, 0x11081008, 0x11081408, 0x10081008, 0x10081408, 0x11081008, 0x11081408,
0x10081108, 0x10081508, 0x11081108, 0x11081508, 0x10081108, 0x10081508, 0x11081108, 0x11081508,
0x10081108, 0x10081508, 0x11081108, 0x11081508 0x10081108, 0x10081508, 0x11081108, 0x11081508
); ];
$keys = array(); $keys = [];
for ($des_round = 0; $des_round < $this->des_rounds; ++$des_round) { for ($des_round = 0; $des_round < $this->des_rounds; ++$des_round) {
// pad the key and remove extra characters as appropriate. // pad the key and remove extra characters as appropriate.
$key = str_pad(substr($this->key, $des_round * 8, 8), 8, "\0"); $key = str_pad(substr($this->key, $des_round * 8, 8), 8, "\0");
// Perform the PC/1 transformation and compute C and D. // Perform the PC/1 transformation and compute C and D.
$t = unpack('Nl/Nr', $key); $t = unpack('Nl/Nr', $key);
list($l, $r) = array($t['l'], $t['r']); list($l, $r) = [$t['l'], $t['r']];
$key = ($this->shuffle[$pc1map[ $r & 0xFF]] & "\x80\x80\x80\x80\x80\x80\x80\x00") | $key = ($this->shuffle[$pc1map[ $r & 0xFF]] & "\x80\x80\x80\x80\x80\x80\x80\x00") |
($this->shuffle[$pc1map[($r >> 8) & 0xFF]] & "\x40\x40\x40\x40\x40\x40\x40\x00") | ($this->shuffle[$pc1map[($r >> 8) & 0xFF]] & "\x40\x40\x40\x40\x40\x40\x40\x00") |
($this->shuffle[$pc1map[($r >> 16) & 0xFF]] & "\x20\x20\x20\x20\x20\x20\x20\x00") | ($this->shuffle[$pc1map[($r >> 16) & 0xFF]] & "\x20\x20\x20\x20\x20\x20\x20\x00") |
@ -1241,10 +1241,10 @@ class DES extends BlockCipher
$c = ( $key['c'] >> 4) & 0x0FFFFFFF; $c = ( $key['c'] >> 4) & 0x0FFFFFFF;
$d = (($key['d'] >> 4) & 0x0FFFFFF0) | ($key['c'] & 0x0F); $d = (($key['d'] >> 4) & 0x0FFFFFF0) | ($key['c'] & 0x0F);
$keys[$des_round] = array( $keys[$des_round] = [
self::ENCRYPT => array(), self::ENCRYPT => [],
self::DECRYPT => array_fill(0, 32, 0) self::DECRYPT => array_fill(0, 32, 0)
); ];
for ($i = 0, $ki = 31; $i < 16; ++$i, $ki-= 2) { for ($i = 0, $ki = 31; $i < 16; ++$i, $ki-= 2) {
$c <<= $shifts[$i]; $c <<= $shifts[$i];
$c = ($c | ($c >> 28)) & 0x0FFFFFFF; $c = ($c | ($c >> 28)) & 0x0FFFFFFF;
@ -1271,7 +1271,7 @@ class DES extends BlockCipher
switch ($this->des_rounds) { switch ($this->des_rounds) {
case 3: // 3DES keys case 3: // 3DES keys
$this->keys = array( $this->keys = [
self::ENCRYPT => array_merge( self::ENCRYPT => array_merge(
$keys[0][self::ENCRYPT], $keys[0][self::ENCRYPT],
$keys[1][self::DECRYPT], $keys[1][self::DECRYPT],
@ -1282,14 +1282,14 @@ class DES extends BlockCipher
$keys[1][self::ENCRYPT], $keys[1][self::ENCRYPT],
$keys[0][self::DECRYPT] $keys[0][self::DECRYPT]
) )
); ];
break; break;
// case 1: // DES keys // case 1: // DES keys
default: default:
$this->keys = array( $this->keys = [
self::ENCRYPT => $keys[0][self::ENCRYPT], self::ENCRYPT => $keys[0][self::ENCRYPT],
self::DECRYPT => $keys[0][self::DECRYPT] self::DECRYPT => $keys[0][self::DECRYPT]
); ];
} }
} }
@ -1351,20 +1351,20 @@ class DES extends BlockCipher
// In Hi-optimized code mode, we use our [3]DES key schedule as hardcoded integers. // In Hi-optimized code mode, we use our [3]DES key schedule as hardcoded integers.
// No futher initialisation of the $keys schedule is necessary. // No futher initialisation of the $keys schedule is necessary.
// That is the extra performance boost. // That is the extra performance boost.
$k = array( $k = [
self::ENCRYPT => $this->keys[self::ENCRYPT], self::ENCRYPT => $this->keys[self::ENCRYPT],
self::DECRYPT => $this->keys[self::DECRYPT] self::DECRYPT => $this->keys[self::DECRYPT]
); ];
$init_encrypt = ''; $init_encrypt = '';
$init_decrypt = ''; $init_decrypt = '';
break; break;
default: default:
// In generic optimized code mode, we have to use, as the best compromise [currently], // In generic optimized code mode, we have to use, as the best compromise [currently],
// our key schedule as $ke/$kd arrays. (with hardcoded indexes...) // our key schedule as $ke/$kd arrays. (with hardcoded indexes...)
$k = array( $k = [
self::ENCRYPT => array(), self::ENCRYPT => [],
self::DECRYPT => array() self::DECRYPT => []
); ];
for ($i = 0, $c = count($this->keys[self::ENCRYPT]); $i < $c; ++$i) { for ($i = 0, $c = count($this->keys[self::ENCRYPT]); $i < $c; ++$i) {
$k[self::ENCRYPT][$i] = '$ke[' . $i . ']'; $k[self::ENCRYPT][$i] = '$ke[' . $i . ']';
$k[self::DECRYPT][$i] = '$kd[' . $i . ']'; $k[self::DECRYPT][$i] = '$kd[' . $i . ']';
@ -1375,8 +1375,8 @@ class DES extends BlockCipher
} }
// Creating code for en- and decryption. // Creating code for en- and decryption.
$crypt_block = array(); $crypt_block = [];
foreach (array(self::ENCRYPT, self::DECRYPT) as $c) { foreach ([self::ENCRYPT, self::DECRYPT] as $c) {
/* Do the initial IP permutation. */ /* Do the initial IP permutation. */
$crypt_block[$c] = ' $crypt_block[$c] = '
$in = unpack("N*", $in); $in = unpack("N*", $in);
@ -1419,9 +1419,9 @@ class DES extends BlockCipher
// end of "the Feistel (F) function" // end of "the Feistel (F) function"
// swap L & R // swap L & R
list($l, $r) = array($r, $l); list($l, $r) = [$r, $l];
} }
list($l, $r) = array($r, $l); list($l, $r) = [$r, $l];
} }
// Perform the inverse IP permutation. // Perform the inverse IP permutation.
@ -1439,13 +1439,13 @@ class DES extends BlockCipher
// Creates the inline-crypt function // Creates the inline-crypt function
$lambda_functions[$code_hash] = $this->_createInlineCryptFunction( $lambda_functions[$code_hash] = $this->_createInlineCryptFunction(
array( [
'init_crypt' => $init_crypt, 'init_crypt' => $init_crypt,
'init_encrypt' => $init_encrypt, 'init_encrypt' => $init_encrypt,
'init_decrypt' => $init_decrypt, 'init_decrypt' => $init_decrypt,
'encrypt_block' => $crypt_block[self::ENCRYPT], 'encrypt_block' => $crypt_block[self::ENCRYPT],
'decrypt_block' => $crypt_block[self::DECRYPT] 'decrypt_block' => $crypt_block[self::DECRYPT]
) ]
); );
} }

View File

@ -223,14 +223,14 @@ class Hash
if ($hash == 'sha512/224' || $hash == 'sha512/256') { if ($hash == 'sha512/224' || $hash == 'sha512/256') {
// from http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf#page=24 // from http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf#page=24
$this->initial = $hash == 'sha512/256' ? $this->initial = $hash == 'sha512/256' ?
array( [
'22312194FC2BF72C', '9F555FA3C84C64C2', '2393B86B6F53B151', '963877195940EABD', '22312194FC2BF72C', '9F555FA3C84C64C2', '2393B86B6F53B151', '963877195940EABD',
'96283EE2A88EFFE3', 'BE5E1E2553863992', '2B0199FC2C85B8AA', '0EB72DDC81C52CA2' '96283EE2A88EFFE3', 'BE5E1E2553863992', '2B0199FC2C85B8AA', '0EB72DDC81C52CA2'
) : ] :
array( [
'8C3D37C819544DA2', '73E1996689DCD4D6', '1DFAB7AE32FF9C82', '679DD514582F9FCF', '8C3D37C819544DA2', '73E1996689DCD4D6', '1DFAB7AE32FF9C82', '679DD514582F9FCF',
'0F6D2B697BD44DA8', '77E36F7304C48942', '3F9D85A86A1D36C8', '1112E6AD91D692A1' '0F6D2B697BD44DA8', '77E36F7304C48942', '3F9D85A86A1D36C8', '1112E6AD91D692A1'
); ];
for ($i = 0; $i < 8; $i++) { for ($i = 0; $i < 8; $i++) {
$this->initial[$i] = new BigInteger($this->initial[$i], 16); $this->initial[$i] = new BigInteger($this->initial[$i], 16);
$this->initial[$i]->setPrecision(64); $this->initial[$i]->setPrecision(64);
@ -337,7 +337,7 @@ class Hash
if (!isset($k)) { if (!isset($k)) {
// Initialize table of round constants // Initialize table of round constants
// (first 64 bits of the fractional parts of the cube roots of the first 80 primes 2..409) // (first 64 bits of the fractional parts of the cube roots of the first 80 primes 2..409)
$k = array( $k = [
'428a2f98d728ae22', '7137449123ef65cd', 'b5c0fbcfec4d3b2f', 'e9b5dba58189dbbc', '428a2f98d728ae22', '7137449123ef65cd', 'b5c0fbcfec4d3b2f', 'e9b5dba58189dbbc',
'3956c25bf348b538', '59f111f1b605d019', '923f82a4af194f9b', 'ab1c5ed5da6d8118', '3956c25bf348b538', '59f111f1b605d019', '923f82a4af194f9b', 'ab1c5ed5da6d8118',
'd807aa98a3030242', '12835b0145706fbe', '243185be4ee4b28c', '550c7dc3d5ffb4e2', 'd807aa98a3030242', '12835b0145706fbe', '243185be4ee4b28c', '550c7dc3d5ffb4e2',
@ -358,7 +358,7 @@ class Hash
'06f067aa72176fba', '0a637dc5a2c898a6', '113f9804bef90dae', '1b710b35131c471b', '06f067aa72176fba', '0a637dc5a2c898a6', '113f9804bef90dae', '1b710b35131c471b',
'28db77f523047d84', '32caab7b40c72493', '3c9ebe0a15c9bebc', '431d67c49c100d4c', '28db77f523047d84', '32caab7b40c72493', '3c9ebe0a15c9bebc', '431d67c49c100d4c',
'4cc5d4becb3e42b6', '597f299cfc657e2a', '5fcb6fab3ad6faec', '6c44198c4a475817' '4cc5d4becb3e42b6', '597f299cfc657e2a', '5fcb6fab3ad6faec', '6c44198c4a475817'
); ];
for ($i = 0; $i < 80; $i++) { for ($i = 0; $i < 80; $i++) {
$k[$i] = new BigInteger($k[$i], 16); $k[$i] = new BigInteger($k[$i], 16);
@ -376,7 +376,7 @@ class Hash
// Process the message in successive 1024-bit chunks // Process the message in successive 1024-bit chunks
$chunks = str_split($m, 128); $chunks = str_split($m, 128);
foreach ($chunks as $chunk) { foreach ($chunks as $chunk) {
$w = array(); $w = [];
for ($i = 0; $i < 16; $i++) { for ($i = 0; $i < 16; $i++) {
$temp = new BigInteger(Strings::shift($chunk, 8), 256); $temp = new BigInteger(Strings::shift($chunk, 8), 256);
$temp->setPrecision(64); $temp->setPrecision(64);
@ -385,18 +385,18 @@ class Hash
// Extend the sixteen 32-bit words into eighty 32-bit words // Extend the sixteen 32-bit words into eighty 32-bit words
for ($i = 16; $i < 80; $i++) { for ($i = 16; $i < 80; $i++) {
$temp = array( $temp = [
$w[$i - 15]->bitwise_rightRotate(1), $w[$i - 15]->bitwise_rightRotate(1),
$w[$i - 15]->bitwise_rightRotate(8), $w[$i - 15]->bitwise_rightRotate(8),
$w[$i - 15]->bitwise_rightShift(7) $w[$i - 15]->bitwise_rightShift(7)
); ];
$s0 = $temp[0]->bitwise_xor($temp[1]); $s0 = $temp[0]->bitwise_xor($temp[1]);
$s0 = $s0->bitwise_xor($temp[2]); $s0 = $s0->bitwise_xor($temp[2]);
$temp = array( $temp = [
$w[$i - 2]->bitwise_rightRotate(19), $w[$i - 2]->bitwise_rightRotate(19),
$w[$i - 2]->bitwise_rightRotate(61), $w[$i - 2]->bitwise_rightRotate(61),
$w[$i - 2]->bitwise_rightShift(6) $w[$i - 2]->bitwise_rightShift(6)
); ];
$s1 = $temp[0]->bitwise_xor($temp[1]); $s1 = $temp[0]->bitwise_xor($temp[1]);
$s1 = $s1->bitwise_xor($temp[2]); $s1 = $s1->bitwise_xor($temp[2]);
$w[$i] = clone $w[$i - 16]; $w[$i] = clone $w[$i - 16];
@ -417,33 +417,33 @@ class Hash
// Main loop // Main loop
for ($i = 0; $i < 80; $i++) { for ($i = 0; $i < 80; $i++) {
$temp = array( $temp = [
$a->bitwise_rightRotate(28), $a->bitwise_rightRotate(28),
$a->bitwise_rightRotate(34), $a->bitwise_rightRotate(34),
$a->bitwise_rightRotate(39) $a->bitwise_rightRotate(39)
); ];
$s0 = $temp[0]->bitwise_xor($temp[1]); $s0 = $temp[0]->bitwise_xor($temp[1]);
$s0 = $s0->bitwise_xor($temp[2]); $s0 = $s0->bitwise_xor($temp[2]);
$temp = array( $temp = [
$a->bitwise_and($b), $a->bitwise_and($b),
$a->bitwise_and($c), $a->bitwise_and($c),
$b->bitwise_and($c) $b->bitwise_and($c)
); ];
$maj = $temp[0]->bitwise_xor($temp[1]); $maj = $temp[0]->bitwise_xor($temp[1]);
$maj = $maj->bitwise_xor($temp[2]); $maj = $maj->bitwise_xor($temp[2]);
$t2 = $s0->add($maj); $t2 = $s0->add($maj);
$temp = array( $temp = [
$e->bitwise_rightRotate(14), $e->bitwise_rightRotate(14),
$e->bitwise_rightRotate(18), $e->bitwise_rightRotate(18),
$e->bitwise_rightRotate(41) $e->bitwise_rightRotate(41)
); ];
$s1 = $temp[0]->bitwise_xor($temp[1]); $s1 = $temp[0]->bitwise_xor($temp[1]);
$s1 = $s1->bitwise_xor($temp[2]); $s1 = $s1->bitwise_xor($temp[2]);
$temp = array( $temp = [
$e->bitwise_and($f), $e->bitwise_and($f),
$g->bitwise_and($e->bitwise_not()) $g->bitwise_and($e->bitwise_not())
); ];
$ch = $temp[0]->bitwise_xor($temp[1]); $ch = $temp[0]->bitwise_xor($temp[1]);
$t1 = $h->add($s1); $t1 = $h->add($s1);
$t1 = $t1->add($ch); $t1 = $t1->add($ch);
@ -461,7 +461,7 @@ class Hash
} }
// Add this chunk's hash to result so far // Add this chunk's hash to result so far
$hash = array( $hash = [
$hash[0]->add($a), $hash[0]->add($a),
$hash[1]->add($b), $hash[1]->add($b),
$hash[2]->add($c), $hash[2]->add($c),
@ -470,7 +470,7 @@ class Hash
$hash[5]->add($f), $hash[5]->add($f),
$hash[6]->add($g), $hash[6]->add($g),
$hash[7]->add($h) $hash[7]->add($h)
); ];
} }
// Produce the final hash value (big-endian) // Produce the final hash value (big-endian)

View File

@ -152,7 +152,7 @@ class RC2 extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $pitable = array( var $pitable = [
0xD9, 0x78, 0xF9, 0xC4, 0x19, 0xDD, 0xB5, 0xED, 0xD9, 0x78, 0xF9, 0xC4, 0x19, 0xDD, 0xB5, 0xED,
0x28, 0xE9, 0xFD, 0x79, 0x4A, 0xA0, 0xD8, 0x9D, 0x28, 0xE9, 0xFD, 0x79, 0x4A, 0xA0, 0xD8, 0x9D,
0xC6, 0x7E, 0x37, 0x83, 0x2B, 0x76, 0x53, 0x8E, 0xC6, 0x7E, 0x37, 0x83, 0x2B, 0x76, 0x53, 0x8E,
@ -217,7 +217,7 @@ class RC2 extends BlockCipher
0xBB, 0x48, 0x0C, 0x5F, 0xB9, 0xB1, 0xCD, 0x2E, 0xBB, 0x48, 0x0C, 0x5F, 0xB9, 0xB1, 0xCD, 0x2E,
0xC5, 0xF3, 0xDB, 0x47, 0xE5, 0xA5, 0x9C, 0x77, 0xC5, 0xF3, 0xDB, 0x47, 0xE5, 0xA5, 0x9C, 0x77,
0x0A, 0xA6, 0x20, 0x68, 0xFE, 0x7F, 0xC1, 0xAD 0x0A, 0xA6, 0x20, 0x68, 0xFE, 0x7F, 0xC1, 0xAD
); ];
/** /**
* Inverse key expansion randomization table. * Inverse key expansion randomization table.
@ -226,7 +226,7 @@ class RC2 extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $invpitable = array( var $invpitable = [
0xD1, 0xDA, 0xB9, 0x6F, 0x9C, 0xC8, 0x78, 0x66, 0xD1, 0xDA, 0xB9, 0x6F, 0x9C, 0xC8, 0x78, 0x66,
0x80, 0x2C, 0xF8, 0x37, 0xEA, 0xE0, 0x62, 0xA4, 0x80, 0x2C, 0xF8, 0x37, 0xEA, 0xE0, 0x62, 0xA4,
0xCB, 0x71, 0x50, 0x27, 0x4B, 0x95, 0xD9, 0x20, 0xCB, 0x71, 0x50, 0x27, 0x4B, 0x95, 0xD9, 0x20,
@ -259,7 +259,7 @@ class RC2 extends BlockCipher
0x81, 0x09, 0x82, 0x33, 0x9F, 0x07, 0x86, 0x75, 0x81, 0x09, 0x82, 0x33, 0x9F, 0x07, 0x86, 0x75,
0x38, 0x4E, 0x69, 0xF1, 0xAD, 0x23, 0x73, 0x87, 0x38, 0x4E, 0x69, 0xF1, 0xAD, 0x23, 0x73, 0x87,
0x70, 0x02, 0xC2, 0x1E, 0xB8, 0x0A, 0xFC, 0xE6 0x70, 0x02, 0xC2, 0x1E, 0xB8, 0x0A, 0xFC, 0xE6
); ];
/** /**
* Default Constructor. * Default Constructor.
@ -458,7 +458,7 @@ class RC2 extends BlockCipher
list($r0, $r1, $r2, $r3) = array_values(unpack('v*', $in)); list($r0, $r1, $r2, $r3) = array_values(unpack('v*', $in));
$keys = $this->keys; $keys = $this->keys;
$limit = 20; $limit = 20;
$actions = array($limit => 44, 44 => 64); $actions = [$limit => 44, 44 => 64];
$j = 0; $j = 0;
for (;;) { for (;;) {
@ -503,7 +503,7 @@ class RC2 extends BlockCipher
list($r0, $r1, $r2, $r3) = array_values(unpack('v*', $in)); list($r0, $r1, $r2, $r3) = array_values(unpack('v*', $in));
$keys = $this->keys; $keys = $this->keys;
$limit = 44; $limit = 44;
$actions = array($limit => 20, 20 => 0); $actions = [$limit => 20, 20 => 0];
$j = 64; $j = 64;
for (;;) { for (;;) {
@ -602,7 +602,7 @@ class RC2 extends BlockCipher
case $gen_hi_opt_code: case $gen_hi_opt_code:
$keys = $this->keys; $keys = $this->keys;
default: default:
$keys = array(); $keys = [];
foreach ($this->keys as $k => $v) { foreach ($this->keys as $k => $v) {
$keys[$k] = '$keys[' . $k . ']'; $keys[$k] = '$keys[' . $k . ']';
} }
@ -619,7 +619,7 @@ class RC2 extends BlockCipher
// Create code for encryption. // Create code for encryption.
$limit = 20; $limit = 20;
$actions = array($limit => 44, 44 => 64); $actions = [$limit => 44, 44 => 64];
$j = 0; $j = 0;
for (;;) { for (;;) {
@ -657,7 +657,7 @@ class RC2 extends BlockCipher
// Create code for decryption. // Create code for decryption.
$limit = 44; $limit = 44;
$actions = array($limit => 20, 20 => 0); $actions = [$limit => 20, 20 => 0];
$j = 64; $j = 64;
for (;;) { for (;;) {
@ -695,11 +695,11 @@ class RC2 extends BlockCipher
// Creates the inline-crypt function // Creates the inline-crypt function
$lambda_functions[$code_hash] = $this->_createInlineCryptFunction( $lambda_functions[$code_hash] = $this->_createInlineCryptFunction(
array( [
'init_crypt' => $init_crypt, 'init_crypt' => $init_crypt,
'encrypt_block' => $encrypt_block, 'encrypt_block' => $encrypt_block,
'decrypt_block' => $decrypt_block 'decrypt_block' => $decrypt_block
) ]
); );
} }

View File

@ -292,12 +292,12 @@ class RC4 extends StreamCipher
$keyStream[$j] = $temp; $keyStream[$j] = $temp;
} }
$this->stream = array(); $this->stream = [];
$this->stream[self::DECRYPT] = $this->stream[self::ENCRYPT] = array( $this->stream[self::DECRYPT] = $this->stream[self::ENCRYPT] = [
0, // index $i 0, // index $i
0, // index $j 0, // index $j
$keyStream $keyStream
); ];
} }
/** /**

View File

@ -363,7 +363,7 @@ class RSA
self::$configFile = __DIR__ . '/../openssl.cnf'; self::$configFile = __DIR__ . '/../openssl.cnf';
if (self::$fileFormats === false) { if (self::$fileFormats === false) {
self::$fileFormats = array(); self::$fileFormats = [];
foreach (glob(__DIR__ . '/RSA/*.php') as $file) { foreach (glob(__DIR__ . '/RSA/*.php') as $file) {
$name = pathinfo($file, PATHINFO_FILENAME); $name = pathinfo($file, PATHINFO_FILENAME);
$type = 'phpseclib\Crypt\RSA\\' . $name; $type = 'phpseclib\Crypt\RSA\\' . $name;
@ -474,11 +474,11 @@ class RSA
// OpenSSL uses 65537 as the exponent and requires RSA keys be 384 bits minimum // OpenSSL uses 65537 as the exponent and requires RSA keys be 384 bits minimum
if (self::$engine == self::ENGINE_OPENSSL && $bits >= 384 && self::$defaultExponent == 65537) { if (self::$engine == self::ENGINE_OPENSSL && $bits >= 384 && self::$defaultExponent == 65537) {
$config = array(); $config = [];
if (isset(self::$configFile)) { if (isset(self::$configFile)) {
$config['config'] = self::$configFile; $config['config'] = self::$configFile;
} }
$rsa = openssl_pkey_new(array('private_key_bits' => $bits) + $config); $rsa = openssl_pkey_new(['private_key_bits' => $bits] + $config);
openssl_pkey_export($rsa, $privatekeystr, null, $config); openssl_pkey_export($rsa, $privatekeystr, null, $config);
$privatekey = new RSA(); $privatekey = new RSA();
$privatekey->load($privatekeystr); $privatekey->load($privatekeystr);
@ -491,11 +491,11 @@ class RSA
while (openssl_error_string() !== false) { while (openssl_error_string() !== false) {
} }
return array( return [
'privatekey' => $privatekey, 'privatekey' => $privatekey,
'publickey' => $publickey, 'publickey' => $publickey,
'partialkey' => false 'partialkey' => false
); ];
} }
static $e; static $e;
@ -512,11 +512,11 @@ class RSA
} }
$n = clone self::$one; $n = clone self::$one;
$exponents = $coefficients = $primes = array(); $exponents = $coefficients = $primes = [];
$lcm = array( $lcm = [
'top' => clone self::$one, 'top' => clone self::$one,
'bottom' => false 'bottom' => false
); ];
do { do {
for ($i = 1; $i <= $num_primes; $i++) { for ($i = 1; $i <= $num_primes; $i++) {
@ -588,10 +588,10 @@ class RSA
$publickey->k = $bits >> 3; $publickey->k = $bits >> 3;
$publickey->exponent = $e; $publickey->exponent = $e;
return array( return [
'privatekey' => $privatekey, 'privatekey' => $privatekey,
'publickey' => $publickey 'publickey' => $publickey
); ];
} }
/** /**
@ -667,9 +667,9 @@ class RSA
$this->publicExponent = clone $key->publicExponent; $this->publicExponent = clone $key->publicExponent;
} }
$this->primes = array(); $this->primes = [];
$this->exponents = array(); $this->exponents = [];
$this->coefficients = array(); $this->coefficients = [];
foreach ($this->primes as $prime) { foreach ($this->primes as $prime) {
$this->primes[] = clone $prime; $this->primes[] = clone $prime;
@ -720,9 +720,9 @@ class RSA
$this->coefficients = $components['coefficients']; $this->coefficients = $components['coefficients'];
$this->publicExponent = $components['publicExponent']; $this->publicExponent = $components['publicExponent'];
} else { } else {
$this->primes = array(); $this->primes = [];
$this->exponents = array(); $this->exponents = [];
$this->coefficients = array(); $this->coefficients = [];
$this->publicExponent = false; $this->publicExponent = false;
} }
@ -1244,10 +1244,10 @@ class RSA
$num_primes = count($this->primes); $num_primes = count($this->primes);
if (defined('CRYPT_RSA_DISABLE_BLINDING')) { if (defined('CRYPT_RSA_DISABLE_BLINDING')) {
$m_i = array( $m_i = [
1 => $x->modPow($this->exponents[1], $this->primes[1]), 1 => $x->modPow($this->exponents[1], $this->primes[1]),
2 => $x->modPow($this->exponents[2], $this->primes[2]) 2 => $x->modPow($this->exponents[2], $this->primes[2])
); ];
$h = $m_i[1]->subtract($m_i[2]); $h = $m_i[1]->subtract($m_i[2]);
$h = $h->multiply($this->coefficients[2]); $h = $h->multiply($this->coefficients[2]);
list(, $h) = $h->divide($this->primes[1]); list(, $h) = $h->divide($this->primes[1]);
@ -1275,10 +1275,10 @@ class RSA
$r = BigInteger::randomRange(self::$one, $smallest->subtract(self::$one)); $r = BigInteger::randomRange(self::$one, $smallest->subtract(self::$one));
$m_i = array( $m_i = [
1 => $this->_blind($x, $r, 1), 1 => $this->_blind($x, $r, 1),
2 => $this->_blind($x, $r, 2) 2 => $this->_blind($x, $r, 2)
); ];
$h = $m_i[1]->subtract($m_i[2]); $h = $m_i[1]->subtract($m_i[2]);
$h = $h->multiply($this->coefficients[2]); $h = $h->multiply($this->coefficients[2]);
list(, $h) = $h->divide($this->primes[1]); list(, $h) = $h->divide($this->primes[1]);

View File

@ -100,7 +100,7 @@ class MSBLOB
return false; return false;
} }
$components = array('isPublicKey' => $publickey); $components = ['isPublicKey' => $publickey];
// https://msdn.microsoft.com/en-us/library/windows/desktop/aa375549(v=vs.85).aspx // https://msdn.microsoft.com/en-us/library/windows/desktop/aa375549(v=vs.85).aspx
switch ($algo) { switch ($algo) {
@ -140,15 +140,15 @@ class MSBLOB
$components['isPublicKey'] = false; $components['isPublicKey'] = false;
// BYTE prime1[rsapubkey.bitlen/16] // BYTE prime1[rsapubkey.bitlen/16]
$components['primes'] = array(1 => new BigInteger(strrev(Strings::shift($key, $bitlen / 16)), 256)); $components['primes'] = [1 => new BigInteger(strrev(Strings::shift($key, $bitlen / 16)), 256)];
// BYTE prime2[rsapubkey.bitlen/16] // BYTE prime2[rsapubkey.bitlen/16]
$components['primes'][] = new BigInteger(strrev(Strings::shift($key, $bitlen / 16)), 256); $components['primes'][] = new BigInteger(strrev(Strings::shift($key, $bitlen / 16)), 256);
// BYTE exponent1[rsapubkey.bitlen/16] // BYTE exponent1[rsapubkey.bitlen/16]
$components['exponents'] = array(1 => new BigInteger(strrev(Strings::shift($key, $bitlen / 16)), 256)); $components['exponents'] = [1 => new BigInteger(strrev(Strings::shift($key, $bitlen / 16)), 256)];
// BYTE exponent2[rsapubkey.bitlen/16] // BYTE exponent2[rsapubkey.bitlen/16]
$components['exponents'][] = new BigInteger(strrev(Strings::shift($key, $bitlen / 16)), 256); $components['exponents'][] = new BigInteger(strrev(Strings::shift($key, $bitlen / 16)), 256);
// BYTE coefficient[rsapubkey.bitlen/16] // BYTE coefficient[rsapubkey.bitlen/16]
$components['coefficients'] = array(2 => new BigInteger(strrev(Strings::shift($key, $bitlen / 16)), 256)); $components['coefficients'] = [2 => new BigInteger(strrev(Strings::shift($key, $bitlen / 16)), 256)];
if (isset($components['privateExponent'])) { if (isset($components['privateExponent'])) {
$components['publicExponent'] = $components['privateExponent']; $components['publicExponent'] = $components['privateExponent'];
} }

View File

@ -46,7 +46,7 @@ class OpenSSH
*/ */
static function setComment($comment) static function setComment($comment)
{ {
self::$comment = str_replace(array("\r", "\n"), '', $comment); self::$comment = str_replace(["\r", "\n"], '', $comment);
} }
/** /**
@ -93,12 +93,12 @@ class OpenSSH
} }
$modulus = new BigInteger(Strings::shift($key, $length), -256); $modulus = new BigInteger(Strings::shift($key, $length), -256);
return array( return [
'isPublicKey' => true, 'isPublicKey' => true,
'modulus' => $modulus, 'modulus' => $modulus,
'publicExponent' => $publicExponent, 'publicExponent' => $publicExponent,
'comment' => $comment 'comment' => $comment
); ];
} }
/** /**

View File

@ -47,7 +47,7 @@ class PuTTY
*/ */
static function setComment($comment) static function setComment($comment)
{ {
self::$comment = str_replace(array("\r", "\n"), '', $comment); self::$comment = str_replace(["\r", "\n"], '', $comment);
} }
/** /**
@ -102,12 +102,12 @@ class PuTTY
if (!preg_match('#Comment: "(.+)"#', $key, $matches)) { if (!preg_match('#Comment: "(.+)"#', $key, $matches)) {
return false; return false;
} }
$components['comment'] = str_replace(array('\\\\', '\"'), array('\\', '"'), $matches[1]); $components['comment'] = str_replace(['\\\\', '\"'], ['\\', '"'], $matches[1]);
return $components; return $components;
} }
$components = array('isPublicKey' => false); $components = ['isPublicKey' => false];
$key = preg_split('#\r\n|\r|\n#', $key); $key = preg_split('#\r\n|\r|\n#', $key);
$type = trim(preg_replace('#PuTTY-User-Key-File-2: (.+)#', '$1', $key[0])); $type = trim(preg_replace('#PuTTY-User-Key-File-2: (.+)#', '$1', $key[0]));
if ($type != 'ssh-rsa') { if ($type != 'ssh-rsa') {
@ -149,7 +149,7 @@ class PuTTY
if (strlen($private) < $length) { if (strlen($private) < $length) {
return false; return false;
} }
$components['primes'] = array(1 => new BigInteger(Strings::shift($private, $length), -256)); $components['primes'] = [1 => new BigInteger(Strings::shift($private, $length), -256)];
extract(unpack('Nlength', Strings::shift($private, 4))); extract(unpack('Nlength', Strings::shift($private, 4)));
if (strlen($private) < $length) { if (strlen($private) < $length) {
return false; return false;
@ -157,7 +157,7 @@ class PuTTY
$components['primes'][] = new BigInteger(Strings::shift($private, $length), -256); $components['primes'][] = new BigInteger(Strings::shift($private, $length), -256);
$temp = $components['primes'][1]->subtract($one); $temp = $components['primes'][1]->subtract($one);
$components['exponents'] = array(1 => $components['publicExponent']->modInverse($temp)); $components['exponents'] = [1 => $components['publicExponent']->modInverse($temp)];
$temp = $components['primes'][2]->subtract($one); $temp = $components['primes'][2]->subtract($one);
$components['exponents'][] = $components['publicExponent']->modInverse($temp); $components['exponents'][] = $components['publicExponent']->modInverse($temp);
@ -165,7 +165,7 @@ class PuTTY
if (strlen($private) < $length) { if (strlen($private) < $length) {
return false; return false;
} }
$components['coefficients'] = array(2 => new BigInteger(Strings::shift($private, $length), -256)); $components['coefficients'] = [2 => new BigInteger(Strings::shift($private, $length), -256)];
return $components; return $components;
} }
@ -189,7 +189,7 @@ class PuTTY
return false; return false;
} }
$raw = array( $raw = [
'modulus' => $n->toBytes(true), 'modulus' => $n->toBytes(true),
'publicExponent' => $e->toBytes(true), 'publicExponent' => $e->toBytes(true),
'privateExponent' => $d->toBytes(true), 'privateExponent' => $d->toBytes(true),
@ -198,7 +198,7 @@ class PuTTY
'exponent1' => $exponents[1]->toBytes(true), 'exponent1' => $exponents[1]->toBytes(true),
'exponent2' => $exponents[2]->toBytes(true), 'exponent2' => $exponents[2]->toBytes(true),
'coefficient' => $coefficients[2]->toBytes(true) 'coefficient' => $coefficients[2]->toBytes(true)
); ];
$key = "PuTTY-User-Key-File-2: ssh-rsa\r\nEncryption: "; $key = "PuTTY-User-Key-File-2: ssh-rsa\r\nEncryption: ";
$encryption = (!empty($password) || is_string($password)) ? 'aes256-cbc' : 'none'; $encryption = (!empty($password) || is_string($password)) ? 'aes256-cbc' : 'none';
@ -286,7 +286,7 @@ class PuTTY
$n $n
); );
$key = "---- BEGIN SSH2 PUBLIC KEY ----\r\n" . $key = "---- BEGIN SSH2 PUBLIC KEY ----\r\n" .
'Comment: "' . str_replace(array('\\', '"'), array('\\\\', '\"'), self::$comment) . "\"\r\n" . 'Comment: "' . str_replace(['\\', '"'], ['\\\\', '\"'], self::$comment) . "\"\r\n" .
chunk_split(Base64::encode($key), 64) . chunk_split(Base64::encode($key), 64) .
'---- END SSH2 PUBLIC KEY ----'; '---- END SSH2 PUBLIC KEY ----';

View File

@ -59,7 +59,7 @@ class Raw
} }
} }
} }
$components = array('isPublicKey' => true); $components = ['isPublicKey' => true];
switch (true) { switch (true) {
case isset($key['e']): case isset($key['e']):
$components['publicExponent'] = $key['e']; $components['publicExponent'] = $key['e'];
@ -99,6 +99,6 @@ class Raw
*/ */
static function savePublicKey(BigInteger $n, BigInteger $e) static function savePublicKey(BigInteger $n, BigInteger $e)
{ {
return array('e' => clone $e, 'n' => clone $n); return ['e' => clone $e, 'n' => clone $n];
} }
} }

View File

@ -46,12 +46,12 @@ class XML
return false; return false;
} }
$components = array( $components = [
'isPublicKey' => false, 'isPublicKey' => false,
'primes' => array(), 'primes' => [],
'exponents' => array(), 'exponents' => [],
'coefficients' => array() 'coefficients' => []
); ];
$use_errors = libxml_use_internal_errors(true); $use_errors = libxml_use_internal_errors(true);
@ -60,7 +60,7 @@ class XML
return false; return false;
} }
$xpath = new \DOMXPath($dom); $xpath = new \DOMXPath($dom);
$keys = array('modulus', 'exponent', 'p', 'q', 'dp', 'dq', 'inverseq', 'd'); $keys = ['modulus', 'exponent', 'p', 'q', 'dp', 'dq', 'inverseq', 'd'];
foreach ($keys as $key) { foreach ($keys as $key) {
// $dom->getElementsByTagName($key) is case-sensitive // $dom->getElementsByTagName($key) is case-sensitive
$temp = $xpath->query("//*[translate(local-name(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='$key']"); $temp = $xpath->query("//*[translate(local-name(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='$key']");

View File

@ -208,7 +208,7 @@ abstract class Random
if (isset($arr['__phpseclib_marker'])) { if (isset($arr['__phpseclib_marker'])) {
return ''; return '';
} }
$safearr = array(); $safearr = [];
$arr['__phpseclib_marker'] = true; $arr['__phpseclib_marker'] = true;
foreach (array_keys($arr) as $key) { foreach (array_keys($arr) as $key) {
// do not recurse on the '__phpseclib_marker' key itself, for smaller memory usage // do not recurse on the '__phpseclib_marker' key itself, for smaller memory usage

View File

@ -326,7 +326,7 @@ class Rijndael extends BlockCipher
$t3 = $tables[3]; $t3 = $tables[3];
$sbox = $tables[4]; $sbox = $tables[4];
$state = array(); $state = [];
$words = unpack('N*', $in); $words = unpack('N*', $in);
$c = $this->c; $c = $this->c;
@ -348,7 +348,7 @@ class Rijndael extends BlockCipher
// equation (7.4.7) is supposed to use addition instead of subtraction, so we'll do that here, as well. // equation (7.4.7) is supposed to use addition instead of subtraction, so we'll do that here, as well.
// [1] http://fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.v316.pdf // [1] http://fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.v316.pdf
$temp = array(); $temp = [];
for ($round = 1; $round < $Nr; ++$round) { for ($round = 1; $round < $Nr; ++$round) {
$i = 0; // $c[0] == 0 $i = 0; // $c[0] == 0
$j = $c[1]; $j = $c[1];
@ -427,7 +427,7 @@ class Rijndael extends BlockCipher
$dt3 = $invtables[3]; $dt3 = $invtables[3];
$isbox = $invtables[4]; $isbox = $invtables[4];
$state = array(); $state = [];
$words = unpack('N*', $in); $words = unpack('N*', $in);
$c = $this->c; $c = $this->c;
@ -441,7 +441,7 @@ class Rijndael extends BlockCipher
$state[] = $word ^ $dw[++$wc]; $state[] = $word ^ $dw[++$wc];
} }
$temp = array(); $temp = [];
for ($round = $Nr - 1; $round > 0; --$round) { for ($round = $Nr - 1; $round > 0; --$round) {
$i = 0; // $c[0] == 0 $i = 0; // $c[0] == 0
$j = $Nb - $c[1]; $j = $Nb - $c[1];
@ -508,20 +508,20 @@ class Rijndael extends BlockCipher
{ {
// Each number in $rcon is equal to the previous number multiplied by two in Rijndael's finite field. // Each number in $rcon is equal to the previous number multiplied by two in Rijndael's finite field.
// See http://en.wikipedia.org/wiki/Finite_field_arithmetic#Multiplicative_inverse // See http://en.wikipedia.org/wiki/Finite_field_arithmetic#Multiplicative_inverse
static $rcon = array(0, static $rcon = [0,
0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000,
0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000, 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000,
0x6C000000, 0xD8000000, 0xAB000000, 0x4D000000, 0x9A000000, 0x6C000000, 0xD8000000, 0xAB000000, 0x4D000000, 0x9A000000,
0x2F000000, 0x5E000000, 0xBC000000, 0x63000000, 0xC6000000, 0x2F000000, 0x5E000000, 0xBC000000, 0x63000000, 0xC6000000,
0x97000000, 0x35000000, 0x6A000000, 0xD4000000, 0xB3000000, 0x97000000, 0x35000000, 0x6A000000, 0xD4000000, 0xB3000000,
0x7D000000, 0xFA000000, 0xEF000000, 0xC5000000, 0x91000000 0x7D000000, 0xFA000000, 0xEF000000, 0xC5000000, 0x91000000
); ];
if (isset($this->kl['key']) && $this->key === $this->kl['key'] && $this->key_length === $this->kl['key_length'] && $this->block_size === $this->kl['block_size']) { if (isset($this->kl['key']) && $this->key === $this->kl['key'] && $this->key_length === $this->kl['key_length'] && $this->block_size === $this->kl['block_size']) {
// already expanded // already expanded
return; return;
} }
$this->kl = array('key' => $this->key, 'key_length' => $this->key_length, 'block_size' => $this->block_size); $this->kl = ['key' => $this->key, 'key_length' => $this->key_length, 'block_size' => $this->block_size];
$this->Nk = $this->key_length >> 2; $this->Nk = $this->key_length >> 2;
// see Rijndael-ammended.pdf#page=44 // see Rijndael-ammended.pdf#page=44
@ -535,13 +535,13 @@ class Rijndael extends BlockCipher
case 4: case 4:
case 5: case 5:
case 6: case 6:
$this->c = array(0, 1, 2, 3); $this->c = [0, 1, 2, 3];
break; break;
case 7: case 7:
$this->c = array(0, 1, 2, 4); $this->c = [0, 1, 2, 4];
break; break;
case 8: case 8:
$this->c = array(0, 1, 3, 4); $this->c = [0, 1, 3, 4];
} }
$w = array_values(unpack('N*words', $this->key)); $w = array_values(unpack('N*words', $this->key));
@ -570,7 +570,7 @@ class Rijndael extends BlockCipher
// 2. Apply InvMixColumn to all Round Keys except the first and the last one." // 2. Apply InvMixColumn to all Round Keys except the first and the last one."
// also, see fips-197.pdf#page=27, "5.3.5 Equivalent Inverse Cipher" // also, see fips-197.pdf#page=27, "5.3.5 Equivalent Inverse Cipher"
list($dt0, $dt1, $dt2, $dt3) = $this->_getInvTables(); list($dt0, $dt1, $dt2, $dt3) = $this->_getInvTables();
$temp = $this->w = $this->dw = array(); $temp = $this->w = $this->dw = [];
for ($i = $row = $col = 0; $i < $length; $i++, $col++) { for ($i = $row = $col = 0; $i < $length; $i++, $col++) {
if ($col == $this->Nb) { if ($col == $this->Nb) {
if ($row == 0) { if ($row == 0) {
@ -646,7 +646,7 @@ class Rijndael extends BlockCipher
// according to <http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=19> (section 5.2.1), // according to <http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=19> (section 5.2.1),
// precomputed tables can be used in the mixColumns phase. in that example, they're assigned t0...t3, so // precomputed tables can be used in the mixColumns phase. in that example, they're assigned t0...t3, so
// those are the names we'll use. // those are the names we'll use.
$t3 = array_map('intval', array( $t3 = array_map('intval', [
// with array_map('intval', ...) we ensure we have only int's and not // with array_map('intval', ...) we ensure we have only int's and not
// some slower floats converted by php automatically on high values // some slower floats converted by php automatically on high values
0x6363A5C6, 0x7C7C84F8, 0x777799EE, 0x7B7B8DF6, 0xF2F20DFF, 0x6B6BBDD6, 0x6F6FB1DE, 0xC5C55491, 0x6363A5C6, 0x7C7C84F8, 0x777799EE, 0x7B7B8DF6, 0xF2F20DFF, 0x6B6BBDD6, 0x6F6FB1DE, 0xC5C55491,
@ -681,7 +681,7 @@ class Rijndael extends BlockCipher
0x9B9BB62D, 0x1E1E223C, 0x87879215, 0xE9E920C9, 0xCECE4987, 0x5555FFAA, 0x28287850, 0xDFDF7AA5, 0x9B9BB62D, 0x1E1E223C, 0x87879215, 0xE9E920C9, 0xCECE4987, 0x5555FFAA, 0x28287850, 0xDFDF7AA5,
0x8C8C8F03, 0xA1A1F859, 0x89898009, 0x0D0D171A, 0xBFBFDA65, 0xE6E631D7, 0x4242C684, 0x6868B8D0, 0x8C8C8F03, 0xA1A1F859, 0x89898009, 0x0D0D171A, 0xBFBFDA65, 0xE6E631D7, 0x4242C684, 0x6868B8D0,
0x4141C382, 0x9999B029, 0x2D2D775A, 0x0F0F111E, 0xB0B0CB7B, 0x5454FCA8, 0xBBBBD66D, 0x16163A2C 0x4141C382, 0x9999B029, 0x2D2D775A, 0x0F0F111E, 0xB0B0CB7B, 0x5454FCA8, 0xBBBBD66D, 0x16163A2C
)); ]);
foreach ($t3 as $t3i) { foreach ($t3 as $t3i) {
$t0[] = (($t3i << 24) & 0xFF000000) | (($t3i >> 8) & 0x00FFFFFF); $t0[] = (($t3i << 24) & 0xFF000000) | (($t3i >> 8) & 0x00FFFFFF);
@ -689,14 +689,14 @@ class Rijndael extends BlockCipher
$t2[] = (($t3i << 8) & 0xFFFFFF00) | (($t3i >> 24) & 0x000000FF); $t2[] = (($t3i << 8) & 0xFFFFFF00) | (($t3i >> 24) & 0x000000FF);
} }
$tables = array( $tables = [
// The Precomputed mixColumns tables t0 - t3 // The Precomputed mixColumns tables t0 - t3
$t0, $t0,
$t1, $t1,
$t2, $t2,
$t3, $t3,
// The SubByte S-Box // The SubByte S-Box
array( [
0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76, 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76,
0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0, 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0,
0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15, 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15,
@ -713,8 +713,8 @@ class Rijndael extends BlockCipher
0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E, 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E,
0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF, 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF,
0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16
) ]
); ];
} }
return $tables; return $tables;
} }
@ -732,7 +732,7 @@ class Rijndael extends BlockCipher
{ {
static $tables; static $tables;
if (empty($tables)) { if (empty($tables)) {
$dt3 = array_map('intval', array( $dt3 = array_map('intval', [
0xF4A75051, 0x4165537E, 0x17A4C31A, 0x275E963A, 0xAB6BCB3B, 0x9D45F11F, 0xFA58ABAC, 0xE303934B, 0xF4A75051, 0x4165537E, 0x17A4C31A, 0x275E963A, 0xAB6BCB3B, 0x9D45F11F, 0xFA58ABAC, 0xE303934B,
0x30FA5520, 0x766DF6AD, 0xCC769188, 0x024C25F5, 0xE5D7FC4F, 0x2ACBD7C5, 0x35448026, 0x62A38FB5, 0x30FA5520, 0x766DF6AD, 0xCC769188, 0x024C25F5, 0xE5D7FC4F, 0x2ACBD7C5, 0x35448026, 0x62A38FB5,
0xB15A49DE, 0xBA1B6725, 0xEA0E9845, 0xFEC0E15D, 0x2F7502C3, 0x4CF01281, 0x4697A38D, 0xD3F9C66B, 0xB15A49DE, 0xBA1B6725, 0xEA0E9845, 0xFEC0E15D, 0x2F7502C3, 0x4CF01281, 0x4697A38D, 0xD3F9C66B,
@ -765,7 +765,7 @@ class Rijndael extends BlockCipher
0xD2DF599C, 0xF2733F55, 0x14CE7918, 0xC737BF73, 0xF7CDEA53, 0xFDAA5B5F, 0x3D6F14DF, 0x44DB8678, 0xD2DF599C, 0xF2733F55, 0x14CE7918, 0xC737BF73, 0xF7CDEA53, 0xFDAA5B5F, 0x3D6F14DF, 0x44DB8678,
0xAFF381CA, 0x68C43EB9, 0x24342C38, 0xA3405FC2, 0x1DC37216, 0xE2250CBC, 0x3C498B28, 0x0D9541FF, 0xAFF381CA, 0x68C43EB9, 0x24342C38, 0xA3405FC2, 0x1DC37216, 0xE2250CBC, 0x3C498B28, 0x0D9541FF,
0xA8017139, 0x0CB3DE08, 0xB4E49CD8, 0x56C19064, 0xCB84617B, 0x32B670D5, 0x6C5C7448, 0xB85742D0 0xA8017139, 0x0CB3DE08, 0xB4E49CD8, 0x56C19064, 0xCB84617B, 0x32B670D5, 0x6C5C7448, 0xB85742D0
)); ]);
foreach ($dt3 as $dt3i) { foreach ($dt3 as $dt3i) {
$dt0[] = (($dt3i << 24) & 0xFF000000) | (($dt3i >> 8) & 0x00FFFFFF); $dt0[] = (($dt3i << 24) & 0xFF000000) | (($dt3i >> 8) & 0x00FFFFFF);
@ -773,14 +773,14 @@ class Rijndael extends BlockCipher
$dt2[] = (($dt3i << 8) & 0xFFFFFF00) | (($dt3i >> 24) & 0x000000FF); $dt2[] = (($dt3i << 8) & 0xFFFFFF00) | (($dt3i >> 24) & 0x000000FF);
}; };
$tables = array( $tables = [
// The Precomputed inverse mixColumns tables dt0 - dt3 // The Precomputed inverse mixColumns tables dt0 - dt3
$dt0, $dt0,
$dt1, $dt1,
$dt2, $dt2,
$dt3, $dt3,
// The inverse SubByte S-Box // The inverse SubByte S-Box
array( [
0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB, 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB,
0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB, 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB,
0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E, 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E,
@ -797,8 +797,8 @@ class Rijndael extends BlockCipher
0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF, 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF,
0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61, 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61,
0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D
) ]
); ];
} }
return $tables; return $tables;
} }
@ -875,7 +875,7 @@ class Rijndael extends BlockCipher
// Mainrounds: shiftRows + subWord + mixColumns + addRoundKey // Mainrounds: shiftRows + subWord + mixColumns + addRoundKey
for ($round = 1; $round < $Nr; ++$round) { for ($round = 1; $round < $Nr; ++$round) {
list($s, $e) = array($e, $s); list($s, $e) = [$e, $s];
for ($i = 0; $i < $Nb; ++$i) { for ($i = 0; $i < $Nb; ++$i) {
$encrypt_block.= $encrypt_block.=
'$'.$e.$i.' = '$'.$e.$i.' =
@ -932,7 +932,7 @@ class Rijndael extends BlockCipher
// Mainrounds: shiftRows + subWord + mixColumns + addRoundKey // Mainrounds: shiftRows + subWord + mixColumns + addRoundKey
for ($round = 1; $round < $Nr; ++$round) { for ($round = 1; $round < $Nr; ++$round) {
list($s, $e) = array($e, $s); list($s, $e) = [$e, $s];
for ($i = 0; $i < $Nb; ++$i) { for ($i = 0; $i < $Nb; ++$i) {
$decrypt_block.= $decrypt_block.=
'$'.$e.$i.' = '$'.$e.$i.' =
@ -965,13 +965,13 @@ class Rijndael extends BlockCipher
$decrypt_block .= ');'; $decrypt_block .= ');';
$lambda_functions[$code_hash] = $this->_createInlineCryptFunction( $lambda_functions[$code_hash] = $this->_createInlineCryptFunction(
array( [
'init_crypt' => '', 'init_crypt' => '',
'init_encrypt' => $init_encrypt, 'init_encrypt' => $init_encrypt,
'init_decrypt' => $init_decrypt, 'init_decrypt' => $init_decrypt,
'encrypt_block' => $encrypt_block, 'encrypt_block' => $encrypt_block,
'decrypt_block' => $decrypt_block 'decrypt_block' => $decrypt_block
) ]
); );
} }
$this->inline_crypt = $lambda_functions[$code_hash]; $this->inline_crypt = $lambda_functions[$code_hash];

View File

@ -159,11 +159,11 @@ class TripleDES extends DES
$this->mode_3cbc = true; $this->mode_3cbc = true;
// This three $des'es will do the 3CBC work (if $key > 64bits) // This three $des'es will do the 3CBC work (if $key > 64bits)
$this->des = array( $this->des = [
new DES(self::MODE_CBC), new DES(self::MODE_CBC),
new DES(self::MODE_CBC), new DES(self::MODE_CBC),
new DES(self::MODE_CBC), new DES(self::MODE_CBC),
); ];
// we're going to be doing the padding, ourselves, so disable it in the \phpseclib\Crypt\DES objects // we're going to be doing the padding, ourselves, so disable it in the \phpseclib\Crypt\DES objects
$this->des[0]->disablePadding(); $this->des[0]->disablePadding();

View File

@ -73,7 +73,7 @@ class Twofish extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $q0 = array( var $q0 = [
0xA9, 0x67, 0xB3, 0xE8, 0x04, 0xFD, 0xA3, 0x76, 0xA9, 0x67, 0xB3, 0xE8, 0x04, 0xFD, 0xA3, 0x76,
0x9A, 0x92, 0x80, 0x78, 0xE4, 0xDD, 0xD1, 0x38, 0x9A, 0x92, 0x80, 0x78, 0xE4, 0xDD, 0xD1, 0x38,
0x0D, 0xC6, 0x35, 0x98, 0x18, 0xF7, 0xEC, 0x6C, 0x0D, 0xC6, 0x35, 0x98, 0x18, 0xF7, 0xEC, 0x6C,
@ -106,7 +106,7 @@ class Twofish extends BlockCipher
0xC8, 0xA8, 0x2B, 0x40, 0xDC, 0xFE, 0x32, 0xA4, 0xC8, 0xA8, 0x2B, 0x40, 0xDC, 0xFE, 0x32, 0xA4,
0xCA, 0x10, 0x21, 0xF0, 0xD3, 0x5D, 0x0F, 0x00, 0xCA, 0x10, 0x21, 0xF0, 0xD3, 0x5D, 0x0F, 0x00,
0x6F, 0x9D, 0x36, 0x42, 0x4A, 0x5E, 0xC1, 0xE0 0x6F, 0x9D, 0x36, 0x42, 0x4A, 0x5E, 0xC1, 0xE0
); ];
/** /**
* Q-Table * Q-Table
@ -114,7 +114,7 @@ class Twofish extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $q1 = array( var $q1 = [
0x75, 0xF3, 0xC6, 0xF4, 0xDB, 0x7B, 0xFB, 0xC8, 0x75, 0xF3, 0xC6, 0xF4, 0xDB, 0x7B, 0xFB, 0xC8,
0x4A, 0xD3, 0xE6, 0x6B, 0x45, 0x7D, 0xE8, 0x4B, 0x4A, 0xD3, 0xE6, 0x6B, 0x45, 0x7D, 0xE8, 0x4B,
0xD6, 0x32, 0xD8, 0xFD, 0x37, 0x71, 0xF1, 0xE1, 0xD6, 0x32, 0xD8, 0xFD, 0x37, 0x71, 0xF1, 0xE1,
@ -147,7 +147,7 @@ class Twofish extends BlockCipher
0x12, 0xA2, 0x0D, 0x52, 0xBB, 0x02, 0x2F, 0xA9, 0x12, 0xA2, 0x0D, 0x52, 0xBB, 0x02, 0x2F, 0xA9,
0xD7, 0x61, 0x1E, 0xB4, 0x50, 0x04, 0xF6, 0xC2, 0xD7, 0x61, 0x1E, 0xB4, 0x50, 0x04, 0xF6, 0xC2,
0x16, 0x25, 0x86, 0x56, 0x55, 0x09, 0xBE, 0x91 0x16, 0x25, 0x86, 0x56, 0x55, 0x09, 0xBE, 0x91
); ];
/** /**
* M-Table * M-Table
@ -155,7 +155,7 @@ class Twofish extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $m0 = array( var $m0 = [
0xBCBC3275, 0xECEC21F3, 0x202043C6, 0xB3B3C9F4, 0xDADA03DB, 0x02028B7B, 0xE2E22BFB, 0x9E9EFAC8, 0xBCBC3275, 0xECEC21F3, 0x202043C6, 0xB3B3C9F4, 0xDADA03DB, 0x02028B7B, 0xE2E22BFB, 0x9E9EFAC8,
0xC9C9EC4A, 0xD4D409D3, 0x18186BE6, 0x1E1E9F6B, 0x98980E45, 0xB2B2387D, 0xA6A6D2E8, 0x2626B74B, 0xC9C9EC4A, 0xD4D409D3, 0x18186BE6, 0x1E1E9F6B, 0x98980E45, 0xB2B2387D, 0xA6A6D2E8, 0x2626B74B,
0x3C3C57D6, 0x93938A32, 0x8282EED8, 0x525298FD, 0x7B7BD437, 0xBBBB3771, 0x5B5B97F1, 0x474783E1, 0x3C3C57D6, 0x93938A32, 0x8282EED8, 0x525298FD, 0x7B7BD437, 0xBBBB3771, 0x5B5B97F1, 0x474783E1,
@ -188,7 +188,7 @@ class Twofish extends BlockCipher
0xABABA212, 0x6F6F3EA2, 0xE6E6540D, 0xDBDBF252, 0x92927BBB, 0xB7B7B602, 0x6969CA2F, 0x3939D9A9, 0xABABA212, 0x6F6F3EA2, 0xE6E6540D, 0xDBDBF252, 0x92927BBB, 0xB7B7B602, 0x6969CA2F, 0x3939D9A9,
0xD3D30CD7, 0xA7A72361, 0xA2A2AD1E, 0xC3C399B4, 0x6C6C4450, 0x07070504, 0x04047FF6, 0x272746C2, 0xD3D30CD7, 0xA7A72361, 0xA2A2AD1E, 0xC3C399B4, 0x6C6C4450, 0x07070504, 0x04047FF6, 0x272746C2,
0xACACA716, 0xD0D07625, 0x50501386, 0xDCDCF756, 0x84841A55, 0xE1E15109, 0x7A7A25BE, 0x1313EF91 0xACACA716, 0xD0D07625, 0x50501386, 0xDCDCF756, 0x84841A55, 0xE1E15109, 0x7A7A25BE, 0x1313EF91
); ];
/** /**
* M-Table * M-Table
@ -196,7 +196,7 @@ class Twofish extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $m1 = array( var $m1 = [
0xA9D93939, 0x67901717, 0xB3719C9C, 0xE8D2A6A6, 0x04050707, 0xFD985252, 0xA3658080, 0x76DFE4E4, 0xA9D93939, 0x67901717, 0xB3719C9C, 0xE8D2A6A6, 0x04050707, 0xFD985252, 0xA3658080, 0x76DFE4E4,
0x9A084545, 0x92024B4B, 0x80A0E0E0, 0x78665A5A, 0xE4DDAFAF, 0xDDB06A6A, 0xD1BF6363, 0x38362A2A, 0x9A084545, 0x92024B4B, 0x80A0E0E0, 0x78665A5A, 0xE4DDAFAF, 0xDDB06A6A, 0xD1BF6363, 0x38362A2A,
0x0D54E6E6, 0xC6432020, 0x3562CCCC, 0x98BEF2F2, 0x181E1212, 0xF724EBEB, 0xECD7A1A1, 0x6C774141, 0x0D54E6E6, 0xC6432020, 0x3562CCCC, 0x98BEF2F2, 0x181E1212, 0xF724EBEB, 0xECD7A1A1, 0x6C774141,
@ -229,7 +229,7 @@ class Twofish extends BlockCipher
0xC8FA9E9E, 0xA882D6D6, 0x2BCF6E6E, 0x40507070, 0xDCEB8585, 0xFE750A0A, 0x328A9393, 0xA48DDFDF, 0xC8FA9E9E, 0xA882D6D6, 0x2BCF6E6E, 0x40507070, 0xDCEB8585, 0xFE750A0A, 0x328A9393, 0xA48DDFDF,
0xCA4C2929, 0x10141C1C, 0x2173D7D7, 0xF0CCB4B4, 0xD309D4D4, 0x5D108A8A, 0x0FE25151, 0x00000000, 0xCA4C2929, 0x10141C1C, 0x2173D7D7, 0xF0CCB4B4, 0xD309D4D4, 0x5D108A8A, 0x0FE25151, 0x00000000,
0x6F9A1919, 0x9DE01A1A, 0x368F9494, 0x42E6C7C7, 0x4AECC9C9, 0x5EFDD2D2, 0xC1AB7F7F, 0xE0D8A8A8 0x6F9A1919, 0x9DE01A1A, 0x368F9494, 0x42E6C7C7, 0x4AECC9C9, 0x5EFDD2D2, 0xC1AB7F7F, 0xE0D8A8A8
); ];
/** /**
* M-Table * M-Table
@ -237,7 +237,7 @@ class Twofish extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $m2 = array( var $m2 = [
0xBC75BC32, 0xECF3EC21, 0x20C62043, 0xB3F4B3C9, 0xDADBDA03, 0x027B028B, 0xE2FBE22B, 0x9EC89EFA, 0xBC75BC32, 0xECF3EC21, 0x20C62043, 0xB3F4B3C9, 0xDADBDA03, 0x027B028B, 0xE2FBE22B, 0x9EC89EFA,
0xC94AC9EC, 0xD4D3D409, 0x18E6186B, 0x1E6B1E9F, 0x9845980E, 0xB27DB238, 0xA6E8A6D2, 0x264B26B7, 0xC94AC9EC, 0xD4D3D409, 0x18E6186B, 0x1E6B1E9F, 0x9845980E, 0xB27DB238, 0xA6E8A6D2, 0x264B26B7,
0x3CD63C57, 0x9332938A, 0x82D882EE, 0x52FD5298, 0x7B377BD4, 0xBB71BB37, 0x5BF15B97, 0x47E14783, 0x3CD63C57, 0x9332938A, 0x82D882EE, 0x52FD5298, 0x7B377BD4, 0xBB71BB37, 0x5BF15B97, 0x47E14783,
@ -270,7 +270,7 @@ class Twofish extends BlockCipher
0xAB12ABA2, 0x6FA26F3E, 0xE60DE654, 0xDB52DBF2, 0x92BB927B, 0xB702B7B6, 0x692F69CA, 0x39A939D9, 0xAB12ABA2, 0x6FA26F3E, 0xE60DE654, 0xDB52DBF2, 0x92BB927B, 0xB702B7B6, 0x692F69CA, 0x39A939D9,
0xD3D7D30C, 0xA761A723, 0xA21EA2AD, 0xC3B4C399, 0x6C506C44, 0x07040705, 0x04F6047F, 0x27C22746, 0xD3D7D30C, 0xA761A723, 0xA21EA2AD, 0xC3B4C399, 0x6C506C44, 0x07040705, 0x04F6047F, 0x27C22746,
0xAC16ACA7, 0xD025D076, 0x50865013, 0xDC56DCF7, 0x8455841A, 0xE109E151, 0x7ABE7A25, 0x139113EF 0xAC16ACA7, 0xD025D076, 0x50865013, 0xDC56DCF7, 0x8455841A, 0xE109E151, 0x7ABE7A25, 0x139113EF
); ];
/** /**
* M-Table * M-Table
@ -278,7 +278,7 @@ class Twofish extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $m3 = array( var $m3 = [
0xD939A9D9, 0x90176790, 0x719CB371, 0xD2A6E8D2, 0x05070405, 0x9852FD98, 0x6580A365, 0xDFE476DF, 0xD939A9D9, 0x90176790, 0x719CB371, 0xD2A6E8D2, 0x05070405, 0x9852FD98, 0x6580A365, 0xDFE476DF,
0x08459A08, 0x024B9202, 0xA0E080A0, 0x665A7866, 0xDDAFE4DD, 0xB06ADDB0, 0xBF63D1BF, 0x362A3836, 0x08459A08, 0x024B9202, 0xA0E080A0, 0x665A7866, 0xDDAFE4DD, 0xB06ADDB0, 0xBF63D1BF, 0x362A3836,
0x54E60D54, 0x4320C643, 0x62CC3562, 0xBEF298BE, 0x1E12181E, 0x24EBF724, 0xD7A1ECD7, 0x77416C77, 0x54E60D54, 0x4320C643, 0x62CC3562, 0xBEF298BE, 0x1E12181E, 0x24EBF724, 0xD7A1ECD7, 0x77416C77,
@ -311,7 +311,7 @@ class Twofish extends BlockCipher
0xFA9EC8FA, 0x82D6A882, 0xCF6E2BCF, 0x50704050, 0xEB85DCEB, 0x750AFE75, 0x8A93328A, 0x8DDFA48D, 0xFA9EC8FA, 0x82D6A882, 0xCF6E2BCF, 0x50704050, 0xEB85DCEB, 0x750AFE75, 0x8A93328A, 0x8DDFA48D,
0x4C29CA4C, 0x141C1014, 0x73D72173, 0xCCB4F0CC, 0x09D4D309, 0x108A5D10, 0xE2510FE2, 0x00000000, 0x4C29CA4C, 0x141C1014, 0x73D72173, 0xCCB4F0CC, 0x09D4D309, 0x108A5D10, 0xE2510FE2, 0x00000000,
0x9A196F9A, 0xE01A9DE0, 0x8F94368F, 0xE6C742E6, 0xECC94AEC, 0xFDD25EFD, 0xAB7FC1AB, 0xD8A8E0D8 0x9A196F9A, 0xE01A9DE0, 0x8F94368F, 0xE6C742E6, 0xECC94AEC, 0xFDD25EFD, 0xAB7FC1AB, 0xD8A8E0D8
); ];
/** /**
* The Key Schedule Array * The Key Schedule Array
@ -319,7 +319,7 @@ class Twofish extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $K = array(); var $K = [];
/** /**
* The Key depended S-Table 0 * The Key depended S-Table 0
@ -327,7 +327,7 @@ class Twofish extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $S0 = array(); var $S0 = [];
/** /**
* The Key depended S-Table 1 * The Key depended S-Table 1
@ -335,7 +335,7 @@ class Twofish extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $S1 = array(); var $S1 = [];
/** /**
* The Key depended S-Table 2 * The Key depended S-Table 2
@ -343,7 +343,7 @@ class Twofish extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $S2 = array(); var $S2 = [];
/** /**
* The Key depended S-Table 3 * The Key depended S-Table 3
@ -351,7 +351,7 @@ class Twofish extends BlockCipher
* @var array * @var array
* @access private * @access private
*/ */
var $S3 = array(); var $S3 = [];
/** /**
* Holds the last used key * Holds the last used key
@ -444,7 +444,7 @@ class Twofish extends BlockCipher
// already expanded // already expanded
return; return;
} }
$this->kl = array('key' => $this->key); $this->kl = ['key' => $this->key];
/* Key expanding and generating the key-depended s-boxes */ /* Key expanding and generating the key-depended s-boxes */
$le_longs = unpack('V*', $this->key); $le_longs = unpack('V*', $this->key);
@ -456,7 +456,7 @@ class Twofish extends BlockCipher
$q0 = $this->q0; $q0 = $this->q0;
$q1 = $this->q1; $q1 = $this->q1;
$K = $S0 = $S1 = $S2 = $S3 = array(); $K = $S0 = $S1 = $S2 = $S3 = [];
switch (strlen($this->key)) { switch (strlen($this->key)) {
case 16: case 16:
@ -580,11 +580,11 @@ class Twofish extends BlockCipher
$B^= ($u << 24) | ($u << 8); $B^= ($u << 24) | ($u << 8);
} }
return array( return [
0xff & $B >> 24, 0xff & $B >> 24,
0xff & $B >> 16, 0xff & $B >> 16,
0xff & $B >> 8, 0xff & $B >> 8,
0xff & $B); 0xff & $B];
} }
/** /**
@ -736,7 +736,7 @@ class Twofish extends BlockCipher
'; ';
break; break;
default: default:
$K = array(); $K = [];
for ($i = 0; $i < 40; ++$i) { for ($i = 0; $i < 40; ++$i) {
$K[] = '$K_' . $i; $K[] = '$K_' . $i;
} }
@ -834,13 +834,13 @@ class Twofish extends BlockCipher
'; ';
$lambda_functions[$code_hash] = $this->_createInlineCryptFunction( $lambda_functions[$code_hash] = $this->_createInlineCryptFunction(
array( [
'init_crypt' => $init_crypt, 'init_crypt' => $init_crypt,
'init_encrypt' => '', 'init_encrypt' => '',
'init_decrypt' => '', 'init_decrypt' => '',
'encrypt_block' => $encrypt_block, 'encrypt_block' => $encrypt_block,
'decrypt_block' => $decrypt_block 'decrypt_block' => $decrypt_block
) ]
); );
} }
$this->inline_crypt = $lambda_functions[$code_hash]; $this->inline_crypt = $lambda_functions[$code_hash];

View File

@ -193,7 +193,7 @@ class ANSI
$this->max_x = $x - 1; $this->max_x = $x - 1;
$this->max_y = $y - 1; $this->max_y = $y - 1;
$this->x = $this->y = 0; $this->x = $this->y = 0;
$this->history = $this->history_attrs = array(); $this->history = $this->history_attrs = [];
$this->attr_row = array_fill(0, $this->max_x + 2, $this->base_attr_cell); $this->attr_row = array_fill(0, $this->max_x + 2, $this->base_attr_cell);
$this->screen = array_fill(0, $this->max_y + 1, ''); $this->screen = array_fill(0, $this->max_y + 1, '');
$this->attrs = array_fill(0, $this->max_y + 1, $this->attr_row); $this->attrs = array_fill(0, $this->max_y + 1, $this->attr_row);
@ -232,7 +232,7 @@ class ANSI
*/ */
function appendString($source) function appendString($source)
{ {
$this->tokenization = array(''); $this->tokenization = [''];
for ($i = 0; $i < strlen($source); $i++) { for ($i = 0; $i < strlen($source); $i++) {
if (strlen($this->ansi)) { if (strlen($this->ansi)) {
$this->ansi.= $source[$i]; $this->ansi.= $source[$i];
@ -438,10 +438,10 @@ class ANSI
//} //}
while ($this->y >= $this->max_y) { while ($this->y >= $this->max_y) {
$this->history = array_merge($this->history, array(array_shift($this->screen))); $this->history = array_merge($this->history, [array_shift($this->screen)]);
$this->screen[] = ''; $this->screen[] = '';
$this->history_attrs = array_merge($this->history_attrs, array(array_shift($this->attrs))); $this->history_attrs = array_merge($this->history_attrs, [array_shift($this->attrs)]);
$this->attrs[] = $this->attr_row; $this->attrs[] = $this->attr_row;
if (count($this->history) >= $this->max_history) { if (count($this->history) >= $this->max_history) {

View File

@ -530,8 +530,8 @@ class X509
} }
} }
$filters = array(); $filters = [];
$type_utf8_string = array('type' => ASN1::TYPE_UTF8_STRING); $type_utf8_string = ['type' => ASN1::TYPE_UTF8_STRING];
$filters['tbsCertificate']['signature']['parameters'] = $type_utf8_string; $filters['tbsCertificate']['signature']['parameters'] = $type_utf8_string;
$filters['tbsCertificate']['signature']['issuer']['rdnSequence']['value'] = $type_utf8_string; $filters['tbsCertificate']['signature']['issuer']['rdnSequence']['value'] = $type_utf8_string;
$filters['tbsCertificate']['issuer']['rdnSequence']['value'] = $type_utf8_string; $filters['tbsCertificate']['issuer']['rdnSequence']['value'] = $type_utf8_string;
@ -548,7 +548,7 @@ class X509
characters. characters.
*/ */
$filters['policyQualifiers']['qualifier'] $filters['policyQualifiers']['qualifier']
= array('type' => ASN1::TYPE_IA5_STRING); = ['type' => ASN1::TYPE_IA5_STRING];
ASN1::setFilters($filters); ASN1::setFilters($filters);
@ -588,7 +588,7 @@ class X509
corresponding to the extension type identified by extnID */ corresponding to the extension type identified by extnID */
$map = $this->_getMapping($id); $map = $this->_getMapping($id);
if (!is_bool($map)) { if (!is_bool($map)) {
$mapped = ASN1::asn1map($decoded[0], $map, array('iPAddress' => array($this, '_decodeIP'))); $mapped = ASN1::asn1map($decoded[0], $map, ['iPAddress' => [$this, '_decodeIP']]);
$value = $mapped === false ? $decoded[0] : $mapped; $value = $mapped === false ? $decoded[0] : $mapped;
if ($id == 'id-ce-certificatePolicies') { if ($id == 'id-ce-certificatePolicies') {
@ -671,7 +671,7 @@ class X509
unset($extensions[$i]); unset($extensions[$i]);
} }
} else { } else {
$value = ASN1::encodeDER($value, $map, array('iPAddress' => array($this, '_encodeIP'))); $value = ASN1::encodeDER($value, $map, ['iPAddress' => [$this, '_encodeIP']]);
} }
} }
} }
@ -1006,7 +1006,7 @@ class X509
if ($names = $this->getExtension('id-ce-subjectAltName')) { if ($names = $this->getExtension('id-ce-subjectAltName')) {
foreach ($names as $key => $value) { foreach ($names as $key => $value) {
$value = str_replace(array('.', '*'), array('\.', '[^.]*'), $value); $value = str_replace(['.', '*'], ['\.', '[^.]*'], $value);
switch ($key) { switch ($key) {
case 'dNSName': case 'dNSName':
/* From RFC2818 "HTTP over TLS": /* From RFC2818 "HTTP over TLS":
@ -1035,7 +1035,7 @@ class X509
} }
if ($value = $this->getDNProp('id-at-commonName')) { if ($value = $this->getDNProp('id-at-commonName')) {
$value = str_replace(array('.', '*'), array('\.', '[^.]*'), $value[0]); $value = str_replace(['.', '*'], ['\.', '[^.]*'], $value[0]);
return preg_match('#^' . $value . '$#', $components['host']); return preg_match('#^' . $value . '$#', $components['host']);
} }
@ -1401,7 +1401,7 @@ class X509
function setDNProp($propName, $propValue, $type = 'utf8String') function setDNProp($propName, $propValue, $type = 'utf8String')
{ {
if (empty($this->dn)) { if (empty($this->dn)) {
$this->dn = array('rdnSequence' => array()); $this->dn = ['rdnSequence' => []];
} }
if (($propName = $this->_translateDNProp($propName)) === false) { if (($propName = $this->_translateDNProp($propName)) === false) {
@ -1410,14 +1410,14 @@ class X509
foreach ((array) $propValue as $v) { foreach ((array) $propValue as $v) {
if (!is_array($v) && isset($type)) { if (!is_array($v) && isset($type)) {
$v = array($type => $v); $v = [$type => $v];
} }
$this->dn['rdnSequence'][] = array( $this->dn['rdnSequence'][] = [
array( [
'type' => $propName, 'type' => $propName,
'value'=> $v 'value'=> $v
) ]
); ];
} }
return true; return true;
@ -1473,12 +1473,12 @@ class X509
return false; return false;
} }
$filters = array(); $filters = [];
$filters['value'] = array('type' => ASN1::TYPE_UTF8_STRING); $filters['value'] = ['type' => ASN1::TYPE_UTF8_STRING];
ASN1::setFilters($filters); ASN1::setFilters($filters);
$this->_mapOutDNs($dn, 'rdnSequence'); $this->_mapOutDNs($dn, 'rdnSequence');
$dn = $dn['rdnSequence']; $dn = $dn['rdnSequence'];
$result = array(); $result = [];
for ($i = 0; $i < count($dn); $i++) { for ($i = 0; $i < count($dn); $i++) {
if ($dn[$i][0]['type'] == $propName) { if ($dn[$i][0]['type'] == $propName) {
$v = $dn[$i][0]['value']; $v = $dn[$i][0]['value'];
@ -1573,8 +1573,8 @@ class X509
case self::DN_ARRAY: case self::DN_ARRAY:
return $dn; return $dn;
case self::DN_ASN1: case self::DN_ASN1:
$filters = array(); $filters = [];
$filters['rdnSequence']['value'] = array('type' => ASN1::TYPE_UTF8_STRING); $filters['rdnSequence']['value'] = ['type' => ASN1::TYPE_UTF8_STRING];
ASN1::setFilters($filters); ASN1::setFilters($filters);
$this->_mapOutDNs($dn, 'rdnSequence'); $this->_mapOutDNs($dn, 'rdnSequence');
return ASN1::encodeDER($dn, Maps\Name::MAP); return ASN1::encodeDER($dn, Maps\Name::MAP);
@ -1582,8 +1582,8 @@ class X509
// No SEQUENCE around RDNs and all string values normalized as // No SEQUENCE around RDNs and all string values normalized as
// trimmed lowercase UTF-8 with all spacing as one blank. // trimmed lowercase UTF-8 with all spacing as one blank.
// constructed RDNs will not be canonicalized // constructed RDNs will not be canonicalized
$filters = array(); $filters = [];
$filters['value'] = array('type' => ASN1::TYPE_UTF8_STRING); $filters['value'] = ['type' => ASN1::TYPE_UTF8_STRING];
ASN1::setFilters($filters); ASN1::setFilters($filters);
$result = ''; $result = '';
$this->_mapOutDNs($dn, 'rdnSequence'); $this->_mapOutDNs($dn, 'rdnSequence');
@ -1619,9 +1619,9 @@ class X509
$start = true; $start = true;
$output = ''; $output = '';
$result = array(); $result = [];
$filters = array(); $filters = [];
$filters['rdnSequence']['value'] = array('type' => ASN1::TYPE_UTF8_STRING); $filters['rdnSequence']['value'] = ['type' => ASN1::TYPE_UTF8_STRING];
ASN1::setFilters($filters); ASN1::setFilters($filters);
$this->_mapOutDNs($dn, 'rdnSequence'); $this->_mapOutDNs($dn, 'rdnSequence');
@ -1688,7 +1688,7 @@ class X509
} }
$output.= $desc . '=' . $value; $output.= $desc . '=' . $value;
$result[$desc] = isset($result[$desc]) ? $result[$desc] = isset($result[$desc]) ?
array_merge((array) $dn[$prop], array($value)) : array_merge((array) $dn[$prop], [$value]) :
$value; $value;
$start = false; $start = false;
} }
@ -1795,7 +1795,7 @@ class X509
*/ */
function getChain() function getChain()
{ {
$chain = array($this->currentCert); $chain = [$this->currentCert];
if (!is_array($this->currentCert) || !isset($this->currentCert['tbsCertificate'])) { if (!is_array($this->currentCert) || !isset($this->currentCert['tbsCertificate'])) {
return false; return false;
@ -1888,7 +1888,7 @@ class X509
} }
if (isset($this->currentCert) && is_array($this->currentCert)) { if (isset($this->currentCert) && is_array($this->currentCert)) {
foreach (array('tbsCertificate/subjectPublicKeyInfo', 'certificationRequestInfo/subjectPKInfo') as $path) { foreach (['tbsCertificate/subjectPublicKeyInfo', 'certificationRequestInfo/subjectPKInfo'] as $path) {
$keyinfo = $this->_subArray($this->currentCert, $path); $keyinfo = $this->_subArray($this->currentCert, $path);
if (!empty($keyinfo)) { if (!empty($keyinfo)) {
break; break;
@ -2021,9 +2021,9 @@ class X509
} }
} }
$filters = array(); $filters = [];
$filters['certificationRequestInfo']['subject']['rdnSequence']['value'] $filters['certificationRequestInfo']['subject']['rdnSequence']['value']
= array('type' => ASN1::TYPE_UTF8_STRING); = ['type' => ASN1::TYPE_UTF8_STRING];
ASN1::setFilters($filters); ASN1::setFilters($filters);
@ -2232,22 +2232,22 @@ class X509
return false; return false;
} }
$filters = array(); $filters = [];
$filters['tbsCertList']['issuer']['rdnSequence']['value'] $filters['tbsCertList']['issuer']['rdnSequence']['value']
= array('type' => ASN1::TYPE_UTF8_STRING); = ['type' => ASN1::TYPE_UTF8_STRING];
$filters['tbsCertList']['signature']['parameters'] $filters['tbsCertList']['signature']['parameters']
= array('type' => ASN1::TYPE_UTF8_STRING); = ['type' => ASN1::TYPE_UTF8_STRING];
$filters['signatureAlgorithm']['parameters'] $filters['signatureAlgorithm']['parameters']
= array('type' => ASN1::TYPE_UTF8_STRING); = ['type' => ASN1::TYPE_UTF8_STRING];
if (empty($crl['tbsCertList']['signature']['parameters'])) { if (empty($crl['tbsCertList']['signature']['parameters'])) {
$filters['tbsCertList']['signature']['parameters'] $filters['tbsCertList']['signature']['parameters']
= array('type' => ASN1::TYPE_NULL); = ['type' => ASN1::TYPE_NULL];
} }
if (empty($crl['signatureAlgorithm']['parameters'])) { if (empty($crl['signatureAlgorithm']['parameters'])) {
$filters['signatureAlgorithm']['parameters'] $filters['signatureAlgorithm']['parameters']
= array('type' => ASN1::TYPE_NULL); = ['type' => ASN1::TYPE_NULL];
} }
ASN1::setFilters($filters); ASN1::setFilters($filters);
@ -2288,9 +2288,9 @@ class X509
{ {
$year = @gmdate("Y", @strtotime($date)); // the same way ASN1.php parses this $year = @gmdate("Y", @strtotime($date)); // the same way ASN1.php parses this
if ($year < 2050) { if ($year < 2050) {
return array('utcTime' => $date); return ['utcTime' => $date];
} else { } else {
return array('generalTime' => $date); return ['generalTime' => $date];
} }
} }
@ -2364,23 +2364,23 @@ class X509
$this->serialNumber : $this->serialNumber :
new BigInteger(Random::string(20) & ("\x7F" . str_repeat("\xFF", 19)), 256); new BigInteger(Random::string(20) & ("\x7F" . str_repeat("\xFF", 19)), 256);
$this->currentCert = array( $this->currentCert = [
'tbsCertificate' => 'tbsCertificate' =>
array( array(
'version' => 'v3', 'version' => 'v3',
'serialNumber' => $serialNumber, // $this->setserialNumber() 'serialNumber' => $serialNumber, // $this->setserialNumber()
'signature' => array('algorithm' => $signatureAlgorithm), 'signature' => array('algorithm' => $signatureAlgorithm),
'issuer' => false, // this is going to be overwritten later 'issuer' => false, // this is going to be overwritten later
'validity' => array( 'validity' => [
'notBefore' => $this->_timeField($startDate), // $this->setStartDate() 'notBefore' => $this->_timeField($startDate), // $this->setStartDate()
'notAfter' => $this->_timeField($endDate) // $this->setEndDate() 'notAfter' => $this->_timeField($endDate) // $this->setEndDate()
), ],
'subject' => $subject->dn, 'subject' => $subject->dn,
'subjectPublicKeyInfo' => $subjectPublicKey 'subjectPublicKeyInfo' => $subjectPublicKey
), ),
'signatureAlgorithm' => array('algorithm' => $signatureAlgorithm), 'signatureAlgorithm' => ['algorithm' => $signatureAlgorithm],
'signature' => false // this is going to be overwritten later 'signature' => false // this is going to be overwritten later
); ];
// Copy extensions from CSR. // Copy extensions from CSR.
$csrexts = $subject->getAttribute('pkcs-9-at-extensionRequest', 0); $csrexts = $subject->getAttribute('pkcs-9-at-extensionRequest', 0);
@ -2393,14 +2393,14 @@ class X509
$this->currentCert['tbsCertificate']['issuer'] = $issuer->dn; $this->currentCert['tbsCertificate']['issuer'] = $issuer->dn;
if (isset($issuer->currentKeyIdentifier)) { if (isset($issuer->currentKeyIdentifier)) {
$this->setExtension('id-ce-authorityKeyIdentifier', array( $this->setExtension('id-ce-authorityKeyIdentifier', [
//'authorityCertIssuer' => array( //'authorityCertIssuer' => array(
// array( // array(
// 'directoryName' => $issuer->dn // 'directoryName' => $issuer->dn
// ) // )
//), //),
'keyIdentifier' => $issuer->currentKeyIdentifier 'keyIdentifier' => $issuer->currentKeyIdentifier
)); ]);
//$extensions = &$this->currentCert['tbsCertificate']['extensions']; //$extensions = &$this->currentCert['tbsCertificate']['extensions'];
//if (isset($issuer->serialNumber)) { //if (isset($issuer->serialNumber)) {
// $extensions[count($extensions) - 1]['authorityCertSerialNumber'] = $issuer->serialNumber; // $extensions[count($extensions) - 1]['authorityCertSerialNumber'] = $issuer->serialNumber;
@ -2412,16 +2412,16 @@ class X509
$this->setExtension('id-ce-subjectKeyIdentifier', $subject->currentKeyIdentifier); $this->setExtension('id-ce-subjectKeyIdentifier', $subject->currentKeyIdentifier);
} }
$altName = array(); $altName = [];
if (isset($subject->domains) && count($subject->domains) > 1) { if (isset($subject->domains) && count($subject->domains) > 1) {
$altName = array_map(array('X509', '_dnsName'), $subject->domains); $altName = array_map(['X509', '_dnsName'], $subject->domains);
} }
if (isset($subject->ipAddresses) && count($subject->ipAddresses)) { if (isset($subject->ipAddresses) && count($subject->ipAddresses)) {
// should an IP address appear as the CN if no domain name is specified? idk // should an IP address appear as the CN if no domain name is specified? idk
//$ips = count($subject->domains) ? $subject->ipAddresses : array_slice($subject->ipAddresses, 1); //$ips = count($subject->domains) ? $subject->ipAddresses : array_slice($subject->ipAddresses, 1);
$ipAddresses = array(); $ipAddresses = [];
foreach ($subject->ipAddresses as $ipAddress) { foreach ($subject->ipAddresses as $ipAddress) {
$encoded = $subject->_ipAddress($ipAddress); $encoded = $subject->_ipAddress($ipAddress);
if ($encoded !== false) { if ($encoded !== false) {
@ -2440,22 +2440,22 @@ class X509
if ($this->caFlag) { if ($this->caFlag) {
$keyUsage = $this->getExtension('id-ce-keyUsage'); $keyUsage = $this->getExtension('id-ce-keyUsage');
if (!$keyUsage) { if (!$keyUsage) {
$keyUsage = array(); $keyUsage = [];
} }
$this->setExtension( $this->setExtension(
'id-ce-keyUsage', 'id-ce-keyUsage',
array_values(array_unique(array_merge($keyUsage, array('cRLSign', 'keyCertSign')))) array_values(array_unique(array_merge($keyUsage, ['cRLSign', 'keyCertSign'])))
); );
$basicConstraints = $this->getExtension('id-ce-basicConstraints'); $basicConstraints = $this->getExtension('id-ce-basicConstraints');
if (!$basicConstraints) { if (!$basicConstraints) {
$basicConstraints = array(); $basicConstraints = [];
} }
$this->setExtension( $this->setExtension(
'id-ce-basicConstraints', 'id-ce-basicConstraints',
array_unique(array_merge(array('cA' => true), $basicConstraints)), array_unique(array_merge(['cA' => true], $basicConstraints)),
true true
); );
@ -2510,16 +2510,16 @@ class X509
} }
$this->currentCert['certificationRequestInfo']['subjectPKInfo'] = $publicKey; $this->currentCert['certificationRequestInfo']['subjectPKInfo'] = $publicKey;
} else { } else {
$this->currentCert = array( $this->currentCert = [
'certificationRequestInfo' => 'certificationRequestInfo' =>
array( [
'version' => 'v1', 'version' => 'v1',
'subject' => $this->dn, 'subject' => $this->dn,
'subjectPKInfo' => $publicKey 'subjectPKInfo' => $publicKey
), ],
'signatureAlgorithm' => array('algorithm' => $signatureAlgorithm), 'signatureAlgorithm' => ['algorithm' => $signatureAlgorithm],
'signature' => false // this is going to be overwritten later 'signature' => false // this is going to be overwritten later
); ];
} }
// resync $this->signatureSubject // resync $this->signatureSubject
@ -2571,9 +2571,9 @@ class X509
$this->currentCert['publicKeyAndChallenge']['challenge'] = $this->challenge & str_repeat("\x7F", strlen($this->challenge)); $this->currentCert['publicKeyAndChallenge']['challenge'] = $this->challenge & str_repeat("\x7F", strlen($this->challenge));
} }
} else { } else {
$this->currentCert = array( $this->currentCert = [
'publicKeyAndChallenge' => 'publicKeyAndChallenge' =>
array( [
'spki' => $publicKey, 'spki' => $publicKey,
// quoting <https://developer.mozilla.org/en-US/docs/Web/HTML/Element/keygen>, // quoting <https://developer.mozilla.org/en-US/docs/Web/HTML/Element/keygen>,
// "A challenge string that is submitted along with the public key. Defaults to an empty string if not specified." // "A challenge string that is submitted along with the public key. Defaults to an empty string if not specified."
@ -2581,10 +2581,10 @@ class X509
// we could alternatively do this instead if we ignored the specs: // we could alternatively do this instead if we ignored the specs:
// Random::string(8) & str_repeat("\x7F", 8) // Random::string(8) & str_repeat("\x7F", 8)
'challenge' => !empty($this->challenge) ? $this->challenge : '' 'challenge' => !empty($this->challenge) ? $this->challenge : ''
), ],
'signatureAlgorithm' => array('algorithm' => $signatureAlgorithm), 'signatureAlgorithm' => ['algorithm' => $signatureAlgorithm],
'signature' => false // this is going to be overwritten later 'signature' => false // this is going to be overwritten later
); ];
} }
// resync $this->signatureSubject // resync $this->signatureSubject
@ -2627,17 +2627,17 @@ class X509
$this->currentCert['tbsCertList']['signature']['algorithm'] = $signatureAlgorithm; $this->currentCert['tbsCertList']['signature']['algorithm'] = $signatureAlgorithm;
$this->currentCert['signatureAlgorithm']['algorithm'] = $signatureAlgorithm; $this->currentCert['signatureAlgorithm']['algorithm'] = $signatureAlgorithm;
} else { } else {
$this->currentCert = array( $this->currentCert = [
'tbsCertList' => 'tbsCertList' =>
array( [
'version' => 'v2', 'version' => 'v2',
'signature' => array('algorithm' => $signatureAlgorithm), 'signature' => ['algorithm' => $signatureAlgorithm],
'issuer' => false, // this is going to be overwritten later 'issuer' => false, // this is going to be overwritten later
'thisUpdate' => $this->_timeField($thisUpdate) // $this->setStartDate() 'thisUpdate' => $this->_timeField($thisUpdate) // $this->setStartDate()
), ],
'signatureAlgorithm' => array('algorithm' => $signatureAlgorithm), 'signatureAlgorithm' => ['algorithm' => $signatureAlgorithm],
'signature' => false // this is going to be overwritten later 'signature' => false // this is going to be overwritten later
); ];
} }
$tbsCertList = &$this->currentCert['tbsCertList']; $tbsCertList = &$this->currentCert['tbsCertList'];
@ -2690,14 +2690,14 @@ class X509
} }
if (isset($issuer->currentKeyIdentifier)) { if (isset($issuer->currentKeyIdentifier)) {
$this->setExtension('id-ce-authorityKeyIdentifier', array( $this->setExtension('id-ce-authorityKeyIdentifier', [
//'authorityCertIssuer' => array( //'authorityCertIssuer' => array(
// array( // ]
// 'directoryName' => $issuer->dn // 'directoryName' => $issuer->dn
// ) // ]
//), //),
'keyIdentifier' => $issuer->currentKeyIdentifier 'keyIdentifier' => $issuer->currentKeyIdentifier
)); ]);
//$extensions = &$tbsCertList['crlExtensions']; //$extensions = &$tbsCertList['crlExtensions'];
//if (isset($issuer->serialNumber)) { //if (isset($issuer->serialNumber)) {
// $extensions[count($extensions) - 1]['authorityCertSerialNumber'] = $issuer->serialNumber; // $extensions[count($extensions) - 1]['authorityCertSerialNumber'] = $issuer->serialNumber;
@ -2881,7 +2881,7 @@ class X509
return $false; return $false;
} }
$root[$i] = array(); $root[$i] = [];
} }
$root = &$root[$i]; $root = &$root[$i];
@ -2917,7 +2917,7 @@ class X509
return $false; return $false;
} }
$root[$i] = array(); $root[$i] = [];
} }
$root = &$root[$i]; $root = &$root[$i];
@ -2964,7 +2964,7 @@ class X509
} }
if ($create) { if ($create) {
$key = count($attributes); $key = count($attributes);
$attributes[] = array('type' => 'pkcs-9-at-extensionRequest', 'value' => array()); $attributes[] = ['type' => 'pkcs-9-at-extensionRequest', 'value' => []];
$path = "$pth/$key/value/0"; $path = "$pth/$key/value/0";
} }
} }
@ -3048,7 +3048,7 @@ class X509
function _getExtensions($cert = null, $path = null) function _getExtensions($cert = null, $path = null)
{ {
$exts = $this->_extensions($cert, $path); $exts = $this->_extensions($cert, $path);
$extensions = array(); $extensions = [];
if (is_array($exts)) { if (is_array($exts)) {
foreach ($exts as $extension) { foreach ($exts as $extension) {
@ -3078,7 +3078,7 @@ class X509
return false; return false;
} }
$newext = array('extnId' => $id, 'critical' => $critical, 'extnValue' => $value); $newext = ['extnId' => $id, 'critical' => $critical, 'extnValue' => $value];
foreach ($extensions as $key => $value) { foreach ($extensions as $key => $value) {
if ($value['extnId'] == $id) { if ($value['extnId'] == $id) {
@ -3255,7 +3255,7 @@ class X509
} }
$attributes = $this->_subArray($csr, 'certificationRequestInfo/attributes'); $attributes = $this->_subArray($csr, 'certificationRequestInfo/attributes');
$attrs = array(); $attrs = [];
if (is_array($attributes)) { if (is_array($attributes)) {
foreach ($attributes as $attribute) { foreach ($attributes as $attribute) {
@ -3315,7 +3315,7 @@ class X509
$attributes[$last]['value'][] = $value; $attributes[$last]['value'][] = $value;
break; break;
default: default:
$attributes[] = array('type' => $id, 'value' => $disposition == self::ATTR_ALL ? $value: array($value)); $attributes[] = ['type' => $id, 'value' => $disposition == self::ATTR_ALL ? $value: [$value]];
break; break;
} }
@ -3378,7 +3378,7 @@ class X509
if (empty($decoded)) { if (empty($decoded)) {
return false; return false;
} }
$raw = ASN1::asn1map($decoded[0], array('type' => ASN1::TYPE_BIT_STRING)); $raw = ASN1::asn1map($decoded[0], ['type' => ASN1::TYPE_BIT_STRING]);
if (empty($raw)) { if (empty($raw)) {
return false; return false;
} }
@ -3435,10 +3435,10 @@ class X509
// the following two return statements do the same thing. i dunno.. i just prefer the later for some reason. // the following two return statements do the same thing. i dunno.. i just prefer the later for some reason.
// the former is a good example of how to do fuzzing on the public key // the former is a good example of how to do fuzzing on the public key
//return new Element(preg_replace('#-.+-|[\r\n]#', '', $this->publicKey->getPublicKey())); //return new Element(preg_replace('#-.+-|[\r\n]#', '', $this->publicKey->getPublicKey()));
return array( return [
'algorithm' => array('algorithm' => 'rsaEncryption'), 'algorithm' => array('algorithm' => 'rsaEncryption'),
'subjectPublicKey' => $this->publicKey->getPublicKey('PKCS1') 'subjectPublicKey' => $this->publicKey->getPublicKey('PKCS1')
); ];
} }
return false; return false;
@ -3483,7 +3483,7 @@ class X509
*/ */
function _dnsName($domain) function _dnsName($domain)
{ {
return array('dNSName' => $domain); return ['dNSName' => $domain];
} }
/** /**
@ -3497,7 +3497,7 @@ class X509
*/ */
function _iPAddress($address) function _iPAddress($address)
{ {
return array('iPAddress' => $address); return ['iPAddress' => $address];
} }
/** /**
@ -3524,8 +3524,8 @@ class X509
} }
$i = count($rclist); $i = count($rclist);
$rclist[] = array('userCertificate' => $serial, $rclist[] = ['userCertificate' => $serial,
'revocationDate' => $this->_timeField(@date('D, d M Y H:i:s O'))); 'revocationDate' => $this->_timeField(@date('D, d M Y H:i:s O'))];
return $i; return $i;
} }
@ -3611,7 +3611,7 @@ class X509
return false; return false;
} }
$result = array(); $result = [];
if (is_array($rclist = $this->_subArray($crl, 'tbsCertList/revokedCertificates'))) { if (is_array($rclist = $this->_subArray($crl, 'tbsCertList/revokedCertificates'))) {
foreach ($rclist as $rc) { foreach ($rclist as $rc) {

View File

@ -20,7 +20,7 @@
* base is being used should more than compensate. * base is being used should more than compensate.
* *
* Numbers are stored in {@link http://en.wikipedia.org/wiki/Endianness little endian} format. ie. * Numbers are stored in {@link http://en.wikipedia.org/wiki/Endianness little endian} format. ie.
* (new \phpseclib\Math\BigInteger(pow(2, 26)))->value = array(0, 1) * (new \phpseclib\Math\BigInteger(pow(2, 26)))->value = [0, 1]
* *
* Useful resources are as follows: * Useful resources are as follows:
* *
@ -313,7 +313,7 @@ class BigInteger
$this->value = '0'; $this->value = '0';
break; break;
default: default:
$this->value = array(); $this->value = [];
} }
// '0' counts as empty() but when the base is 256 '0' is equal to ord('0') or 48 // '0' counts as empty() but when the base is 256 '0' is equal to ord('0') or 48
@ -423,7 +423,7 @@ class BigInteger
$temp = new static(); $temp = new static();
$multiplier = new static(); $multiplier = new static();
$multiplier->value = array(self::$max10); $multiplier->value = [self::$max10];
if ($x[0] == '-') { if ($x[0] == '-') {
$this->is_negative = true; $this->is_negative = true;
@ -665,7 +665,7 @@ class BigInteger
$temp->is_negative = false; $temp->is_negative = false;
$divisor = new static(); $divisor = new static();
$divisor->value = array(self::$max10); $divisor->value = [self::$max10];
$result = ''; $result = '';
while (count($temp->value)) { while (count($temp->value)) {
list($temp, $mod) = $temp->divide($divisor); list($temp, $mod) = $temp->divide($divisor);
@ -708,7 +708,7 @@ class BigInteger
function __sleep() function __sleep()
{ {
$this->hex = $this->toHex(true); $this->hex = $this->toHex(true);
$vars = array('hex'); $vars = ['hex'];
if ($this->precision > 0) { if ($this->precision > 0) {
$vars[] = 'precision'; $vars[] = 'precision';
} }
@ -743,7 +743,7 @@ class BigInteger
*/ */
function __debugInfo() function __debugInfo()
{ {
$opts = array(); $opts = [];
switch (MATH_BIGINTEGER_MODE) { switch (MATH_BIGINTEGER_MODE) {
case self::MODE_GMP: case self::MODE_GMP:
$engine = 'gmp'; $engine = 'gmp';
@ -761,10 +761,10 @@ class BigInteger
if (!empty($opts)) { if (!empty($opts)) {
$engine.= ' (' . implode($opts, ', ') . ')'; $engine.= ' (' . implode($opts, ', ') . ')';
} }
return array( return [
'value' => '0x' . $this->toHex(true), 'value' => '0x' . $this->toHex(true),
'engine' => $engine 'engine' => $engine
); ];
} }
/** /**
@ -827,24 +827,24 @@ class BigInteger
$y_size = count($y_value); $y_size = count($y_value);
if ($x_size == 0) { if ($x_size == 0) {
return array( return [
self::VALUE => $y_value, self::VALUE => $y_value,
self::SIGN => $y_negative self::SIGN => $y_negative
); ];
} elseif ($y_size == 0) { } elseif ($y_size == 0) {
return array( return [
self::VALUE => $x_value, self::VALUE => $x_value,
self::SIGN => $x_negative self::SIGN => $x_negative
); ];
} }
// subtract, if appropriate // subtract, if appropriate
if ($x_negative != $y_negative) { if ($x_negative != $y_negative) {
if ($x_value == $y_value) { if ($x_value == $y_value) {
return array( return [
self::VALUE => array(), self::VALUE => array(),
self::SIGN => false self::SIGN => false
); ];
} }
$temp = self::_subtract($x_value, false, $y_value, false); $temp = self::_subtract($x_value, false, $y_value, false);
@ -890,10 +890,10 @@ class BigInteger
++$value[$i]; ++$value[$i];
} }
return array( return [
self::VALUE => self::_trim($value), self::VALUE => self::_trim($value),
self::SIGN => $x_negative self::SIGN => $x_negative
); ];
} }
/** /**
@ -956,15 +956,15 @@ class BigInteger
$y_size = count($y_value); $y_size = count($y_value);
if ($x_size == 0) { if ($x_size == 0) {
return array( return [
self::VALUE => $y_value, self::VALUE => $y_value,
self::SIGN => !$y_negative self::SIGN => !$y_negative
); ];
} elseif ($y_size == 0) { } elseif ($y_size == 0) {
return array( return [
self::VALUE => $x_value, self::VALUE => $x_value,
self::SIGN => $x_negative self::SIGN => $x_negative
); ];
} }
// add, if appropriate (ie. -$x - +$y or +$x - -$y) // add, if appropriate (ie. -$x - +$y or +$x - -$y)
@ -978,10 +978,10 @@ class BigInteger
$diff = self::_compare($x_value, $x_negative, $y_value, $y_negative); $diff = self::_compare($x_value, $x_negative, $y_value, $y_negative);
if (!$diff) { if (!$diff) {
return array( return [
self::VALUE => array(), self::VALUE => [],
self::SIGN => false self::SIGN => false
); ];
} }
// switch $x and $y around, if appropriate. // switch $x and $y around, if appropriate.
@ -1024,10 +1024,10 @@ class BigInteger
--$x_value[$i]; --$x_value[$i];
} }
return array( return [
self::VALUE => self::_trim($x_value), self::VALUE => self::_trim($x_value),
self::SIGN => $x_negative self::SIGN => $x_negative
); ];
} }
/** /**
@ -1086,28 +1086,28 @@ class BigInteger
static function _multiply($x_value, $x_negative, $y_value, $y_negative) static function _multiply($x_value, $x_negative, $y_value, $y_negative)
{ {
//if ( $x_value == $y_value ) { //if ( $x_value == $y_value ) {
// return array( // return [
// self::VALUE => $this->_square($x_value), // self::VALUE => $this->_square($x_value),
// self::SIGN => $x_sign != $y_value // self::SIGN => $x_sign != $y_value
// ); // ];
//} //}
$x_length = count($x_value); $x_length = count($x_value);
$y_length = count($y_value); $y_length = count($y_value);
if (!$x_length || !$y_length) { // a 0 is being multiplied if (!$x_length || !$y_length) { // a 0 is being multiplied
return array( return [
self::VALUE => array(), self::VALUE => [],
self::SIGN => false self::SIGN => false
); ];
} }
return array( return [
self::VALUE => min($x_length, $y_length) < 2 * self::KARATSUBA_CUTOFF ? self::VALUE => min($x_length, $y_length) < 2 * self::KARATSUBA_CUTOFF ?
self::_trim(self::_regularMultiply($x_value, $y_value)) : self::_trim(self::_regularMultiply($x_value, $y_value)) :
self::_trim(self::_karatsuba($x_value, $y_value)), self::_trim(self::_karatsuba($x_value, $y_value)),
self::SIGN => $x_negative != $y_negative self::SIGN => $x_negative != $y_negative
); ];
} }
/** /**
@ -1126,7 +1126,7 @@ class BigInteger
$y_length = count($y_value); $y_length = count($y_value);
if (!$x_length || !$y_length) { // a 0 is being multiplied if (!$x_length || !$y_length) { // a 0 is being multiplied
return array(); return [];
} }
if ($x_length < $y_length) { if ($x_length < $y_length) {
@ -1243,7 +1243,7 @@ class BigInteger
static function _baseSquare($value) static function _baseSquare($value)
{ {
if (empty($value)) { if (empty($value)) {
return array(); return [];
} }
$square_value = self::_array_repeat(0, 2 * count($value)); $square_value = self::_array_repeat(0, 2 * count($value));
@ -1347,7 +1347,7 @@ class BigInteger
$remainder->value = gmp_add($remainder->value, gmp_abs($y->value)); $remainder->value = gmp_add($remainder->value, gmp_abs($y->value));
} }
return array($this->_normalize($quotient), $this->_normalize($remainder)); return [$this->_normalize($quotient), $this->_normalize($remainder)];
case self::MODE_BCMATH: case self::MODE_BCMATH:
$quotient = new static(); $quotient = new static();
$remainder = new static(); $remainder = new static();
@ -1359,7 +1359,7 @@ class BigInteger
$remainder->value = bcadd($remainder->value, $y->value[0] == '-' ? substr($y->value, 1) : $y->value, 0); $remainder->value = bcadd($remainder->value, $y->value[0] == '-' ? substr($y->value, 1) : $y->value, 0);
} }
return array($this->_normalize($quotient), $this->_normalize($remainder)); return [$this->_normalize($quotient), $this->_normalize($remainder)];
} }
if (count($y->value) == 1) { if (count($y->value) == 1) {
@ -1367,9 +1367,9 @@ class BigInteger
$quotient = new static(); $quotient = new static();
$remainder = new static(); $remainder = new static();
$quotient->value = $q; $quotient->value = $q;
$remainder->value = array($r); $remainder->value = [$r];
$quotient->is_negative = $this->is_negative != $y->is_negative; $quotient->is_negative = $this->is_negative != $y->is_negative;
return array($this->_normalize($quotient), $this->_normalize($remainder)); return [$this->_normalize($quotient), $this->_normalize($remainder)];
} }
static $zero; static $zero;
@ -1389,9 +1389,9 @@ class BigInteger
if (!$diff) { if (!$diff) {
$temp = new static(); $temp = new static();
$temp->value = array(1); $temp->value = [1];
$temp->is_negative = $x_sign != $y_sign; $temp->is_negative = $x_sign != $y_sign;
return array($this->_normalize($temp), $this->_normalize(new static())); return [$this->_normalize($temp), $this->_normalize(new static())];
} }
if ($diff < 0) { if ($diff < 0) {
@ -1399,7 +1399,7 @@ class BigInteger
if ($x_sign) { if ($x_sign) {
$x = $y->subtract($x); $x = $y->subtract($x);
} }
return array($this->_normalize(new static()), $this->_normalize($x)); return [$this->_normalize(new static()), $this->_normalize($x)];
} }
// normalize $x and $y as described in HAC 14.23 / 14.24 // normalize $x and $y as described in HAC 14.23 / 14.24
@ -1439,15 +1439,15 @@ class BigInteger
for ($i = $x_max; $i >= $y_max + 1; --$i) { for ($i = $x_max; $i >= $y_max + 1; --$i) {
$x_value = &$x->value; $x_value = &$x->value;
$x_window = array( $x_window = [
isset($x_value[$i]) ? $x_value[$i] : 0, isset($x_value[$i]) ? $x_value[$i] : 0,
isset($x_value[$i - 1]) ? $x_value[$i - 1] : 0, isset($x_value[$i - 1]) ? $x_value[$i - 1] : 0,
isset($x_value[$i - 2]) ? $x_value[$i - 2] : 0 isset($x_value[$i - 2]) ? $x_value[$i - 2] : 0
); ];
$y_window = array( $y_window = [
$y_value[$y_max], $y_value[$y_max],
($y_max > 0) ? $y_value[$y_max - 1] : 0 ($y_max > 0) ? $y_value[$y_max - 1] : 0
); ];
$q_index = $i - $y_max - 1; $q_index = $i - $y_max - 1;
if ($x_window[0] == $y_window[0]) { if ($x_window[0] == $y_window[0]) {
@ -1459,22 +1459,22 @@ class BigInteger
); );
} }
$temp_value = array($y_window[1], $y_window[0]); $temp_value = [$y_window[1], $y_window[0]];
$lhs->value = array($quotient_value[$q_index]); $lhs->value = [$quotient_value[$q_index]];
$lhs = $lhs->multiply($temp); $lhs = $lhs->multiply($temp);
$rhs_value = array($x_window[2], $x_window[1], $x_window[0]); $rhs_value = [$x_window[2], $x_window[1], $x_window[0]];
while ($lhs->compare($rhs) > 0) { while ($lhs->compare($rhs) > 0) {
--$quotient_value[$q_index]; --$quotient_value[$q_index];
$lhs->value = array($quotient_value[$q_index]); $lhs->value = [$quotient_value[$q_index]];
$lhs = $lhs->multiply($temp); $lhs = $lhs->multiply($temp);
} }
$adjust = $this->_array_repeat(0, $q_index); $adjust = $this->_array_repeat(0, $q_index);
$temp_value = array($quotient_value[$q_index]); $temp_value = [$quotient_value[$q_index]];
$temp = $temp->multiply($y); $temp = $temp->multiply($y);
$temp_value = &$temp->value; $temp_value = &$temp->value;
$temp_value = array_merge($adjust, $temp_value); $temp_value = array_merge($adjust, $temp_value);
@ -1502,7 +1502,7 @@ class BigInteger
$x = $y->subtract($x); $x = $y->subtract($x);
} }
return array($this->_normalize($quotient), $this->_normalize($x)); return [$this->_normalize($quotient), $this->_normalize($x)];
} }
/** /**
@ -1518,7 +1518,7 @@ class BigInteger
static function _divide_digit($dividend, $divisor) static function _divide_digit($dividend, $divisor)
{ {
$carry = 0; $carry = 0;
$result = array(); $result = [];
for ($i = count($dividend) - 1; $i >= 0; --$i) { for ($i = count($dividend) - 1; $i >= 0; --$i) {
$temp = self::$baseFull * $carry + $dividend[$i]; $temp = self::$baseFull * $carry + $dividend[$i];
@ -1526,7 +1526,7 @@ class BigInteger
$carry = (int) ($temp - $divisor * $result[$i]); $carry = (int) ($temp - $divisor * $result[$i]);
} }
return array($result, $carry); return [$result, $carry];
} }
/** /**
@ -1597,15 +1597,15 @@ class BigInteger
} }
if (defined('MATH_BIGINTEGER_OPENSSL_ENABLED')) { if (defined('MATH_BIGINTEGER_OPENSSL_ENABLED')) {
$components = array( $components = [
'modulus' => $n->toBytes(true), 'modulus' => $n->toBytes(true),
'publicExponent' => $e->toBytes(true) 'publicExponent' => $e->toBytes(true)
); ];
$components = array( $components = [
'modulus' => pack('Ca*a*', 2, ASN1::encodeLength(strlen($components['modulus'])), $components['modulus']), 'modulus' => pack('Ca*a*', 2, ASN1::encodeLength(strlen($components['modulus'])), $components['modulus']),
'publicExponent' => pack('Ca*a*', 2, ASN1::encodeLength(strlen($components['publicExponent'])), $components['publicExponent']) 'publicExponent' => pack('Ca*a*', 2, ASN1::encodeLength(strlen($components['publicExponent'])), $components['publicExponent'])
); ];
$RSAPublicKey = pack( $RSAPublicKey = pack(
'Ca*a*a*', 'Ca*a*a*',
@ -1646,16 +1646,16 @@ class BigInteger
if (empty($e->value)) { if (empty($e->value)) {
$temp = new static(); $temp = new static();
$temp->value = array(1); $temp->value = [1];
return $this->_normalize($temp); return $this->_normalize($temp);
} }
if ($e->value == array(1)) { if ($e->value == [1]) {
list(, $temp) = $this->divide($n); list(, $temp) = $this->divide($n);
return $this->_normalize($temp); return $this->_normalize($temp);
} }
if ($e->value == array(2)) { if ($e->value == [2]) {
$temp = new static(); $temp = new static();
$temp->value = self::_square($this->value); $temp->value = self::_square($this->value);
list(, $temp) = $temp->divide($n); list(, $temp) = $temp->divide($n);
@ -1689,10 +1689,10 @@ class BigInteger
$mod1 = clone $n; $mod1 = clone $n;
$mod1->_rshift($j); $mod1->_rshift($j);
$mod2 = new static(); $mod2 = new static();
$mod2->value = array(1); $mod2->value = [1];
$mod2->_lshift($j); $mod2->_lshift($j);
$part1 = ($mod1->value != array(1)) ? $this->_slidingWindow($e, $mod1, self::MONTGOMERY) : new static(); $part1 = ($mod1->value != [1]) ? $this->_slidingWindow($e, $mod1, self::MONTGOMERY) : new static();
$part2 = $this->_slidingWindow($e, $mod2, self::POWEROF2); $part2 = $this->_slidingWindow($e, $mod2, self::POWEROF2);
$y1 = $mod2->modInverse($mod1); $y1 = $mod2->modInverse($mod1);
@ -1741,8 +1741,8 @@ class BigInteger
*/ */
function _slidingWindow($e, $n, $mode) function _slidingWindow($e, $n, $mode)
{ {
static $window_ranges = array(7, 25, 81, 241, 673, 1793); // from BigInteger.java's oddModPow function static $window_ranges = [7, 25, 81, 241, 673, 1793]; // from BigInteger.java's oddModPow function
//static $window_ranges = array(0, 7, 36, 140, 450, 1303, 3529); // from MPM 7.3.1 //static $window_ranges = [0, 7, 36, 140, 450, 1303, 3529]; // from MPM 7.3.1
$e_value = $e->value; $e_value = $e->value;
$e_length = count($e_value) - 1; $e_length = count($e_value) - 1;
@ -1761,7 +1761,7 @@ class BigInteger
$n_value = $n->value; $n_value = $n->value;
// precompute $this^0 through $this^$window_size // precompute $this^0 through $this^$window_size
$powers = array(); $powers = [];
$powers[1] = self::_prepareReduce($this->value, $n_value, $mode); $powers[1] = self::_prepareReduce($this->value, $n_value, $mode);
$powers[2] = self::_squareReduce($powers[1], $n_value, $mode); $powers[2] = self::_squareReduce($powers[1], $n_value, $mode);
@ -1773,7 +1773,7 @@ class BigInteger
$powers[$i2 + 1] = self::_multiplyReduce($powers[$i2 - 1], $powers[2], $n_value, $mode); $powers[$i2 + 1] = self::_multiplyReduce($powers[$i2 - 1], $powers[2], $n_value, $mode);
} }
$result = array(1); $result = [1];
$result = self::_prepareReduce($result, $n_value, $mode); $result = self::_prepareReduce($result, $n_value, $mode);
for ($i = 0; $i < $e_length;) { for ($i = 0; $i < $e_length;) {
@ -1913,7 +1913,7 @@ class BigInteger
function _mod2($n) function _mod2($n)
{ {
$temp = new static(); $temp = new static();
$temp->value = array(1); $temp->value = [1];
return $this->bitwise_and($n->subtract($temp)); return $this->bitwise_and($n->subtract($temp));
} }
@ -1943,10 +1943,10 @@ class BigInteger
*/ */
static function _barrett($n, $m) static function _barrett($n, $m)
{ {
static $cache = array( static $cache = [
self::VARIABLE => array(), self::VARIABLE => [],
self::DATA => array() self::DATA => []
); ];
$m_length = count($m); $m_length = count($m);
@ -1982,10 +1982,10 @@ class BigInteger
$u = $u->value; $u = $u->value;
$m1 = $m1->value; $m1 = $m1->value;
$cache[self::DATA][] = array( $cache[self::DATA][] = [
'u' => $u, // m.length >> 1 (technically (m.length >> 1) + 1) 'u' => $u, // m.length >> 1 (technically (m.length >> 1) + 1)
'm1'=> $m1 // m.length 'm1'=> $m1 // m.length
); ];
} else { } else {
extract($cache[self::DATA][$key]); extract($cache[self::DATA][$key]);
} }
@ -2040,10 +2040,10 @@ class BigInteger
*/ */
static function _regularBarrett($x, $n) static function _regularBarrett($x, $n)
{ {
static $cache = array( static $cache = [
self::VARIABLE => array(), self::VARIABLE => [],
self::DATA => array() self::DATA => []
); ];
$n_length = count($n); $n_length = count($n);
@ -2118,10 +2118,10 @@ class BigInteger
$y_length = count($y_value); $y_length = count($y_value);
if (!$x_length || !$y_length) { // a 0 is being multiplied if (!$x_length || !$y_length) { // a 0 is being multiplied
return array( return [
self::VALUE => array(), self::VALUE => [],
self::SIGN => false self::SIGN => false
); ];
} }
if ($x_length < $y_length) { if ($x_length < $y_length) {
@ -2170,10 +2170,10 @@ class BigInteger
} }
} }
return array( return [
self::VALUE => self::_trim($product_value), self::VALUE => self::_trim($product_value),
self::SIGN => $x_negative != $y_negative self::SIGN => $x_negative != $y_negative
); ];
} }
/** /**
@ -2193,10 +2193,10 @@ class BigInteger
*/ */
static function _montgomery($x, $n) static function _montgomery($x, $n)
{ {
static $cache = array( static $cache = [
self::VARIABLE => array(), self::VARIABLE => [],
self::DATA => array() self::DATA => []
); ];
if (($key = array_search($n, $cache[self::VARIABLE])) === false) { if (($key = array_search($n, $cache[self::VARIABLE])) === false) {
$key = count($cache[self::VARIABLE]); $key = count($cache[self::VARIABLE]);
@ -2206,12 +2206,12 @@ class BigInteger
$k = count($n); $k = count($n);
$result = array(self::VALUE => $x); $result = [self::VALUE => $x];
for ($i = 0; $i < $k; ++$i) { for ($i = 0; $i < $k; ++$i) {
$temp = $result[self::VALUE][$i] * $cache[self::DATA][$key]; $temp = $result[self::VALUE][$i] * $cache[self::DATA][$key];
$temp = $temp - self::$baseFull * (self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31)); $temp = $temp - self::$baseFull * (self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31));
$temp = self::_regularMultiply(array($temp), $n); $temp = self::_regularMultiply([$temp], $n);
$temp = array_merge($this->_array_repeat(0, $i), $temp); $temp = array_merge($this->_array_repeat(0, $i), $temp);
$result = self::_add($result[self::VALUE], false, $temp, false); $result = self::_add($result[self::VALUE], false, $temp, false);
} }
@ -2249,10 +2249,10 @@ class BigInteger
// perform better under different circumstances. in lieu of deleting it it's just been // perform better under different circumstances. in lieu of deleting it it's just been
// made uncallable // made uncallable
static $cache = array( static $cache = [
self::VARIABLE => array(), self::VARIABLE => [],
self::DATA => array() self::DATA => []
); ];
if (($key = array_search($m, $cache[self::VARIABLE])) === false) { if (($key = array_search($m, $cache[self::VARIABLE])) === false) {
$key = count($cache[self::VARIABLE]); $key = count($cache[self::VARIABLE]);
@ -2264,13 +2264,13 @@ class BigInteger
$x = array_pad($x, $n, 0); $x = array_pad($x, $n, 0);
$y = array_pad($y, $n, 0); $y = array_pad($y, $n, 0);
$m = array_pad($m, $n, 0); $m = array_pad($m, $n, 0);
$a = array(self::VALUE => self::_array_repeat(0, $n + 1)); $a = [self::VALUE => self::_array_repeat(0, $n + 1)];
for ($i = 0; $i < $n; ++$i) { for ($i = 0; $i < $n; ++$i) {
$temp = $a[self::VALUE][0] + $x[$i] * $y[0]; $temp = $a[self::VALUE][0] + $x[$i] * $y[0];
$temp = $temp - self::$baseFull * (self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31)); $temp = $temp - self::$baseFull * (self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31));
$temp = $temp * $cache[self::DATA][$key]; $temp = $temp * $cache[self::DATA][$key];
$temp = $temp - self::$baseFull * (self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31)); $temp = $temp - self::$baseFull * (self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31));
$temp = self::_add(self::_regularMultiply(array($x[$i]), $y), false, self::_regularMultiply(array($temp), $m), false); $temp = self::_add(self::_regularMultiply([$x[$i]], $y), false, self::_regularMultiply([$temp], $m), false);
$a = self::_add($a[self::VALUE], false, $temp[self::VALUE], false); $a = self::_add($a[self::VALUE], false, $temp[self::VALUE], false);
$a[self::VALUE] = array_slice($a[self::VALUE], 1); $a[self::VALUE] = array_slice($a[self::VALUE], 1);
} }
@ -2435,11 +2435,11 @@ class BigInteger
case self::MODE_GMP: case self::MODE_GMP:
extract(gmp_gcdext($this->value, $n->value)); extract(gmp_gcdext($this->value, $n->value));
return array( return [
'gcd' => $this->_normalize(new static($g)), 'gcd' => $this->_normalize(new static($g)),
'x' => $this->_normalize(new static($s)), 'x' => $this->_normalize(new static($s)),
'y' => $this->_normalize(new static($t)) 'y' => $this->_normalize(new static($t))
); ];
case self::MODE_BCMATH: case self::MODE_BCMATH:
// it might be faster to use the binary xGCD algorithim here, as well, but (1) that algorithim works // it might be faster to use the binary xGCD algorithim here, as well, but (1) that algorithim works
// best when the base is a power of 2 and (2) i don't think it'd make much difference, anyway. as is, // best when the base is a power of 2 and (2) i don't think it'd make much difference, anyway. as is,
@ -2469,17 +2469,17 @@ class BigInteger
$d = bcsub($temp, bcmul($b, $q, 0), 0); $d = bcsub($temp, bcmul($b, $q, 0), 0);
} }
return array( return [
'gcd' => $this->_normalize(new static($u)), 'gcd' => $this->_normalize(new static($u)),
'x' => $this->_normalize(new static($a)), 'x' => $this->_normalize(new static($a)),
'y' => $this->_normalize(new static($b)) 'y' => $this->_normalize(new static($b))
); ];
} }
$y = clone $n; $y = clone $n;
$x = clone $this; $x = clone $this;
$g = new static(); $g = new static();
$g->value = array(1); $g->value = [1];
while (!(($x->value[0] & 1)|| ($y->value[0] & 1))) { while (!(($x->value[0] & 1)|| ($y->value[0] & 1))) {
$x->_rshift(1); $x->_rshift(1);
@ -2495,8 +2495,8 @@ class BigInteger
$c = new static(); $c = new static();
$d = new static(); $d = new static();
$a->value = $d->value = $g->value = array(1); $a->value = $d->value = $g->value = [1];
$b->value = $c->value = array(); $b->value = $c->value = [];
while (!empty($u->value)) { while (!empty($u->value)) {
while (!($u->value[0] & 1)) { while (!($u->value[0] & 1)) {
@ -2530,11 +2530,11 @@ class BigInteger
} }
} }
return array( return [
'gcd' => $this->_normalize($g->multiply($v)), 'gcd' => $this->_normalize($g->multiply($v)),
'x' => $this->_normalize($c), 'x' => $this->_normalize($c),
'y' => $this->_normalize($d) 'y' => $this->_normalize($d)
); ];
} }
/** /**
@ -3029,10 +3029,10 @@ class BigInteger
} else { } else {
$min[0] = chr(0x80); $min[0] = chr(0x80);
} }
return array( return [
'min' => new static($min, 256), 'min' => new static($min, 256),
'max' => new static($max, 256) 'max' => new static($max, 256)
); ];
} }
/** /**
@ -3295,7 +3295,7 @@ class BigInteger
} }
break; break;
default: default:
if ($this->value == array(2)) { if ($this->value == [2]) {
return true; return true;
} }
if (~$this->value[0] & 1) { if (~$this->value[0] & 1) {
@ -3306,7 +3306,7 @@ class BigInteger
static $primes, $zero, $one, $two; static $primes, $zero, $one, $two;
if (!isset($primes)) { if (!isset($primes)) {
$primes = array( $primes = [
3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59,
61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137,
139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227,
@ -3318,7 +3318,7 @@ class BigInteger
733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829,
839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947,
953, 967, 971, 977, 983, 991, 997 953, 967, 971, 977, 983, 991, 997
); ];
if (MATH_BIGINTEGER_MODE != self::MODE_INTERNAL) { if (MATH_BIGINTEGER_MODE != self::MODE_INTERNAL) {
for ($i = 0; $i < count($primes); ++$i) { for ($i = 0; $i < count($primes); ++$i) {
@ -3550,7 +3550,7 @@ class BigInteger
*/ */
static function _array_repeat($input, $multiplier) static function _array_repeat($input, $multiplier)
{ {
return ($multiplier) ? array_fill(0, $multiplier, $input) : array(); return ($multiplier) ? array_fill(0, $multiplier, $input) : [];
} }
/** /**

View File

@ -96,7 +96,7 @@ class SFTP extends SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $packet_types = array(); var $packet_types = [];
/** /**
* Status Codes * Status Codes
@ -105,7 +105,7 @@ class SFTP extends SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $status_codes = array(); var $status_codes = [];
/** /**
* The Request ID * The Request ID
@ -147,7 +147,7 @@ class SFTP extends SSH2
* @see self::_initChannel() * @see self::_initChannel()
* @access private * @access private
*/ */
var $extensions = array(); var $extensions = [];
/** /**
* Server SFTP version * Server SFTP version
@ -175,7 +175,7 @@ class SFTP extends SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $packet_type_log = array(); var $packet_type_log = [];
/** /**
* Packet Log * Packet Log
@ -184,7 +184,7 @@ class SFTP extends SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $packet_log = array(); var $packet_log = [];
/** /**
* Error information * Error information
@ -194,7 +194,7 @@ class SFTP extends SSH2
* @var string * @var string
* @access private * @access private
*/ */
var $sftp_errors = array(); var $sftp_errors = [];
/** /**
* Stat Cache * Stat Cache
@ -208,7 +208,7 @@ class SFTP extends SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $stat_cache = array(); var $stat_cache = [];
/** /**
* Max SFTP Packet Size * Max SFTP Packet Size
@ -238,7 +238,7 @@ class SFTP extends SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $sortOptions = array(); var $sortOptions = [];
/** /**
* Default Constructor. * Default Constructor.
@ -257,7 +257,7 @@ class SFTP extends SSH2
$this->max_sftp_packet = 1 << 15; $this->max_sftp_packet = 1 << 15;
$this->packet_types = array( $this->packet_types = [
1 => 'NET_SFTP_INIT', 1 => 'NET_SFTP_INIT',
2 => 'NET_SFTP_VERSION', 2 => 'NET_SFTP_VERSION',
/* the format of SSH_FXP_OPEN changed between SFTPv4 and SFTPv5+: /* the format of SSH_FXP_OPEN changed between SFTPv4 and SFTPv5+:
@ -293,8 +293,8 @@ class SFTP extends SSH2
105=> 'NET_SFTP_ATTRS', 105=> 'NET_SFTP_ATTRS',
200=> 'NET_SFTP_EXTENDED' 200=> 'NET_SFTP_EXTENDED'
); ];
$this->status_codes = array( $this->status_codes = [
0 => 'NET_SFTP_STATUS_OK', 0 => 'NET_SFTP_STATUS_OK',
1 => 'NET_SFTP_STATUS_EOF', 1 => 'NET_SFTP_STATUS_EOF',
2 => 'NET_SFTP_STATUS_NO_SUCH_FILE', 2 => 'NET_SFTP_STATUS_NO_SUCH_FILE',
@ -327,10 +327,10 @@ class SFTP extends SSH2
29 => 'NET_SFTP_STATUS_OWNER_INVALID', 29 => 'NET_SFTP_STATUS_OWNER_INVALID',
30 => 'NET_SFTP_STATUS_GROUP_INVALID', 30 => 'NET_SFTP_STATUS_GROUP_INVALID',
31 => 'NET_SFTP_STATUS_NO_MATCHING_BYTE_RANGE_LOCK' 31 => 'NET_SFTP_STATUS_NO_MATCHING_BYTE_RANGE_LOCK'
); ];
// http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-7.1 // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-7.1
// the order, in this case, matters quite a lot - see \phpseclib\Net\SFTP::_parseAttributes() to understand why // the order, in this case, matters quite a lot - see \phpseclib\Net\SFTP::_parseAttributes() to understand why
$this->attributes = array( $this->attributes = [
0x00000001 => 'NET_SFTP_ATTR_SIZE', 0x00000001 => 'NET_SFTP_ATTR_SIZE',
0x00000002 => 'NET_SFTP_ATTR_UIDGID', // defined in SFTPv3, removed in SFTPv4+ 0x00000002 => 'NET_SFTP_ATTR_UIDGID', // defined in SFTPv3, removed in SFTPv4+
0x00000004 => 'NET_SFTP_ATTR_PERMISSIONS', 0x00000004 => 'NET_SFTP_ATTR_PERMISSIONS',
@ -340,21 +340,21 @@ class SFTP extends SSH2
// two's compliment, consists of all 1 bits) by 31. on 64-bit systems this'll yield 0xFFFFFFFF80000000. // two's compliment, consists of all 1 bits) by 31. on 64-bit systems this'll yield 0xFFFFFFFF80000000.
// that's not a problem, however, and 'anded' and a 32-bit number, as all the leading 1 bits are ignored. // that's not a problem, however, and 'anded' and a 32-bit number, as all the leading 1 bits are ignored.
-1 << 31 => 'NET_SFTP_ATTR_EXTENDED' -1 << 31 => 'NET_SFTP_ATTR_EXTENDED'
); ];
// http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.3 // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.3
// the flag definitions change somewhat in SFTPv5+. if SFTPv5+ support is added to this library, maybe name // the flag definitions change somewhat in SFTPv5+. if SFTPv5+ support is added to this library, maybe name
// the array for that $this->open5_flags and similarly alter the constant names. // the array for that $this->open5_flags and similarly alter the constant names.
$this->open_flags = array( $this->open_flags = [
0x00000001 => 'NET_SFTP_OPEN_READ', 0x00000001 => 'NET_SFTP_OPEN_READ',
0x00000002 => 'NET_SFTP_OPEN_WRITE', 0x00000002 => 'NET_SFTP_OPEN_WRITE',
0x00000004 => 'NET_SFTP_OPEN_APPEND', 0x00000004 => 'NET_SFTP_OPEN_APPEND',
0x00000008 => 'NET_SFTP_OPEN_CREATE', 0x00000008 => 'NET_SFTP_OPEN_CREATE',
0x00000010 => 'NET_SFTP_OPEN_TRUNCATE', 0x00000010 => 'NET_SFTP_OPEN_TRUNCATE',
0x00000020 => 'NET_SFTP_OPEN_EXCL' 0x00000020 => 'NET_SFTP_OPEN_EXCL'
); ];
// http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-5.2 // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-5.2
// see \phpseclib\Net\SFTP::_parseLongname() for an explanation // see \phpseclib\Net\SFTP::_parseLongname() for an explanation
$this->file_types = array( $this->file_types = [
1 => 'NET_SFTP_TYPE_REGULAR', 1 => 'NET_SFTP_TYPE_REGULAR',
2 => 'NET_SFTP_TYPE_DIRECTORY', 2 => 'NET_SFTP_TYPE_DIRECTORY',
3 => 'NET_SFTP_TYPE_SYMLINK', 3 => 'NET_SFTP_TYPE_SYMLINK',
@ -366,7 +366,7 @@ class SFTP extends SSH2
7 => 'NET_SFTP_TYPE_CHAR_DEVICE', 7 => 'NET_SFTP_TYPE_CHAR_DEVICE',
8 => 'NET_SFTP_TYPE_BLOCK_DEVICE', 8 => 'NET_SFTP_TYPE_BLOCK_DEVICE',
9 => 'NET_SFTP_TYPE_FIFO' 9 => 'NET_SFTP_TYPE_FIFO'
); ];
$this->_define_array( $this->_define_array(
$this->packet_types, $this->packet_types,
$this->status_codes, $this->status_codes,
@ -535,7 +535,7 @@ class SFTP extends SSH2
$this->pwd = $this->_realpath('.'); $this->pwd = $this->_realpath('.');
$this->_update_stat_cache($this->pwd, array()); $this->_update_stat_cache($this->pwd, []);
return true; return true;
} }
@ -567,7 +567,7 @@ class SFTP extends SSH2
*/ */
function clearStatCache() function clearStatCache()
{ {
$this->stat_cache = array(); $this->stat_cache = [];
} }
/** /**
@ -661,7 +661,7 @@ class SFTP extends SSH2
} }
$path = explode('/', $path); $path = explode('/', $path);
$new = array(); $new = [];
foreach ($path as $dir) { foreach ($path as $dir) {
if (!strlen($dir)) { if (!strlen($dir)) {
continue; continue;
@ -735,7 +735,7 @@ class SFTP extends SSH2
return false; return false;
} }
$this->_update_stat_cache($dir, array()); $this->_update_stat_cache($dir, []);
$this->pwd = $dir; $this->pwd = $dir;
return true; return true;
@ -771,7 +771,7 @@ class SFTP extends SSH2
return $files; return $files;
} }
$result = array(); $result = [];
foreach ($files as $value) { foreach ($files as $value) {
if ($value == '.' || $value == '..') { if ($value == '.' || $value == '..') {
if ($relativeDir == '') { if ($relativeDir == '') {
@ -865,9 +865,9 @@ class SFTP extends SSH2
throw new \UnexpectedValueException('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS'); throw new \UnexpectedValueException('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS');
} }
$this->_update_stat_cache($dir, array()); $this->_update_stat_cache($dir, []);
$contents = array(); $contents = [];
while (true) { while (true) {
// http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.2.2 // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.2.2
// why multiple SSH_FXP_READDIR packets would be sent when the response to a single one can span arbitrarily many // why multiple SSH_FXP_READDIR packets would be sent when the response to a single one can span arbitrarily many
@ -892,17 +892,17 @@ class SFTP extends SSH2
$attributes['type'] = $fileType; $attributes['type'] = $fileType;
} }
} }
$contents[$shortname] = $attributes + array('filename' => $shortname); $contents[$shortname] = $attributes + ['filename' => $shortname];
if (isset($attributes['type']) && $attributes['type'] == NET_SFTP_TYPE_DIRECTORY && ($shortname != '.' && $shortname != '..')) { if (isset($attributes['type']) && $attributes['type'] == NET_SFTP_TYPE_DIRECTORY && ($shortname != '.' && $shortname != '..')) {
$this->_update_stat_cache($dir . '/' . $shortname, array()); $this->_update_stat_cache($dir . '/' . $shortname, []);
} else { } else {
if ($shortname == '..') { if ($shortname == '..') {
$temp = $this->_realpath($dir . '/..') . '/.'; $temp = $this->_realpath($dir . '/..') . '/.';
} else { } else {
$temp = $dir . '/' . $shortname; $temp = $dir . '/' . $shortname;
} }
$this->_update_stat_cache($temp, (object) array('lstat' => $attributes)); $this->_update_stat_cache($temp, (object) ['lstat' => $attributes]);
} }
// SFTPv6 has an optional boolean end-of-list field, but we'll ignore that, since the // SFTPv6 has an optional boolean end-of-list field, but we'll ignore that, since the
// final SSH_FXP_STATUS packet should tell us that, already. // final SSH_FXP_STATUS packet should tell us that, already.
@ -925,7 +925,7 @@ class SFTP extends SSH2
} }
if (count($this->sortOptions)) { if (count($this->sortOptions)) {
uasort($contents, array(&$this, '_comparator')); uasort($contents, [&$this, '_comparator']);
} }
return $raw ? $contents : array_keys($contents); return $raw ? $contents : array_keys($contents);
@ -1017,7 +1017,7 @@ class SFTP extends SSH2
*/ */
function setListOrder() function setListOrder()
{ {
$this->sortOptions = array(); $this->sortOptions = [];
$args = func_get_args(); $args = func_get_args();
if (empty($args)) { if (empty($args)) {
return; return;
@ -1027,7 +1027,7 @@ class SFTP extends SSH2
$this->sortOptions[$args[$i]] = $args[$i + 1]; $this->sortOptions[$args[$i]] = $args[$i + 1];
} }
if (!count($this->sortOptions)) { if (!count($this->sortOptions)) {
$this->sortOptions = array('bogus' => true); $this->sortOptions = ['bogus' => true];
} }
} }
@ -1076,10 +1076,10 @@ class SFTP extends SSH2
// 1. a file was deleted and changed to a directory behind phpseclib's back // 1. a file was deleted and changed to a directory behind phpseclib's back
// 2. it's a symlink. when lstat is done it's unclear what it's a symlink to // 2. it's a symlink. when lstat is done it's unclear what it's a symlink to
if (is_object($temp)) { if (is_object($temp)) {
$temp = array(); $temp = [];
} }
if (!isset($temp[$dir])) { if (!isset($temp[$dir])) {
$temp[$dir] = array(); $temp[$dir] = [];
} }
if ($i === $max) { if ($i === $max) {
if (is_object($temp[$dir])) { if (is_object($temp[$dir])) {
@ -1184,7 +1184,7 @@ class SFTP extends SSH2
if ($stat['type'] == NET_SFTP_TYPE_DIRECTORY) { if ($stat['type'] == NET_SFTP_TYPE_DIRECTORY) {
$filename.= '/.'; $filename.= '/.';
} }
$this->_update_stat_cache($filename, (object) array('stat' => $stat)); $this->_update_stat_cache($filename, (object) ['stat' => $stat]);
return $stat; return $stat;
} }
@ -1197,7 +1197,7 @@ class SFTP extends SSH2
if ($stat['type'] == NET_SFTP_TYPE_DIRECTORY) { if ($stat['type'] == NET_SFTP_TYPE_DIRECTORY) {
$filename.= '/.'; $filename.= '/.';
} }
$this->_update_stat_cache($filename, (object) array('stat' => $stat)); $this->_update_stat_cache($filename, (object) ['stat' => $stat]);
return $stat; return $stat;
} }
@ -1241,15 +1241,15 @@ class SFTP extends SSH2
if ($lstat['type'] == NET_SFTP_TYPE_DIRECTORY) { if ($lstat['type'] == NET_SFTP_TYPE_DIRECTORY) {
$filename.= '/.'; $filename.= '/.';
} }
$this->_update_stat_cache($filename, (object) array('lstat' => $lstat)); $this->_update_stat_cache($filename, (object) ['lstat' => $lstat]);
return $lstat; return $lstat;
} }
$stat = $this->_stat($filename, NET_SFTP_STAT); $stat = $this->_stat($filename, NET_SFTP_STAT);
if ($lstat != $stat) { if ($lstat != $stat) {
$lstat = array_merge($lstat, array('type' => NET_SFTP_TYPE_SYMLINK)); $lstat = array_merge($lstat, ['type' => NET_SFTP_TYPE_SYMLINK]);
$this->_update_stat_cache($filename, (object) array('lstat' => $lstat)); $this->_update_stat_cache($filename, (object) ['lstat' => $lstat]);
return $stat; return $stat;
} }
@ -1262,7 +1262,7 @@ class SFTP extends SSH2
if ($lstat['type'] == NET_SFTP_TYPE_DIRECTORY) { if ($lstat['type'] == NET_SFTP_TYPE_DIRECTORY) {
$filename.= '/.'; $filename.= '/.';
} }
$this->_update_stat_cache($filename, (object) array('lstat' => $lstat)); $this->_update_stat_cache($filename, (object) ['lstat' => $lstat]);
return $lstat; return $lstat;
} }
@ -2652,7 +2652,7 @@ class SFTP extends SSH2
*/ */
function _parseAttributes(&$response) function _parseAttributes(&$response)
{ {
$attr = array(); $attr = [];
extract(unpack('Nflags', Strings::shift($response, 4))); extract(unpack('Nflags', Strings::shift($response, 4)));
// SFTPv4+ have a type field (a byte) that follows the above flag field // SFTPv4+ have a type field (a byte) that follows the above flag field
foreach ($this->attributes as $key => $value) { foreach ($this->attributes as $key => $value) {
@ -2673,10 +2673,10 @@ class SFTP extends SSH2
$attr+= unpack('Npermissions', Strings::shift($response, 4)); $attr+= unpack('Npermissions', Strings::shift($response, 4));
// mode == permissions; permissions was the original array key and is retained for bc purposes. // mode == permissions; permissions was the original array key and is retained for bc purposes.
// mode was added because that's the more industry standard terminology // mode was added because that's the more industry standard terminology
$attr+= array('mode' => $attr['permissions']); $attr+= ['mode' => $attr['permissions']];
$fileType = $this->_parseMode($attr['permissions']); $fileType = $this->_parseMode($attr['permissions']);
if ($fileType !== false) { if ($fileType !== false) {
$attr+= array('type' => $fileType); $attr+= ['type' => $fileType];
} }
break; break;
case NET_SFTP_ATTR_ACCESSTIME: // 0x00000008 case NET_SFTP_ATTR_ACCESSTIME: // 0x00000008
@ -2797,7 +2797,7 @@ class SFTP extends SSH2
$packet_type = '-> ' . $this->packet_types[$type] . $packet_type = '-> ' . $this->packet_types[$type] .
' (' . round($stop - $start, 4) . 's)'; ' (' . round($stop - $start, 4) . 's)';
if (NET_SFTP_LOGGING == self::LOG_REALTIME) { if (NET_SFTP_LOGGING == self::LOG_REALTIME) {
echo "<pre>\r\n" . $this->_format_log(array($data), array($packet_type)) . "\r\n</pre>\r\n"; echo "<pre>\r\n" . $this->_format_log([$data], [$packet_type]) . "\r\n</pre>\r\n";
flush(); flush();
ob_flush(); ob_flush();
} else { } else {
@ -2873,7 +2873,7 @@ class SFTP extends SSH2
$packet_type = '<- ' . $this->packet_types[$this->packet_type] . $packet_type = '<- ' . $this->packet_types[$this->packet_type] .
' (' . round($stop - $start, 4) . 's)'; ' (' . round($stop - $start, 4) . 's)';
if (NET_SFTP_LOGGING == self::LOG_REALTIME) { if (NET_SFTP_LOGGING == self::LOG_REALTIME) {
echo "<pre>\r\n" . $this->_format_log(array($packet), array($packet_type)) . "\r\n</pre>\r\n"; echo "<pre>\r\n" . $this->_format_log([$packet], [$packet_type]) . "\r\n</pre>\r\n";
flush(); flush();
ob_flush(); ob_flush();
} else { } else {
@ -2941,7 +2941,7 @@ class SFTP extends SSH2
*/ */
function getSupportedVersions() function getSupportedVersions()
{ {
$temp = array('version' => $this->version); $temp = ['version' => $this->version];
if (isset($this->extensions['versions'])) { if (isset($this->extensions['versions'])) {
$temp['extensions'] = $this->extensions['versions']; $temp['extensions'] = $this->extensions['versions'];
} }

View File

@ -155,7 +155,7 @@ class Stream
function _parse_path($path) function _parse_path($path)
{ {
$orig = $path; $orig = $path;
extract(parse_url($path) + array('port' => 22)); extract(parse_url($path) + ['port' => 22]);
if (isset($query)) { if (isset($query)) {
$path.= '?' . $query; $path.= '?' . $query;
} elseif (preg_match('/(\?|\?#)$/', $orig)) { } elseif (preg_match('/(\?|\?#)$/', $orig)) {
@ -790,6 +790,6 @@ class Stream
if (!method_exists($this, $name)) { if (!method_exists($this, $name)) {
return false; return false;
} }
return call_user_func_array(array($this, $name), $arguments); return call_user_func_array([$this, $name], $arguments);
} }
} }

View File

@ -311,7 +311,7 @@ class SSH1
* @var array * @var array
* @access private * @access private
*/ */
var $supported_ciphers = array( var $supported_ciphers = [
self::CIPHER_NONE => 'No encryption', self::CIPHER_NONE => 'No encryption',
self::CIPHER_IDEA => 'IDEA in CFB mode', self::CIPHER_IDEA => 'IDEA in CFB mode',
self::CIPHER_DES => 'DES in CBC mode', self::CIPHER_DES => 'DES in CBC mode',
@ -319,7 +319,7 @@ class SSH1
self::CIPHER_BROKEN_TSS => 'TRI\'s Simple Stream encryption CBC', self::CIPHER_BROKEN_TSS => 'TRI\'s Simple Stream encryption CBC',
self::CIPHER_RC4 => 'RC4', self::CIPHER_RC4 => 'RC4',
self::CIPHER_BLOWFISH => 'Blowfish' self::CIPHER_BLOWFISH => 'Blowfish'
); ];
/** /**
* Supported Authentications * Supported Authentications
@ -330,12 +330,12 @@ class SSH1
* @var array * @var array
* @access private * @access private
*/ */
var $supported_authentications = array( var $supported_authentications = [
self::AUTH_RHOSTS => '.rhosts or /etc/hosts.equiv', self::AUTH_RHOSTS => '.rhosts or /etc/hosts.equiv',
self::AUTH_RSA => 'pure RSA authentication', self::AUTH_RSA => 'pure RSA authentication',
self::AUTH_PASSWORD => 'password authentication', self::AUTH_PASSWORD => 'password authentication',
self::AUTH_RHOSTS_RSA => '.rhosts with RSA host authentication' self::AUTH_RHOSTS_RSA => '.rhosts with RSA host authentication'
); ];
/** /**
* Server Identification * Server Identification
@ -353,7 +353,7 @@ class SSH1
* @var array * @var array
* @access private * @access private
*/ */
var $protocol_flags = array(); var $protocol_flags = [];
/** /**
* Protocol Flag Log * Protocol Flag Log
@ -362,7 +362,7 @@ class SSH1
* @var array * @var array
* @access private * @access private
*/ */
var $protocol_flag_log = array(); var $protocol_flag_log = [];
/** /**
* Message Log * Message Log
@ -371,7 +371,7 @@ class SSH1
* @var array * @var array
* @access private * @access private
*/ */
var $message_log = array(); var $message_log = [];
/** /**
* Real-time log file pointer * Real-time log file pointer
@ -508,7 +508,7 @@ class SSH1
*/ */
function __construct($host, $port = 22, $timeout = 10, $cipher = self::CIPHER_3DES) function __construct($host, $port = 22, $timeout = 10, $cipher = self::CIPHER_3DES)
{ {
$this->protocol_flags = array( $this->protocol_flags = [
1 => 'NET_SSH1_MSG_DISCONNECT', 1 => 'NET_SSH1_MSG_DISCONNECT',
2 => 'NET_SSH1_SMSG_PUBLIC_KEY', 2 => 'NET_SSH1_SMSG_PUBLIC_KEY',
3 => 'NET_SSH1_CMSG_SESSION_KEY', 3 => 'NET_SSH1_CMSG_SESSION_KEY',
@ -525,7 +525,7 @@ class SSH1
19 => 'NET_SSH1_CMSG_EOF', 19 => 'NET_SSH1_CMSG_EOF',
20 => 'NET_SSH1_SMSG_EXITSTATUS', 20 => 'NET_SSH1_SMSG_EXITSTATUS',
33 => 'NET_SSH1_CMSG_EXIT_CONFIRMATION' 33 => 'NET_SSH1_CMSG_EXIT_CONFIRMATION'
); ];
$this->_define_array($this->protocol_flags); $this->_define_array($this->protocol_flags);
@ -619,32 +619,32 @@ class SSH1
if ($server_key_public_modulus->compare($host_key_public_modulus) < 0) { if ($server_key_public_modulus->compare($host_key_public_modulus) < 0) {
$double_encrypted_session_key = $this->_rsa_crypt( $double_encrypted_session_key = $this->_rsa_crypt(
$double_encrypted_session_key, $double_encrypted_session_key,
array( [
$server_key_public_exponent, $server_key_public_exponent,
$server_key_public_modulus $server_key_public_modulus
) ]
); );
$double_encrypted_session_key = $this->_rsa_crypt( $double_encrypted_session_key = $this->_rsa_crypt(
$double_encrypted_session_key, $double_encrypted_session_key,
array( [
$host_key_public_exponent, $host_key_public_exponent,
$host_key_public_modulus $host_key_public_modulus
) ]
); );
} else { } else {
$double_encrypted_session_key = $this->_rsa_crypt( $double_encrypted_session_key = $this->_rsa_crypt(
$double_encrypted_session_key, $double_encrypted_session_key,
array( [
$host_key_public_exponent, $host_key_public_exponent,
$host_key_public_modulus $host_key_public_modulus
) ]
); );
$double_encrypted_session_key = $this->_rsa_crypt( $double_encrypted_session_key = $this->_rsa_crypt(
$double_encrypted_session_key, $double_encrypted_session_key,
array( [
$server_key_public_exponent, $server_key_public_exponent,
$server_key_public_modulus $server_key_public_modulus
) ]
); );
} }
@ -984,7 +984,7 @@ class SSH1
throw new \RuntimeException('Unable to initiate an interactive shell session'); throw new \RuntimeException('Unable to initiate an interactive shell session');
} }
$read = array($this->fsock); $read = [$this->fsock];
$write = $except = null; $write = $except = null;
if (stream_select($read, $write, $except, 0)) { if (stream_select($read, $write, $except, 0)) {
$response = $this->_get_binary_packet(); $response = $this->_get_binary_packet();
@ -1031,7 +1031,7 @@ class SSH1
/* /*
$response = $this->_get_binary_packet(); $response = $this->_get_binary_packet();
if ($response === true) { if ($response === true) {
$response = array(self::RESPONSE_TYPE => -1); $response = [self::RESPONSE_TYPE => -1];
} }
switch ($response[self::RESPONSE_TYPE]) { switch ($response[self::RESPONSE_TYPE]) {
case NET_SSH1_SMSG_EXITSTATUS: case NET_SSH1_SMSG_EXITSTATUS:
@ -1069,7 +1069,7 @@ class SSH1
} }
if ($this->curTimeout) { if ($this->curTimeout) {
$read = array($this->fsock); $read = [$this->fsock];
$write = $except = null; $write = $except = null;
$start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838
@ -1122,10 +1122,10 @@ class SSH1
$this->_append_log($temp, $data); $this->_append_log($temp, $data);
} }
return array( return [
self::RESPONSE_TYPE => $type, self::RESPONSE_TYPE => $type,
self::RESPONSE_DATA => $data self::RESPONSE_DATA => $data
); ];
} }
/** /**
@ -1188,7 +1188,7 @@ class SSH1
*/ */
function _crc($data) function _crc($data)
{ {
static $crc_lookup_table = array( static $crc_lookup_table = [
0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,
0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,
@ -1253,7 +1253,7 @@ class SSH1
0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,
0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
); ];
// For this function to yield the same output as PHP's crc32 function, $crc would have to be // For this function to yield the same output as PHP's crc32 function, $crc would have to be
// set to 0xFFFFFFFF, initially - not 0x00000000 as it currently is. // set to 0xFFFFFFFF, initially - not 0x00000000 as it currently is.
@ -1394,7 +1394,7 @@ class SSH1
$output.= str_pad(dechex($j), 7, '0', STR_PAD_LEFT) . '0 '; $output.= str_pad(dechex($j), 7, '0', STR_PAD_LEFT) . '0 ';
} }
$fragment = Strings::shift($current_log, $this->log_short_width); $fragment = Strings::shift($current_log, $this->log_short_width);
$hex = substr(preg_replace_callback('#.#s', array($this, '_format_log_helper'), $fragment), strlen($this->log_boundary)); $hex = substr(preg_replace_callback('#.#s', [$this, '_format_log_helper'], $fragment), strlen($this->log_boundary));
// replace non ASCII printable characters with dots // replace non ASCII printable characters with dots
// http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters // http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters
// also replace < with a . since < messes up the output on web browsers // also replace < with a . since < messes up the output on web browsers
@ -1486,8 +1486,8 @@ class SSH1
* Return a list of ciphers supported by SSH1 server. * Return a list of ciphers supported by SSH1 server.
* *
* Just because a cipher is supported by an SSH1 server doesn't mean it's supported by this library. If $raw_output * Just because a cipher is supported by an SSH1 server doesn't mean it's supported by this library. If $raw_output
* is set to true, returns, instead, an array of constants. ie. instead of array('Triple-DES in CBC mode'), you'll * is set to true, returns, instead, an array of constants. ie. instead of ['Triple-DES in CBC mode'], you'll
* get array(self::CIPHER_3DES). * get [self::CIPHER_3DES].
* *
* @param bool $raw_output * @param bool $raw_output
* @return array * @return array
@ -1502,8 +1502,8 @@ class SSH1
* Return a list of authentications supported by SSH1 server. * Return a list of authentications supported by SSH1 server.
* *
* Just because a cipher is supported by an SSH1 server doesn't mean it's supported by this library. If $raw_output * Just because a cipher is supported by an SSH1 server doesn't mean it's supported by this library. If $raw_output
* is set to true, returns, instead, an array of constants. ie. instead of array('password authentication'), you'll * is set to true, returns, instead, an array of constants. ie. instead of ['password authentication'], you'll
* get array(self::AUTH_PASSWORD). * get [self::AUTH_PASSWORD].
* *
* @param bool $raw_output * @param bool $raw_output
* @return array * @return array
@ -1555,7 +1555,7 @@ class SSH1
// passwords won't be filtered out and select other packets may not be correctly // passwords won't be filtered out and select other packets may not be correctly
// identified // identified
case self::LOG_REALTIME: case self::LOG_REALTIME:
echo "<pre>\r\n" . $this->_format_log(array($message), array($protocol_flags)) . "\r\n</pre>\r\n"; echo "<pre>\r\n" . $this->_format_log([$message], [$protocol_flags]) . "\r\n</pre>\r\n";
@flush(); @flush();
@ob_flush(); @ob_flush();
break; break;
@ -1573,7 +1573,7 @@ class SSH1
if (!is_resource($this->realtime_log_file)) { if (!is_resource($this->realtime_log_file)) {
break; break;
} }
$entry = $this->_format_log(array($message), array($protocol_flags)); $entry = $this->_format_log([$message], [$protocol_flags]);
if ($this->realtime_log_wrap) { if ($this->realtime_log_wrap) {
$temp = "<<< START >>>\r\n"; $temp = "<<< START >>>\r\n";
$entry.= $temp; $entry.= $temp;

View File

@ -184,7 +184,7 @@ class SSH2
* @var string * @var string
* @access private * @access private
*/ */
var $errors = array(); var $errors = [];
/** /**
* Server Identifier * Server Identifier
@ -430,7 +430,7 @@ class SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $message_numbers = array(); var $message_numbers = [];
/** /**
* Disconnection Message 'reason codes' defined in RFC4253 * Disconnection Message 'reason codes' defined in RFC4253
@ -439,7 +439,7 @@ class SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $disconnect_reasons = array(); var $disconnect_reasons = [];
/** /**
* SSH_MSG_CHANNEL_OPEN_FAILURE 'reason codes', defined in RFC4254 * SSH_MSG_CHANNEL_OPEN_FAILURE 'reason codes', defined in RFC4254
@ -448,7 +448,7 @@ class SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $channel_open_failure_reasons = array(); var $channel_open_failure_reasons = [];
/** /**
* Terminal Modes * Terminal Modes
@ -458,7 +458,7 @@ class SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $terminal_modes = array(); var $terminal_modes = [];
/** /**
* SSH_MSG_CHANNEL_EXTENDED_DATA's data_type_codes * SSH_MSG_CHANNEL_EXTENDED_DATA's data_type_codes
@ -468,7 +468,7 @@ class SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $channel_extended_data_type_codes = array(); var $channel_extended_data_type_codes = [];
/** /**
* Send Sequence Number * Send Sequence Number
@ -502,7 +502,7 @@ class SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $server_channels = array(); var $server_channels = [];
/** /**
* Channel Buffers * Channel Buffers
@ -515,7 +515,7 @@ class SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $channel_buffers = array(); var $channel_buffers = [];
/** /**
* Channel Status * Channel Status
@ -526,7 +526,7 @@ class SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $channel_status = array(); var $channel_status = [];
/** /**
* Packet Size * Packet Size
@ -537,7 +537,7 @@ class SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $packet_size_client_to_server = array(); var $packet_size_client_to_server = [];
/** /**
* Message Number Log * Message Number Log
@ -546,7 +546,7 @@ class SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $message_number_log = array(); var $message_number_log = [];
/** /**
* Message Log * Message Log
@ -555,7 +555,7 @@ class SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $message_log = array(); var $message_log = [];
/** /**
* The Window Size * The Window Size
@ -578,7 +578,7 @@ class SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $window_size_server_to_client = array(); var $window_size_server_to_client = [];
/** /**
* Window size, client to server * Window size, client to server
@ -589,7 +589,7 @@ class SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $window_size_client_to_server = array(); var $window_size_client_to_server = [];
/** /**
* Server signature * Server signature
@ -758,7 +758,7 @@ class SSH2
* @var array * @var array
* @access private * @access private
*/ */
var $keyboard_requests_responses = array(); var $keyboard_requests_responses = [];
/** /**
* Banner Message * Banner Message
@ -891,7 +891,7 @@ class SSH2
*/ */
function __construct($host, $port = 22, $timeout = 10) function __construct($host, $port = 22, $timeout = 10)
{ {
$this->message_numbers = array( $this->message_numbers = [
1 => 'NET_SSH2_MSG_DISCONNECT', 1 => 'NET_SSH2_MSG_DISCONNECT',
2 => 'NET_SSH2_MSG_IGNORE', 2 => 'NET_SSH2_MSG_IGNORE',
3 => 'NET_SSH2_MSG_UNIMPLEMENTED', 3 => 'NET_SSH2_MSG_UNIMPLEMENTED',
@ -921,8 +921,8 @@ class SSH2
98 => 'NET_SSH2_MSG_CHANNEL_REQUEST', 98 => 'NET_SSH2_MSG_CHANNEL_REQUEST',
99 => 'NET_SSH2_MSG_CHANNEL_SUCCESS', 99 => 'NET_SSH2_MSG_CHANNEL_SUCCESS',
100 => 'NET_SSH2_MSG_CHANNEL_FAILURE' 100 => 'NET_SSH2_MSG_CHANNEL_FAILURE'
); ];
$this->disconnect_reasons = array( $this->disconnect_reasons = [
1 => 'NET_SSH2_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT', 1 => 'NET_SSH2_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT',
2 => 'NET_SSH2_DISCONNECT_PROTOCOL_ERROR', 2 => 'NET_SSH2_DISCONNECT_PROTOCOL_ERROR',
3 => 'NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED', 3 => 'NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED',
@ -938,16 +938,16 @@ class SSH2
13 => 'NET_SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER', 13 => 'NET_SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER',
14 => 'NET_SSH2_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE', 14 => 'NET_SSH2_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE',
15 => 'NET_SSH2_DISCONNECT_ILLEGAL_USER_NAME' 15 => 'NET_SSH2_DISCONNECT_ILLEGAL_USER_NAME'
); ];
$this->channel_open_failure_reasons = array( $this->channel_open_failure_reasons = [
1 => 'NET_SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED' 1 => 'NET_SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED'
); ];
$this->terminal_modes = array( $this->terminal_modes = [
0 => 'NET_SSH2_TTY_OP_END' 0 => 'NET_SSH2_TTY_OP_END'
); ];
$this->channel_extended_data_type_codes = array( $this->channel_extended_data_type_codes = [
1 => 'NET_SSH2_EXTENDED_DATA_STDERR' 1 => 'NET_SSH2_EXTENDED_DATA_STDERR'
); ];
$this->_define_array( $this->_define_array(
$this->message_numbers, $this->message_numbers,
@ -955,19 +955,19 @@ class SSH2
$this->channel_open_failure_reasons, $this->channel_open_failure_reasons,
$this->terminal_modes, $this->terminal_modes,
$this->channel_extended_data_type_codes, $this->channel_extended_data_type_codes,
array(60 => 'NET_SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ'), [60 => 'NET_SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ'],
array(60 => 'NET_SSH2_MSG_USERAUTH_PK_OK'), [60 => 'NET_SSH2_MSG_USERAUTH_PK_OK'],
array(60 => 'NET_SSH2_MSG_USERAUTH_INFO_REQUEST', [60 => 'NET_SSH2_MSG_USERAUTH_INFO_REQUEST',
61 => 'NET_SSH2_MSG_USERAUTH_INFO_RESPONSE'), 61 => 'NET_SSH2_MSG_USERAUTH_INFO_RESPONSE'],
// RFC 4419 - diffie-hellman-group-exchange-sha{1,256} // RFC 4419 - diffie-hellman-group-exchange-sha{1,256}
array(30 => 'NET_SSH2_MSG_KEXDH_GEX_REQUEST_OLD', [30 => 'NET_SSH2_MSG_KEXDH_GEX_REQUEST_OLD',
31 => 'NET_SSH2_MSG_KEXDH_GEX_GROUP', 31 => 'NET_SSH2_MSG_KEXDH_GEX_GROUP',
32 => 'NET_SSH2_MSG_KEXDH_GEX_INIT', 32 => 'NET_SSH2_MSG_KEXDH_GEX_INIT',
33 => 'NET_SSH2_MSG_KEXDH_GEX_REPLY', 33 => 'NET_SSH2_MSG_KEXDH_GEX_REPLY',
34 => 'NET_SSH2_MSG_KEXDH_GEX_REQUEST'), 34 => 'NET_SSH2_MSG_KEXDH_GEX_REQUEST'],
// RFC 5656 - Elliptic Curves (for curve25519-sha256@libssh.org) // RFC 5656 - Elliptic Curves (for curve25519-sha256@libssh.org)
array(30 => 'NET_SSH2_MSG_KEX_ECDH_INIT', [30 => 'NET_SSH2_MSG_KEX_ECDH_INIT',
31 => 'NET_SSH2_MSG_KEX_ECDH_REPLY') 31 => 'NET_SSH2_MSG_KEX_ECDH_REPLY']
); );
self::$connections[$this->getResourceId()] = $this; self::$connections[$this->getResourceId()] = $this;
@ -1055,7 +1055,7 @@ class SSH2
$this->is_timeout = true; $this->is_timeout = true;
return false; return false;
} }
$read = array($this->fsock); $read = [$this->fsock];
$write = $except = null; $write = $except = null;
$start = microtime(true); $start = microtime(true);
$sec = floor($this->curTimeout); $sec = floor($this->curTimeout);
@ -1143,7 +1143,7 @@ class SSH2
{ {
$identifier = 'SSH-2.0-phpseclib_2.0'; $identifier = 'SSH-2.0-phpseclib_2.0';
$ext = array(); $ext = [];
if (extension_loaded('libsodium')) { if (extension_loaded('libsodium')) {
$ext[] = 'libsodium'; $ext[] = 'libsodium';
} }
@ -1178,7 +1178,7 @@ class SSH2
*/ */
function _key_exchange($kexinit_payload_server) function _key_exchange($kexinit_payload_server)
{ {
$kex_algorithms = array( $kex_algorithms = [
// Elliptic Curve Diffie-Hellman Key Agreement (ECDH) using // Elliptic Curve Diffie-Hellman Key Agreement (ECDH) using
// Curve25519. See doc/curve25519-sha256@libssh.org.txt in the // Curve25519. See doc/curve25519-sha256@libssh.org.txt in the
// libssh repository for more information. // libssh repository for more information.
@ -1190,20 +1190,20 @@ class SSH2
'diffie-hellman-group14-sha1', // REQUIRED 'diffie-hellman-group14-sha1', // REQUIRED
'diffie-hellman-group-exchange-sha1', // RFC 4419 'diffie-hellman-group-exchange-sha1', // RFC 4419
'diffie-hellman-group-exchange-sha256', // RFC 4419 'diffie-hellman-group-exchange-sha256', // RFC 4419
); ];
if (!function_exists('\\Sodium\\library_version_major')) { if (!function_exists('\\Sodium\\library_version_major')) {
$kex_algorithms = array_diff( $kex_algorithms = array_diff(
$kex_algorithms, $kex_algorithms,
array('curve25519-sha256@libssh.org') ['curve25519-sha256@libssh.org']
); );
} }
$server_host_key_algorithms = array( $server_host_key_algorithms = [
'ssh-rsa', // RECOMMENDED sign Raw RSA Key 'ssh-rsa', // RECOMMENDED sign Raw RSA Key
'ssh-dss' // REQUIRED sign Raw DSS Key 'ssh-dss' // REQUIRED sign Raw DSS Key
); ];
$encryption_algorithms = array( $encryption_algorithms = [
// from <http://tools.ietf.org/html/rfc4345#section-4>: // from <http://tools.ietf.org/html/rfc4345#section-4>:
'arcfour256', 'arcfour256',
'arcfour128', 'arcfour128',
@ -1237,50 +1237,50 @@ class SSH2
'3des-cbc', // REQUIRED three-key 3DES in CBC mode '3des-cbc', // REQUIRED three-key 3DES in CBC mode
//'none' // OPTIONAL no encryption; NOT RECOMMENDED //'none' // OPTIONAL no encryption; NOT RECOMMENDED
); ];
if (extension_loaded('openssl') && !extension_loaded('mcrypt')) { if (extension_loaded('openssl') && !extension_loaded('mcrypt')) {
// OpenSSL does not support arcfour256 in any capacity and arcfour128 / arcfour support is limited to // OpenSSL does not support arcfour256 in any capacity and arcfour128 / arcfour support is limited to
// instances that do not use continuous buffers // instances that do not use continuous buffers
$encryption_algorithms = array_diff( $encryption_algorithms = array_diff(
$encryption_algorithms, $encryption_algorithms,
array('arcfour256', 'arcfour128', 'arcfour') ['arcfour256', 'arcfour128', 'arcfour']
); );
} }
if (class_exists('\phpseclib\Crypt\RC4') === false) { if (class_exists('\phpseclib\Crypt\RC4') === false) {
$encryption_algorithms = array_diff( $encryption_algorithms = array_diff(
$encryption_algorithms, $encryption_algorithms,
array('arcfour256', 'arcfour128', 'arcfour') ['arcfour256', 'arcfour128', 'arcfour']
); );
} }
if (class_exists('\phpseclib\Crypt\Rijndael') === false) { if (class_exists('\phpseclib\Crypt\Rijndael') === false) {
$encryption_algorithms = array_diff( $encryption_algorithms = array_diff(
$encryption_algorithms, $encryption_algorithms,
array('aes128-ctr', 'aes192-ctr', 'aes256-ctr', 'aes128-cbc', 'aes192-cbc', 'aes256-cbc') ['aes128-ctr', 'aes192-ctr', 'aes256-ctr', 'aes128-cbc', 'aes192-cbc', 'aes256-cbc']
); );
} }
if (class_exists('\phpseclib\Crypt\Twofish') === false) { if (class_exists('\phpseclib\Crypt\Twofish') === false) {
$encryption_algorithms = array_diff( $encryption_algorithms = array_diff(
$encryption_algorithms, $encryption_algorithms,
array('twofish128-ctr', 'twofish192-ctr', 'twofish256-ctr', 'twofish128-cbc', 'twofish192-cbc', 'twofish256-cbc', 'twofish-cbc') ['twofish128-ctr', 'twofish192-ctr', 'twofish256-ctr', 'twofish128-cbc', 'twofish192-cbc', 'twofish256-cbc', 'twofish-cbc']
); );
} }
if (class_exists('\phpseclib\Crypt\Blowfish') === false) { if (class_exists('\phpseclib\Crypt\Blowfish') === false) {
$encryption_algorithms = array_diff( $encryption_algorithms = array_diff(
$encryption_algorithms, $encryption_algorithms,
array('blowfish-ctr', 'blowfish-cbc') ['blowfish-ctr', 'blowfish-cbc']
); );
} }
if (class_exists('\phpseclib\Crypt\TripleDES') === false) { if (class_exists('\phpseclib\Crypt\TripleDES') === false) {
$encryption_algorithms = array_diff( $encryption_algorithms = array_diff(
$encryption_algorithms, $encryption_algorithms,
array('3des-ctr', '3des-cbc') ['3des-ctr', '3des-cbc']
); );
} }
$encryption_algorithms = array_values($encryption_algorithms); $encryption_algorithms = array_values($encryption_algorithms);
$mac_algorithms = array( $mac_algorithms = [
// from <http://www.ietf.org/rfc/rfc6668.txt>: // from <http://www.ietf.org/rfc/rfc6668.txt>:
'hmac-sha2-256',// RECOMMENDED HMAC-SHA256 (digest length = key length = 32) 'hmac-sha2-256',// RECOMMENDED HMAC-SHA256 (digest length = key length = 32)
@ -1289,19 +1289,19 @@ class SSH2
'hmac-md5-96', // OPTIONAL first 96 bits of HMAC-MD5 (digest length = 12, key length = 16) 'hmac-md5-96', // OPTIONAL first 96 bits of HMAC-MD5 (digest length = 12, key length = 16)
'hmac-md5', // OPTIONAL HMAC-MD5 (digest length = key length = 16) 'hmac-md5', // OPTIONAL HMAC-MD5 (digest length = key length = 16)
//'none' // OPTIONAL no MAC; NOT RECOMMENDED //'none' // OPTIONAL no MAC; NOT RECOMMENDED
); ];
$compression_algorithms = array( $compression_algorithms = [
'none' // REQUIRED no compression 'none' // REQUIRED no compression
//'zlib' // OPTIONAL ZLIB (LZ77) compression //'zlib' // OPTIONAL ZLIB (LZ77) compression
); ];
// some SSH servers have buggy implementations of some of the above algorithms // some SSH servers have buggy implementations of some of the above algorithms
switch ($this->server_identifier) { switch ($this->server_identifier) {
case 'SSH-2.0-SSHD': case 'SSH-2.0-SSHD':
$mac_algorithms = array_values(array_diff( $mac_algorithms = array_values(array_diff(
$mac_algorithms, $mac_algorithms,
array('hmac-sha1-96', 'hmac-md5-96') ['hmac-sha1-96', 'hmac-md5-96']
)); ));
} }
@ -1882,7 +1882,7 @@ class SSH2
function login($username) function login($username)
{ {
$args = func_get_args(); $args = func_get_args();
return call_user_func_array(array(&$this, '_login'), $args); return call_user_func_array([&$this, '_login'], $args);
} }
/** /**
@ -2274,10 +2274,10 @@ class SSH2
return false; return false;
} }
$publickey = array( $publickey = [
'e' => $publickey['e']->toBytes(true), 'e' => $publickey['e']->toBytes(true),
'n' => $publickey['n']->toBytes(true) 'n' => $publickey['n']->toBytes(true)
); ];
$publickey = pack( $publickey = pack(
'Na*Na*Na*', 'Na*Na*Na*',
strlen('ssh-rsa'), strlen('ssh-rsa'),
@ -3206,7 +3206,7 @@ class SSH2
return true; return true;
} }
$read = array($this->fsock); $read = [$this->fsock];
$write = $except = null; $write = $except = null;
$start = microtime(true); $start = microtime(true);
@ -3319,7 +3319,7 @@ class SSH2
return $data; return $data;
} }
if (!isset($this->channel_buffers[$channel])) { if (!isset($this->channel_buffers[$channel])) {
$this->channel_buffers[$channel] = array(); $this->channel_buffers[$channel] = [];
} }
$this->channel_buffers[$channel][] = $data; $this->channel_buffers[$channel][] = $data;
break; break;
@ -3340,7 +3340,7 @@ class SSH2
return $data; return $data;
} }
if (!isset($this->channel_buffers[$channel])) { if (!isset($this->channel_buffers[$channel])) {
$this->channel_buffers[$channel] = array(); $this->channel_buffers[$channel] = [];
} }
$this->channel_buffers[$channel][] = $data; $this->channel_buffers[$channel][] = $data;
break; break;
@ -3503,7 +3503,7 @@ class SSH2
$start = '<pre>'; $start = '<pre>';
$stop = '</pre>'; $stop = '</pre>';
} }
echo $start . $this->_format_log(array($message), array($message_number)) . $stop; echo $start . $this->_format_log([$message], [$message_number]) . $stop;
@flush(); @flush();
@ob_flush(); @ob_flush();
break; break;
@ -3521,7 +3521,7 @@ class SSH2
if (!is_resource($this->realtime_log_file)) { if (!is_resource($this->realtime_log_file)) {
break; break;
} }
$entry = $this->_format_log(array($message), array($message_number)); $entry = $this->_format_log([$message], [$message_number]);
if ($this->realtime_log_wrap) { if ($this->realtime_log_wrap) {
$temp = "<<< START >>>\r\n"; $temp = "<<< START >>>\r\n";
$entry.= $temp; $entry.= $temp;
@ -3709,7 +3709,7 @@ class SSH2
$output.= str_pad(dechex($j), 7, '0', STR_PAD_LEFT) . '0 '; $output.= str_pad(dechex($j), 7, '0', STR_PAD_LEFT) . '0 ';
} }
$fragment = Strings::shift($current_log, $this->log_short_width); $fragment = Strings::shift($current_log, $this->log_short_width);
$hex = substr(preg_replace_callback('#.#s', array($this, '_format_log_helper'), $fragment), strlen($this->log_boundary)); $hex = substr(preg_replace_callback('#.#s', [$this, '_format_log_helper'], $fragment), strlen($this->log_boundary));
// replace non ASCII printable characters with dots // replace non ASCII printable characters with dots
// http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters // http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters
// also replace < with a . since < messes up the output on web browsers // also replace < with a . since < messes up the output on web browsers
@ -4060,7 +4060,7 @@ class SSH2
$signature = Strings::shift($signature, $temp['length']); $signature = Strings::shift($signature, $temp['length']);
$rsa = new RSA(); $rsa = new RSA();
$rsa->load(array('e' => $e, 'n' => $n), 'raw'); $rsa->load(['e' => $e, 'n' => $n], 'raw');
$rsa->setHash('sha1'); $rsa->setHash('sha1');
if (!$rsa->verify($this->exchange_hash, $signature, RSA::PADDING_PKCS1)) { if (!$rsa->verify($this->exchange_hash, $signature, RSA::PADDING_PKCS1)) {
//user_error('Bad server signature'); //user_error('Bad server signature');

View File

@ -153,7 +153,7 @@ class Agent
function requestIdentities() function requestIdentities()
{ {
if (!$this->fsock) { if (!$this->fsock) {
return array(); return [];
} }
$packet = pack('NC', 1, self::SSH_AGENTC_REQUEST_IDENTITIES); $packet = pack('NC', 1, self::SSH_AGENTC_REQUEST_IDENTITIES);
@ -167,7 +167,7 @@ class Agent
throw new \RuntimeException('Unable to request identities'); throw new \RuntimeException('Unable to request identities');
} }
$identities = array(); $identities = [];
$keyCount = current(unpack('N', fread($this->fsock, 4))); $keyCount = current(unpack('N', fread($this->fsock, 4)));
for ($i = 0; $i < $keyCount; $i++) { for ($i = 0; $i < $keyCount; $i++) {
$length = current(unpack('N', fread($this->fsock, 4))); $length = current(unpack('N', fread($this->fsock, 4)));