mirror of
https://github.com/danog/phpseclib.git
synced 2024-11-27 12:55:58 +01:00
Merge branch 'master' of https://github.com/phpseclib/phpseclib
This commit is contained in:
commit
a6acafa36c
@ -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)) {
|
||||
|
@ -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;
|
||||
|
@ -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) {
|
||||
|
@ -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');
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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)) {
|
||||
|
@ -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)) {
|
||||
|
Loading…
Reference in New Issue
Block a user