From ee8f5e9769943a6435ba1f4b14f4a146a69e01c1 Mon Sep 17 00:00:00 2001 From: Sokolovskyy Roman Date: Tue, 21 Nov 2017 09:36:28 +0100 Subject: [PATCH] Get rid of func_get_args() --- phpseclib/Common/Functions/Strings.php | 5 ++--- phpseclib/Crypt/Common/SymmetricKey.php | 15 +++++++-------- phpseclib/Crypt/DSA.php | 4 ++-- phpseclib/File/X509.php | 11 ++++++----- phpseclib/Net/SFTP.php | 11 +++++------ phpseclib/Net/SSH1.php | 5 ++--- phpseclib/Net/SSH2.php | 25 +++++++++---------------- 7 files changed, 33 insertions(+), 43 deletions(-) diff --git a/phpseclib/Common/Functions/Strings.php b/phpseclib/Common/Functions/Strings.php index dc869109..76ff62ff 100644 --- a/phpseclib/Common/Functions/Strings.php +++ b/phpseclib/Common/Functions/Strings.php @@ -165,13 +165,12 @@ abstract class Strings /** * Create SSH2-style string * - * @param mixed $input.. + * @param $elements[] * @access public * @return mixed */ - public static function packSSH2() + public static function packSSH2(...$elements) { - $elements = func_get_args(); $format = $elements[0]; array_shift($elements); if (strlen($format) != count($elements)) { diff --git a/phpseclib/Crypt/Common/SymmetricKey.php b/phpseclib/Crypt/Common/SymmetricKey.php index d6b22eeb..c3d2ee4d 100644 --- a/phpseclib/Crypt/Common/SymmetricKey.php +++ b/phpseclib/Crypt/Common/SymmetricKey.php @@ -650,12 +650,13 @@ abstract class SymmetricKey * @see Crypt/Hash.php * @param string $password * @param string $method + * @param $func_args[] * @throws \LengthException if pbkdf1 is being used and the derived key length exceeds the hash length * @return bool * @access public * @internal Could, but not must, extend by the child Crypt_* class */ - public function setPassword($password, $method = 'pbkdf2') + public function setPassword($password, $method = 'pbkdf2', ...$func_args) { $key = ''; @@ -664,23 +665,21 @@ abstract class SymmetricKey case 'pkcs12': // from https://tools.ietf.org/html/rfc7292#appendix-B.2 case 'pbkdf1': case 'pbkdf2': - $func_args = func_get_args(); - // Hash function - $hash = isset($func_args[2]) ? strtolower($func_args[2]) : 'sha1'; + $hash = isset($func_args[0]) ? strtolower($func_args[0]) : 'sha1'; $hashObj = new Hash(); $hashObj->setHash($hash); // WPA and WPA2 use the SSID as the salt - $salt = isset($func_args[3]) ? $func_args[3] : $this->password_default_salt; + $salt = isset($func_args[1]) ? $func_args[1] : $this->password_default_salt; // RFC2898#section-4.2 uses 1,000 iterations by default // WPA and WPA2 use 4,096. - $count = isset($func_args[4]) ? $func_args[4] : 1000; + $count = isset($func_args[2]) ? $func_args[2] : 1000; // Keylength - if (isset($func_args[5])) { - $dkLen = $func_args[5]; + if (isset($func_args[3])) { + $dkLen = $func_args[3]; } else { $key_length = $this->explicit_key_length !== false ? $this->explicit_key_length : $this->key_length; $dkLen = $method == 'pbkdf1' ? 2 * $key_length : $key_length; diff --git a/phpseclib/Crypt/DSA.php b/phpseclib/Crypt/DSA.php index 44644308..7b8c0762 100644 --- a/phpseclib/Crypt/DSA.php +++ b/phpseclib/Crypt/DSA.php @@ -182,14 +182,14 @@ class DSA extends AsymmetricKey * - 'privatekey': The private key. * - 'publickey': The public key. * + * @param $args[] * @access public * @return array|DSA */ - static function createKey() + static function createKey(...$args) { self::initialize_static_variables(); - $args = func_get_args(); if (count($args) == 2 && is_int($args[0]) && is_int($args[1])) { $private = self::createParameters($args[0], $args[1]); } else if (count($args) == 1 && $args[0] instanceof DSA) { diff --git a/phpseclib/File/X509.php b/phpseclib/File/X509.php index 318fadc7..ed1dd893 100644 --- a/phpseclib/File/X509.php +++ b/phpseclib/File/X509.php @@ -3478,12 +3478,13 @@ class X509 /** * Set the domain name's which the cert is to be valid for * + * @param $domains[] * @access public * @return array */ - public function setDomain() + public function setDomain(...$domains) { - $this->domains = func_get_args(); + $this->domains = $domains; $this->removeDNProp('id-at-commonName'); $this->setDNProp('id-at-commonName', $this->domains[0]); } @@ -3492,11 +3493,11 @@ class X509 * Set the IP Addresses's which the cert is to be valid for * * @access public - * @param string $ipAddress optional + * @param $ipAddresses[] optional */ - public function setIPAddress() + public function setIPAddress(...$ipAddresses) { - $this->ipAddresses = func_get_args(); + $this->ipAddresses = $ipAddresses; /* if (!isset($this->domains)) { $this->removeDNProp('id-at-commonName'); diff --git a/phpseclib/Net/SFTP.php b/phpseclib/Net/SFTP.php index 3edb8ea8..c0efba77 100644 --- a/phpseclib/Net/SFTP.php +++ b/phpseclib/Net/SFTP.php @@ -398,15 +398,14 @@ class SFTP extends SSH2 * Login * * @param string $username - * @param string $password + * @param $args[] string password * @throws \UnexpectedValueException on receipt of unexpected packets * @return bool * @access public */ - public function login($username) + public function login($username, ...$args) { - $args = func_get_args(); - if (!call_user_func_array([&$this, 'sublogin'], $args)) { + if (!$this->sublogin($username, ...$args)) { return false; } @@ -1071,12 +1070,12 @@ class SFTP extends SSH2 * $sftp->setListOrder(); * Don't do any sort of sorting * + * @param $args[] * @access public */ - public function setListOrder() + public function setListOrder(...$args) { $this->sortOptions = []; - $args = func_get_args(); if (empty($args)) { return; } diff --git a/phpseclib/Net/SSH1.php b/phpseclib/Net/SSH1.php index ef9a141a..ca296dc8 100644 --- a/phpseclib/Net/SSH1.php +++ b/phpseclib/Net/SSH1.php @@ -1359,12 +1359,11 @@ class SSH1 * named constants from it, using the value as the name of the constant and the index as the value of the constant. * If any of the constants that would be defined already exists, none of the constants will be defined. * - * @param array $array + * @param $args[] * @access private */ - private function define_array() + private function define_array(...$args) { - $args = func_get_args(); foreach ($args as $arg) { foreach ($arg as $key => $value) { if (!defined($value)) { diff --git a/phpseclib/Net/SSH2.php b/phpseclib/Net/SSH2.php index 09045b73..d9dbd5a7 100644 --- a/phpseclib/Net/SSH2.php +++ b/phpseclib/Net/SSH2.php @@ -2098,29 +2098,26 @@ class SSH2 * The $password parameter can be a plaintext password, a \phpseclib\Crypt\RSA object or an array * * @param string $username - * @param mixed $password - * @param mixed $... + * @param $args[] param mixed $password * @return bool * @see self::_login() * @access public */ - public function login($username) + public function login($username, ...$args) { - $args = func_get_args(); - return call_user_func_array([&$this, 'sublogin'], $args); + return $this->sublogin($username, ...$args); } /** * Login Helper * * @param string $username - * @param mixed $password - * @param mixed $... + * @param $args[] param mixed $password * @return bool * @see self::_login_helper() * @access private */ - protected function sublogin($username) + protected function sublogin($username, ...$args) { if (!($this->bitmap & self::MASK_CONSTRUCTOR)) { if (!$this->connect()) { @@ -2128,7 +2125,6 @@ class SSH2 } } - $args = array_slice(func_get_args(), 1); if (empty($args)) { return $this->login_helper($username); } @@ -2375,15 +2371,13 @@ class SSH2 /** * Handle the keyboard-interactive requests / responses. * - * @param string $responses... + * @param $responses[] * @return bool * @throws \RuntimeException on connection error * @access private */ - private function keyboard_interactive_process() + private function keyboard_interactive_process(...$responses) { - $responses = func_get_args(); - if (strlen($this->last_interactive_response)) { $response = $this->last_interactive_response; } else { @@ -4058,12 +4052,11 @@ class SSH2 * named constants from it, using the value as the name of the constant and the index as the value of the constant. * If any of the constants that would be defined already exists, none of the constants will be defined. * - * @param array $array + * @param $args[] * @access protected */ - protected function define_array() + protected function define_array(...$args) { - $args = func_get_args(); foreach ($args as $arg) { foreach ($arg as $key => $value) { if (!defined($value)) {