diff options
Diffstat (limited to 'libs')
-rw-r--r-- | libs/phpseclib-1.0.1/Crypt/AES.php (renamed from libs/phpseclib-1.0.0/Crypt/AES.php) | 26 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Crypt/Base.php (renamed from libs/phpseclib-1.0.0/Crypt/Base.php) | 368 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Crypt/Blowfish.php (renamed from libs/phpseclib-1.0.0/Crypt/Blowfish.php) | 82 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Crypt/DES.php (renamed from libs/phpseclib-1.0.0/Crypt/DES.php) | 113 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Crypt/Hash.php (renamed from libs/phpseclib-1.0.0/Crypt/Hash.php) | 90 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Crypt/RC2.php (renamed from libs/phpseclib-1.0.0/Crypt/RC2.php) | 116 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Crypt/RC4.php (renamed from libs/phpseclib-1.0.0/Crypt/RC4.php) | 75 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Crypt/RSA.php (renamed from libs/phpseclib-1.0.0/Crypt/RSA.php) | 330 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Crypt/Random.php (renamed from libs/phpseclib-1.0.0/Crypt/Random.php) | 17 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Crypt/Rijndael.php (renamed from libs/phpseclib-1.0.0/Crypt/Rijndael.php) | 157 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Crypt/TripleDES.php (renamed from libs/phpseclib-1.0.0/Crypt/TripleDES.php) | 84 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Crypt/Twofish.php (renamed from libs/phpseclib-1.0.0/Crypt/Twofish.php) | 121 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/File/ANSI.php (renamed from libs/phpseclib-1.0.0/File/ANSI.php) | 52 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/File/ASN1.php (renamed from libs/phpseclib-1.0.0/File/ASN1.php) | 88 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/File/X509.php (renamed from libs/phpseclib-1.0.0/File/X509.php) | 474 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Math/BigInteger.php (renamed from libs/phpseclib-1.0.0/Math/BigInteger.php) | 409 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Net/SCP.php (renamed from libs/phpseclib-1.0.0/Net/SCP.php) | 38 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Net/SFTP.php (renamed from libs/phpseclib-1.0.0/Net/SFTP.php) | 398 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Net/SFTP/Stream.php (renamed from libs/phpseclib-1.0.0/Net/SFTP/Stream.php) | 149 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Net/SSH1.php (renamed from libs/phpseclib-1.0.0/Net/SSH1.php) | 238 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/Net/SSH2.php (renamed from libs/phpseclib-1.0.0/Net/SSH2.php) | 789 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/System/SSH/Agent.php (renamed from libs/phpseclib-1.0.0/System/SSH/Agent.php) | 38 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/System/SSH_Agent.php (renamed from libs/phpseclib-1.0.0/System/SSH_Agent.php) | 0 | ||||
-rw-r--r-- | libs/phpseclib-1.0.1/openssl.cnf (renamed from libs/phpseclib-1.0.0/openssl.cnf) | 0 |
24 files changed, 2196 insertions, 2056 deletions
diff --git a/libs/phpseclib-1.0.0/Crypt/AES.php b/libs/phpseclib-1.0.1/Crypt/AES.php index a0cbc7b..93457a2 100644 --- a/libs/phpseclib-1.0.0/Crypt/AES.php +++ b/libs/phpseclib-1.0.1/Crypt/AES.php @@ -11,13 +11,13 @@ * just a wrapper to Rijndael.php you may consider using Rijndael.php instead of
* to save one include_once().
*
- * If {@link Crypt_AES::setKeyLength() setKeyLength()} isn't called, it'll be calculated from
- * {@link Crypt_AES::setKey() setKey()}. ie. if the key is 128-bits, the key length will be 128-bits. If it's 136-bits
- * it'll be null-padded to 192-bits and 192 bits will be the key length until {@link Crypt_AES::setKey() setKey()}
+ * If {@link self::setKeyLength() setKeyLength()} isn't called, it'll be calculated from
+ * {@link self::setKey() setKey()}. ie. if the key is 128-bits, the key length will be 128-bits. If it's 136-bits
+ * it'll be null-padded to 192-bits and 192 bits will be the key length until {@link self::setKey() setKey()}
* is called, again, at which point, it'll be recalculated.
*
* Since Crypt_AES extends Crypt_Rijndael, some functions are available to be called that, in the context of AES, don't
- * make a whole lot of sense. {@link Crypt_AES::setBlockLength() setBlockLength()}, for instance. Calling that function,
+ * make a whole lot of sense. {@link self::setBlockLength() setBlockLength()}, for instance. Calling that function,
* however possible, won't do anything (AES has a fixed block length whereas Rijndael has a variable one).
*
* Here's a short example of how to use this library:
@@ -74,8 +74,8 @@ if (!class_exists('Crypt_Rijndael')) { /**#@+
* @access public
- * @see Crypt_AES::encrypt()
- * @see Crypt_AES::decrypt()
+ * @see self::encrypt()
+ * @see self::decrypt()
*/
/**
* Encrypt / decrypt using the Counter mode.
@@ -124,7 +124,7 @@ class Crypt_AES extends Crypt_Rijndael * The namespace used by the cipher for its constants.
*
* @see Crypt_Base::const_namespace
- * @var String
+ * @var string
* @access private
*/
var $const_namespace = 'AES';
@@ -136,7 +136,7 @@ class Crypt_AES extends Crypt_Rijndael *
* @see Crypt_Rijndael::setBlockLength()
* @access public
- * @param Integer $length
+ * @param int $length
*/
function setBlockLength($length)
{
@@ -151,7 +151,7 @@ class Crypt_AES extends Crypt_Rijndael *
* @see Crypt_Rijndael:setKeyLength()
* @access public
- * @param Integer $length
+ * @param int $length
*/
function setKeyLength($length)
{
@@ -173,7 +173,7 @@ class Crypt_AES extends Crypt_Rijndael * @see Crypt_Rijndael:setKey()
* @see setKeyLength()
* @access public
- * @param String $key
+ * @param string $key
*/
function setKey($key)
{
@@ -183,13 +183,13 @@ class Crypt_AES extends Crypt_Rijndael $length = strlen($key);
switch (true) {
case $length <= 16:
- $this->key_size = 16;
+ $this->key_length = 16;
break;
case $length <= 24:
- $this->key_size = 24;
+ $this->key_length = 24;
break;
default:
- $this->key_size = 32;
+ $this->key_length = 32;
}
$this->_setEngine();
}
diff --git a/libs/phpseclib-1.0.0/Crypt/Base.php b/libs/phpseclib-1.0.1/Crypt/Base.php index 0e32425..be4ff0f 100644 --- a/libs/phpseclib-1.0.0/Crypt/Base.php +++ b/libs/phpseclib-1.0.1/Crypt/Base.php @@ -54,8 +54,8 @@ /**#@+
* @access public
- * @see Crypt_Base::encrypt()
- * @see Crypt_Base::decrypt()
+ * @see self::encrypt()
+ * @see self::decrypt()
*/
/**
* Encrypt / decrypt using the Counter mode.
@@ -97,7 +97,7 @@ define('CRYPT_MODE_STREAM', 5); /**#@+
* @access private
- * @see Crypt_Base::Crypt_Base()
+ * @see self::Crypt_Base()
* @internal These constants are for internal use only
*/
/**
@@ -127,8 +127,8 @@ class Crypt_Base /**
* The Encryption Mode
*
- * @see Crypt_Base::Crypt_Base()
- * @var Integer
+ * @see self::Crypt_Base()
+ * @var int
* @access private
*/
var $mode;
@@ -136,7 +136,7 @@ class Crypt_Base /**
* The Block Length of the block cipher
*
- * @var Integer
+ * @var int
* @access private
*/
var $block_size = 16;
@@ -144,8 +144,8 @@ class Crypt_Base /**
* The Key
*
- * @see Crypt_Base::setKey()
- * @var String
+ * @see self::setKey()
+ * @var string
* @access private
*/
var $key = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
@@ -153,8 +153,8 @@ class Crypt_Base /**
* The Initialization Vector
*
- * @see Crypt_Base::setIV()
- * @var String
+ * @see self::setIV()
+ * @var string
* @access private
*/
var $iv;
@@ -162,9 +162,9 @@ class Crypt_Base /**
* A "sliding" Initialization Vector
*
- * @see Crypt_Base::enableContinuousBuffer()
- * @see Crypt_Base::_clearBuffers()
- * @var String
+ * @see self::enableContinuousBuffer()
+ * @see self::_clearBuffers()
+ * @var string
* @access private
*/
var $encryptIV;
@@ -172,9 +172,9 @@ class Crypt_Base /**
* A "sliding" Initialization Vector
*
- * @see Crypt_Base::enableContinuousBuffer()
- * @see Crypt_Base::_clearBuffers()
- * @var String
+ * @see self::enableContinuousBuffer()
+ * @see self::_clearBuffers()
+ * @var string
* @access private
*/
var $decryptIV;
@@ -182,8 +182,8 @@ class Crypt_Base /**
* Continuous Buffer status
*
- * @see Crypt_Base::enableContinuousBuffer()
- * @var Boolean
+ * @see self::enableContinuousBuffer()
+ * @var bool
* @access private
*/
var $continuousBuffer = false;
@@ -191,9 +191,9 @@ class Crypt_Base /**
* Encryption buffer for CTR, OFB and CFB modes
*
- * @see Crypt_Base::encrypt()
- * @see Crypt_Base::_clearBuffers()
- * @var Array
+ * @see self::encrypt()
+ * @see self::_clearBuffers()
+ * @var array
* @access private
*/
var $enbuffer;
@@ -201,9 +201,9 @@ class Crypt_Base /**
* Decryption buffer for CTR, OFB and CFB modes
*
- * @see Crypt_Base::decrypt()
- * @see Crypt_Base::_clearBuffers()
- * @var Array
+ * @see self::decrypt()
+ * @see self::_clearBuffers()
+ * @var array
* @access private
*/
var $debuffer;
@@ -214,8 +214,8 @@ class Crypt_Base * The mcrypt resource can be recreated every time something needs to be created or it can be created just once.
* Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode.
*
- * @see Crypt_Base::encrypt()
- * @var Resource
+ * @see self::encrypt()
+ * @var resource
* @access private
*/
var $enmcrypt;
@@ -226,8 +226,8 @@ class Crypt_Base * The mcrypt resource can be recreated every time something needs to be created or it can be created just once.
* Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode.
*
- * @see Crypt_Base::decrypt()
- * @var Resource
+ * @see self::decrypt()
+ * @var resource
* @access private
*/
var $demcrypt;
@@ -237,7 +237,7 @@ class Crypt_Base *
* @see Crypt_Twofish::setKey()
* @see Crypt_Twofish::setIV()
- * @var Boolean
+ * @var bool
* @access private
*/
var $enchanged = true;
@@ -247,7 +247,7 @@ class Crypt_Base *
* @see Crypt_Twofish::setKey()
* @see Crypt_Twofish::setIV()
- * @var Boolean
+ * @var bool
* @access private
*/
var $dechanged = true;
@@ -263,10 +263,10 @@ class Crypt_Base * use a separate ECB-mode mcrypt resource.
*
* @link http://phpseclib.sourceforge.net/cfb-demo.phps
- * @see Crypt_Base::encrypt()
- * @see Crypt_Base::decrypt()
- * @see Crypt_Base::_setupMcrypt()
- * @var Resource
+ * @see self::encrypt()
+ * @see self::decrypt()
+ * @see self::_setupMcrypt()
+ * @var resource
* @access private
*/
var $ecb;
@@ -287,8 +287,8 @@ class Crypt_Base * which, typically, depends on the complexity
* on its internaly Key-expanding algorithm.
*
- * @see Crypt_Base::encrypt()
- * @var Integer
+ * @see self::encrypt()
+ * @var int
* @access private
*/
var $cfb_init_len = 600;
@@ -296,10 +296,10 @@ class Crypt_Base /**
* Does internal cipher state need to be (re)initialized?
*
- * @see setKey()
- * @see setIV()
- * @see disableContinuousBuffer()
- * @var Boolean
+ * @see self::setKey()
+ * @see self::setIV()
+ * @see self::disableContinuousBuffer()
+ * @var bool
* @access private
*/
var $changed = true;
@@ -307,8 +307,8 @@ class Crypt_Base /**
* Padding status
*
- * @see Crypt_Base::enablePadding()
- * @var Boolean
+ * @see self::enablePadding()
+ * @var bool
* @access private
*/
var $padding = true;
@@ -316,8 +316,8 @@ class Crypt_Base /**
* Is the mode one that is paddable?
*
- * @see Crypt_Base::Crypt_Base()
- * @var Boolean
+ * @see self::Crypt_Base()
+ * @var bool
* @access private
*/
var $paddable = false;
@@ -331,10 +331,10 @@ class Crypt_Base * - CRYPT_ENGINE_MCRYPT (fast, php-extension: mcrypt, extension_loaded('mcrypt') required)
* - CRYPT_ENGINE_INTERNAL (slower, pure php-engine, no php-extension required)
*
- * @see Crypt_Base::_setEngine()
- * @see Crypt_Base::encrypt()
- * @see Crypt_Base::decrypt()
- * @var Integer
+ * @see self::_setEngine()
+ * @see self::encrypt()
+ * @see self::decrypt()
+ * @var int
* @access private
*/
var $engine;
@@ -342,9 +342,9 @@ class Crypt_Base /**
* Holds the preferred crypt engine
*
- * @see Crypt_Base::_setEngine()
- * @see Crypt_Base::setPreferredEngine()
- * @var Integer
+ * @see self::_setEngine()
+ * @see self::setPreferredEngine()
+ * @var int
* @access private
*/
var $preferredEngine;
@@ -356,8 +356,8 @@ class Crypt_Base *
* @link http://www.php.net/mcrypt_module_open
* @link http://www.php.net/mcrypt_list_algorithms
- * @see Crypt_Base::_setupMcrypt()
- * @var String
+ * @see self::_setupMcrypt()
+ * @var string
* @access private
*/
var $cipher_name_mcrypt;
@@ -368,7 +368,7 @@ class Crypt_Base * Only used if $engine == CRYPT_ENGINE_OPENSSL
*
* @link http://www.php.net/openssl-get-cipher-methods
- * @var String
+ * @var string
* @access private
*/
var $cipher_name_openssl;
@@ -380,25 +380,16 @@ class Crypt_Base * it can still be emulated with ECB mode.
*
* @link http://www.php.net/openssl-get-cipher-methods
- * @var String
+ * @var string
* @access private
*/
var $cipher_name_openssl_ecb;
/**
- * The default password key_size used by setPassword()
- *
- * @see Crypt_Base::setPassword()
- * @var Integer
- * @access private
- */
- var $password_key_size = 32;
-
- /**
* The default salt used by setPassword()
*
- * @see Crypt_Base::setPassword()
- * @var String
+ * @see self::setPassword()
+ * @var string
* @access private
*/
var $password_default_salt = 'phpseclib/salt';
@@ -420,8 +411,8 @@ class Crypt_Base * $aes = new Crypt_AES(CRYPT_AES_MODE_CFB); // $aes will operate in cfb mode
* $aes = new Crypt_AES(CRYPT_MODE_CFB); // identical
*
- * @see Crypt_Base::Crypt_Base()
- * @var String
+ * @see self::Crypt_Base()
+ * @var string
* @access private
*/
var $const_namespace;
@@ -432,10 +423,10 @@ class Crypt_Base * Used by encrypt() / decrypt()
* only if $engine == CRYPT_ENGINE_INTERNAL
*
- * @see Crypt_Base::encrypt()
- * @see Crypt_Base::decrypt()
- * @see Crypt_Base::_setupInlineCrypt()
- * @see Crypt_Base::$use_inline_crypt
+ * @see self::encrypt()
+ * @see self::decrypt()
+ * @see self::_setupInlineCrypt()
+ * @see self::$use_inline_crypt
* @var Callback
* @access private
*/
@@ -444,9 +435,9 @@ class Crypt_Base /**
* Holds whether performance-optimized $inline_crypt() can/should be used.
*
- * @see Crypt_Base::encrypt()
- * @see Crypt_Base::decrypt()
- * @see Crypt_Base::inline_crypt
+ * @see self::encrypt()
+ * @see self::decrypt()
+ * @see self::inline_crypt
* @var mixed
* @access private
*/
@@ -455,8 +446,8 @@ class Crypt_Base /**
* If OpenSSL can be used in ECB but not in CTR we can emulate CTR
*
- * @see Crypt_Base::_openssl_ctr_process()
- * @var Boolean
+ * @see self::_openssl_ctr_process()
+ * @var bool
* @access private
*/
var $openssl_emulate_ctr = false;
@@ -464,13 +455,31 @@ class Crypt_Base /**
* Determines what options are passed to openssl_encrypt/decrypt
*
- * @see Crypt_Base::isValidEngine()
+ * @see self::isValidEngine()
* @var mixed
* @access private
*/
var $openssl_options;
/**
+ * Has the key length explicitly been set or should it be derived from the key, itself?
+ *
+ * @see self::setKeyLength()
+ * @var bool
+ * @access private
+ */
+ var $explicit_key_length = false;
+
+ /**
+ * Don't truncate / null pad key
+ *
+ * @see self::_clearBuffers()
+ * @var bool
+ * @access private
+ */
+ var $skip_key_adjustment = false;
+
+ /**
* Default Constructor.
*
* Determines whether or not the mcrypt extension should be used.
@@ -491,7 +500,7 @@ class Crypt_Base *
* If not explicitly set, CRYPT_MODE_CBC will be used.
*
- * @param optional Integer $mode
+ * @param int $mode
* @access public
*/
function Crypt_Base($mode = CRYPT_MODE_CBC)
@@ -529,7 +538,7 @@ class Crypt_Base * to be all zero's.
*
* @access public
- * @param String $iv
+ * @param string $iv
* @internal Can be overwritten by a sub class, but does not have to be
*/
function setIV($iv)
@@ -543,6 +552,43 @@ class Crypt_Base }
/**
+ * Sets the key length.
+ *
+ * Keys with explicitly set lengths need to be treated accordingly
+ *
+ * @access public
+ * @param int $length
+ */
+ function setKeyLength($length)
+ {
+ $this->explicit_key_length = true;
+ $this->changed = true;
+ $this->_setEngine();
+ }
+
+ /**
+ * Returns the current key length in bits
+ *
+ * @access public
+ * @return int
+ */
+ function getKeyLength()
+ {
+ return $this->key_length << 3;
+ }
+
+ /**
+ * Returns the current block length in bits
+ *
+ * @access public
+ * @return int
+ */
+ function getBlockLength()
+ {
+ return $this->block_size << 3;
+ }
+
+ /**
* Sets the key.
*
* The min/max length(s) of the key depends on the cipher which is used.
@@ -553,11 +599,16 @@ class Crypt_Base * If the key is not explicitly set, it'll be assumed to be all null bytes.
*
* @access public
- * @param String $key
+ * @param string $key
* @internal Could, but not must, extend by the child Crypt_* class
*/
function setKey($key)
{
+ if (!$this->explicit_key_length) {
+ $this->setKeyLength(strlen($key) << 3);
+ $this->explicit_key_length = false;
+ }
+
$this->key = $key;
$this->changed = true;
$this->_setEngine();
@@ -573,9 +624,9 @@ class Crypt_Base * Where $hash (default = sha1) currently supports the following hashes: see: Crypt/Hash.php
*
* @see Crypt/Hash.php
- * @param String $password
- * @param optional String $method
- * @return Boolean
+ * @param string $password
+ * @param string $method
+ * @return bool
* @access public
* @internal Could, but not must, extend by the child Crypt_* class
*/
@@ -601,7 +652,7 @@ class Crypt_Base if (isset($func_args[5])) {
$dkLen = $func_args[5];
} else {
- $dkLen = $method == 'pbkdf1' ? 2 * $this->password_key_size : $this->password_key_size;
+ $dkLen = $method == 'pbkdf1' ? 2 * $this->key_length : $this->key_length;
}
switch (true) {
@@ -670,10 +721,10 @@ class Crypt_Base * strlen($plaintext) will still need to be a multiple of the block size, however, arbitrary values can be added to make it that
* length.
*
- * @see Crypt_Base::decrypt()
+ * @see self::decrypt()
* @access public
- * @param String $plaintext
- * @return String $ciphertext
+ * @param string $plaintext
+ * @return string $ciphertext
* @internal Could, but not must, extend by the child Crypt_* class
*/
function encrypt($plaintext)
@@ -950,7 +1001,7 @@ class Crypt_Base if ($this->continuousBuffer) {
$this->encryptIV = $xor;
if ($start = strlen($plaintext) % $block_size) {
- $buffer['xor'] = substr($key, $start) . $buffer['xor'];
+ $buffer['xor'] = substr($key, $start) . $buffer['xor'];
}
}
break;
@@ -968,10 +1019,10 @@ class Crypt_Base * If strlen($ciphertext) is not a multiple of the block size, null bytes will be added to the end of the string until
* it is.
*
- * @see Crypt_Base::encrypt()
+ * @see self::encrypt()
* @access public
- * @param String $ciphertext
- * @return String $plaintext
+ * @param string $ciphertext
+ * @return string $plaintext
* @internal Could, but not must, extend by the child Crypt_* class
*/
function decrypt($ciphertext)
@@ -993,7 +1044,7 @@ class Crypt_Base break;
case CRYPT_MODE_ECB:
if (!defined('OPENSSL_RAW_DATA')) {
- $ciphetext.= openssl_encrypt('', $this->cipher_name_openssl_ecb, $this->key, true);
+ $ciphertext.= openssl_encrypt('', $this->cipher_name_openssl_ecb, $this->key, true);
}
$plaintext = openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options);
break;
@@ -1240,7 +1291,7 @@ class Crypt_Base if ($this->continuousBuffer) {
$this->decryptIV = $xor;
if ($start = strlen($ciphertext) % $block_size) {
- $buffer['xor'] = substr($key, $start) . $buffer['xor'];
+ $buffer['xor'] = substr($key, $start) . $buffer['xor'];
}
}
break;
@@ -1259,12 +1310,12 @@ class Crypt_Base * and Crypt_Base::decrypt(). Also, OpenSSL doesn't implement CTR for all of it's symmetric ciphers so this
* function will emulate CTR with ECB when necesary.
*
- * @see Crypt_Base::encrypt()
- * @see Crypt_Base::decrypt()
- * @param String $plaintext
- * @param String $encryptIV
- * @param Array $buffer
- * @return String
+ * @see self::encrypt()
+ * @see self::decrypt()
+ * @param string $plaintext
+ * @param string $encryptIV
+ * @param array $buffer
+ * @return string
* @access private
*/
function _openssl_ctr_process($plaintext, &$encryptIV, &$buffer)
@@ -1353,12 +1404,12 @@ class Crypt_Base * for OFB is the same for both encrypting and decrypting this function is re-used by both Crypt_Base::encrypt()
* and Crypt_Base::decrypt().
*
- * @see Crypt_Base::encrypt()
- * @see Crypt_Base::decrypt()
- * @param String $plaintext
- * @param String $encryptIV
- * @param Array $buffer
- * @return String
+ * @see self::encrypt()
+ * @see self::decrypt()
+ * @param string $plaintext
+ * @param string $encryptIV
+ * @param array $buffer
+ * @return string
* @access private
*/
function _openssl_ofb_process($plaintext, &$encryptIV, &$buffer)
@@ -1404,7 +1455,7 @@ class Crypt_Base *
* May need to be overwritten by classes extending this one in some cases
*
- * @return Integer
+ * @return int
* @access private
*/
function _openssl_translate_mode()
@@ -1435,7 +1486,7 @@ class Crypt_Base * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is
* transmitted separately)
*
- * @see Crypt_Base::disablePadding()
+ * @see self::disablePadding()
* @access public
*/
function enablePadding()
@@ -1446,7 +1497,7 @@ class Crypt_Base /**
* Do not pad packets.
*
- * @see Crypt_Base::enablePadding()
+ * @see self::enablePadding()
* @access public
*/
function disablePadding()
@@ -1488,7 +1539,7 @@ class Crypt_Base * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them),
* however, they are also less intuitive and more likely to cause you problems.
*
- * @see Crypt_Base::disableContinuousBuffer()
+ * @see self::disableContinuousBuffer()
* @access public
* @internal Could, but not must, extend by the child Crypt_* class
*/
@@ -1508,7 +1559,7 @@ class Crypt_Base *
* The default behavior.
*
- * @see Crypt_Base::enableContinuousBuffer()
+ * @see self::enableContinuousBuffer()
* @access public
* @internal Could, but not must, extend by the child Crypt_* class
*/
@@ -1530,10 +1581,10 @@ class Crypt_Base /**
* Test for engine validity
*
- * @see Crypt_Base::Crypt_Base()
- * @param Integer $engine
+ * @see self::Crypt_Base()
+ * @param int $engine
* @access public
- * @return Boolean
+ * @return bool
*/
function isValidEngine($engine)
{
@@ -1597,8 +1648,8 @@ class Crypt_Base *
* If the preferred crypt engine is not available the fastest available one will be used
*
- * @see Crypt_Base::Crypt_Base()
- * @param Integer $engine
+ * @see self::Crypt_Base()
+ * @param int $engine
* @access public
*/
function setPreferredEngine($engine)
@@ -1619,7 +1670,7 @@ class Crypt_Base /**
* Returns the engine currently being utilized
*
- * @see Crypt_Base::_setEngine()
+ * @see self::_setEngine()
* @access public
*/
function getEngine()
@@ -1630,7 +1681,7 @@ class Crypt_Base /**
* Sets the engine as appropriate
*
- * @see Crypt_Base::Crypt_Base()
+ * @see self::Crypt_Base()
* @access private
*/
function _setEngine()
@@ -1673,8 +1724,8 @@ class Crypt_Base * Encrypts a block
*
* @access private
- * @param String $in
- * @return String
+ * @param string $in
+ * @return string
* @internal Must be extended by the child Crypt_* class
*/
function _encryptBlock($in)
@@ -1686,8 +1737,8 @@ class Crypt_Base * Decrypts a block
*
* @access private
- * @param String $in
- * @return String
+ * @param string $in
+ * @return string
* @internal Must be extended by the child Crypt_* class
*/
function _decryptBlock($in)
@@ -1700,7 +1751,7 @@ class Crypt_Base *
* Only used if $engine == CRYPT_ENGINE_INTERNAL
*
- * @see Crypt_Base::_setup()
+ * @see self::_setup()
* @access private
* @internal Must be extended by the child Crypt_* class
*/
@@ -1726,9 +1777,9 @@ class Crypt_Base *
* - First run of encrypt() / decrypt() with no init-settings
*
- * @see setKey()
- * @see setIV()
- * @see disableContinuousBuffer()
+ * @see self::setKey()
+ * @see self::setIV()
+ * @see self::disableContinuousBuffer()
* @access private
* @internal _setup() is always called before en/decryption.
* @internal Could, but not must, extend by the child Crypt_* class
@@ -1760,9 +1811,9 @@ class Crypt_Base *
* - First run of encrypt() / decrypt()
*
- * @see setKey()
- * @see setIV()
- * @see disableContinuousBuffer()
+ * @see self::setKey()
+ * @see self::setIV()
+ * @see self::disableContinuousBuffer()
* @access private
* @internal Could, but not must, extend by the child Crypt_* class
*/
@@ -1790,7 +1841,6 @@ class Crypt_Base if ($this->mode == CRYPT_MODE_CFB) {
$this->ecb = mcrypt_module_open($this->cipher_name_mcrypt, '', MCRYPT_MODE_ECB, '');
}
-
} // else should mcrypt_generic_deinit be called?
if ($this->mode == CRYPT_MODE_CFB) {
@@ -1808,10 +1858,10 @@ class Crypt_Base * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless
* and padding will, hence forth, be enabled.
*
- * @see Crypt_Base::_unpad()
- * @param String $text
+ * @see self::_unpad()
+ * @param string $text
* @access private
- * @return String
+ * @return string
*/
function _pad($text)
{
@@ -1837,10 +1887,10 @@ class Crypt_Base * If padding is enabled and the reported padding length is invalid the encryption key will be assumed to be wrong
* and false will be returned.
*
- * @see Crypt_Base::_pad()
- * @param String $text
+ * @see self::_pad()
+ * @param string $text
* @access private
- * @return String
+ * @return string
*/
function _unpad($text)
{
@@ -1874,6 +1924,10 @@ class Crypt_Base // mcrypt's handling of invalid's $iv:
// $this->encryptIV = $this->decryptIV = strlen($this->iv) == $this->block_size ? $this->iv : str_repeat("\0", $this->block_size);
$this->encryptIV = $this->decryptIV = str_pad(substr($this->iv, 0, $this->block_size), $this->block_size, "\0");
+
+ if (!$this->skip_key_adjustment) {
+ $this->key = str_pad(substr($this->key, 0, $this->key_length), $this->key_length, "\0");
+ }
}
/**
@@ -1881,10 +1935,10 @@ class Crypt_Base *
* Inspired by array_shift
*
- * @param String $string
- * @param optional Integer $index
+ * @param string $string
+ * @param int $index
* @access private
- * @return String
+ * @return string
*/
function _string_shift(&$string, $index = 1)
{
@@ -1898,10 +1952,10 @@ class Crypt_Base *
* Inspired by array_pop
*
- * @param String $string
- * @param optional Integer $index
+ * @param string $string
+ * @param int $index
* @access private
- * @return String
+ * @return string
*/
function _string_pop(&$string, $index = 1)
{
@@ -1913,9 +1967,9 @@ class Crypt_Base /**
* Increment the current string
*
- * @see Crypt_Base::decrypt()
- * @see Crypt_Base::encrypt()
- * @param String $var
+ * @see self::decrypt()
+ * @see self::encrypt()
+ * @param string $var
* @access private
*/
function _increment_str(&$var)
@@ -2000,10 +2054,10 @@ class Crypt_Base * - The callback function should not use the 'return' statement, but en/decrypt'ing the content of $in only
*
*
- * @see Crypt_Base::_setup()
- * @see Crypt_Base::_createInlineCryptFunction()
- * @see Crypt_Base::encrypt()
- * @see Crypt_Base::decrypt()
+ * @see self::_setup()
+ * @see self::_createInlineCryptFunction()
+ * @see self::encrypt()
+ * @see self::decrypt()
* @access private
* @internal If a Crypt_* class providing inline crypting it must extend _setupInlineCrypt()
*/
@@ -2122,12 +2176,12 @@ class Crypt_Base * );
* </code>
*
- * @see Crypt_Base::_setupInlineCrypt()
- * @see Crypt_Base::encrypt()
- * @see Crypt_Base::decrypt()
- * @param Array $cipher_code
+ * @see self::_setupInlineCrypt()
+ * @see self::encrypt()
+ * @see self::decrypt()
+ * @param array $cipher_code
* @access private
- * @return String (the name of the created callback function)
+ * @return string (the name of the created callback function)
*/
function _createInlineCryptFunction($cipher_code)
{
@@ -2494,7 +2548,7 @@ class Crypt_Base * for which $mode the lambda function was created.
*
* @access private
- * @return Array &$functions
+ * @return array &$functions
*/
function &_getLambdaFunctions()
{
@@ -2505,10 +2559,10 @@ class Crypt_Base /**
* Generates a digest from $bytes
*
- * @see _setupInlineCrypt()
+ * @see self::_setupInlineCrypt()
* @access private
* @param $bytes
- * @return String
+ * @return string
*/
function _hashInlineCryptFunction($bytes)
{
diff --git a/libs/phpseclib-1.0.0/Crypt/Blowfish.php b/libs/phpseclib-1.0.1/Crypt/Blowfish.php index 6661b16..c6acf25 100644 --- a/libs/phpseclib-1.0.0/Crypt/Blowfish.php +++ b/libs/phpseclib-1.0.1/Crypt/Blowfish.php @@ -64,8 +64,8 @@ if (!class_exists('Crypt_Base')) { /**#@+
* @access public
- * @see Crypt_Blowfish::encrypt()
- * @see Crypt_Blowfish::decrypt()
+ * @see self::encrypt()
+ * @see self::decrypt()
*/
/**
* Encrypt / decrypt using the Counter mode.
@@ -115,26 +115,16 @@ class Crypt_Blowfish extends Crypt_Base * Block Length of the cipher
*
* @see Crypt_Base::block_size
- * @var Integer
+ * @var int
* @access private
*/
var $block_size = 8;
/**
- * The default password key_size used by setPassword()
- *
- * @see Crypt_Base::password_key_size
- * @see Crypt_Base::setPassword()
- * @var Integer
- * @access private
- */
- var $password_key_size = 56;
-
- /**
* The namespace used by the cipher for its constants.
*
* @see Crypt_Base::const_namespace
- * @var String
+ * @var string
* @access private
*/
var $const_namespace = 'BLOWFISH';
@@ -143,7 +133,7 @@ class Crypt_Blowfish extends Crypt_Base * The mcrypt specific name of the cipher
*
* @see Crypt_Base::cipher_name_mcrypt
- * @var String
+ * @var string
* @access private
*/
var $cipher_name_mcrypt = 'blowfish';
@@ -152,7 +142,7 @@ class Crypt_Blowfish extends Crypt_Base * Optimizing value while CFB-encrypting
*
* @see Crypt_Base::cfb_init_len
- * @var Integer
+ * @var int
* @access private
*/
var $cfb_init_len = 500;
@@ -165,7 +155,7 @@ class Crypt_Blowfish extends Crypt_Base * @access private
* @var array
*/
- var $sbox0 = array (
+ var $sbox0 = array(
0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99,
0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e,
0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,
@@ -348,37 +338,43 @@ class Crypt_Blowfish extends Crypt_Base /**
* Holds the last used key
*
- * @var Array
+ * @var array
* @access private
*/
var $kl;
/**
- * Sets the key.
+ * The Key Length (in bytes)
*
- * Keys can be of any length. Blowfish, itself, requires the use of a key between 32 and max. 448-bits long.
- * If the key is less than 32-bits we NOT fill the key to 32bit but let the key as it is to be compatible
- * with mcrypt because mcrypt act this way with blowfish key's < 32 bits.
- *
- * If the key is more than 448-bits, we trim the excess bits.
+ * @see Crypt_Base::setKeyLength()
+ * @var int
+ * @access private
+ * @internal The max value is 256 / 8 = 32, the min value is 128 / 8 = 16. Exists in conjunction with $Nk
+ * because the encryption / decryption / key schedule creation requires this number and not $key_length. We could
+ * derive this from $key_length or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu
+ * of that, we'll just precompute it once.
+ */
+ var $key_length = 16;
+
+ /**
+ * Sets the key length.
*
- * If the key is not explicitly set, or empty, it'll be assumed a 128 bits key to be all null bytes.
+ * Key lengths can be between 32 and 448 bits.
*
* @access public
- * @see Crypt_Base::setKey()
- * @param String $key
+ * @param int $length
*/
- function setKey($key)
+ function setKeyLength($length)
{
- $keylength = strlen($key);
-
- if (!$keylength) {
- $key = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
- } elseif ($keylength > 56) {
- $key = substr($key, 0, 56);
+ if ($length < 32) {
+ $this->key_length = 7;
+ } elseif ($length > 448) {
+ $this->key_length = 56;
+ } else {
+ $this->key_length = $length >> 3;
}
- parent::setKey($key);
+ parent::setKeyLength($length);
}
/**
@@ -387,14 +383,14 @@ class Crypt_Blowfish extends Crypt_Base * This is mainly just a wrapper to set things up for Crypt_Base::isValidEngine()
*
* @see Crypt_Base::isValidEngine()
- * @param Integer $engine
+ * @param int $engine
* @access public
- * @return Boolean
+ * @return bool
*/
function isValidEngine($engine)
{
if ($engine == CRYPT_ENGINE_OPENSSL) {
- if (strlen($this->key) != 16) {
+ if ($this->key_length != 16) {
return false;
}
$this->cipher_name_openssl_ecb = 'bf-ecb';
@@ -464,8 +460,8 @@ class Crypt_Blowfish extends Crypt_Base * Encrypts a block
*
* @access private
- * @param String $in
- * @return String
+ * @param string $in
+ * @return string
*/
function _encryptBlock($in)
{
@@ -500,8 +496,8 @@ class Crypt_Blowfish extends Crypt_Base * Decrypts a block
*
* @access private
- * @param String $in
- * @return String
+ * @param string $in
+ * @return string
*/
function _decryptBlock($in)
{
@@ -544,7 +540,7 @@ class Crypt_Blowfish extends Crypt_Base // We create max. 10 hi-optimized code for memory reason. Means: For each $key one ultra fast inline-crypt function.
// (Currently, for Crypt_Blowfish, one generated $lambda_function cost on php5.5@32bit ~100kb unfreeable mem and ~180kb on php5.5@64bit)
// After that, we'll still create very fast optimized code but not the hi-ultimative code, for each $mode one.
- $gen_hi_opt_code = (bool)( count($lambda_functions) < 10 );
+ $gen_hi_opt_code = (bool)(count($lambda_functions) < 10);
// Generation of a unique hash for our generated code
$code_hash = "Crypt_Blowfish, {$this->mode}";
diff --git a/libs/phpseclib-1.0.0/Crypt/DES.php b/libs/phpseclib-1.0.1/Crypt/DES.php index cc7530a..cf044db 100644 --- a/libs/phpseclib-1.0.0/Crypt/DES.php +++ b/libs/phpseclib-1.0.1/Crypt/DES.php @@ -69,8 +69,8 @@ if (!class_exists('Crypt_Base')) { /**#@+
* @access private
- * @see Crypt_DES::_setupKey()
- * @see Crypt_DES::_processBlock()
+ * @see self::_setupKey()
+ * @see self::_processBlock()
*/
/**
* Contains $keys[CRYPT_DES_ENCRYPT]
@@ -84,8 +84,8 @@ define('CRYPT_DES_DECRYPT', 1); /**#@+
* @access public
- * @see Crypt_DES::encrypt()
- * @see Crypt_DES::decrypt()
+ * @see self::encrypt()
+ * @see self::decrypt()
*/
/**
* Encrypt / decrypt using the Counter mode.
@@ -134,36 +134,25 @@ class Crypt_DES extends Crypt_Base * Block Length of the cipher
*
* @see Crypt_Base::block_size
- * @var Integer
+ * @var int
* @access private
*/
var $block_size = 8;
/**
- * The Key
+ * Key Length (in bytes)
*
- * @see Crypt_Base::key
- * @see setKey()
- * @var String
+ * @see Crypt_Base::setKeyLength()
+ * @var int
* @access private
*/
- var $key = "\0\0\0\0\0\0\0\0";
-
- /**
- * The default password key_size used by setPassword()
- *
- * @see Crypt_Base::password_key_size
- * @see Crypt_Base::setPassword()
- * @var Integer
- * @access private
- */
- var $password_key_size = 8;
+ var $key_length = 8;
/**
* The namespace used by the cipher for its constants.
*
* @see Crypt_Base::const_namespace
- * @var String
+ * @var string
* @access private
*/
var $const_namespace = 'DES';
@@ -172,7 +161,7 @@ class Crypt_DES extends Crypt_Base * The mcrypt specific name of the cipher
*
* @see Crypt_Base::cipher_name_mcrypt
- * @var String
+ * @var string
* @access private
*/
var $cipher_name_mcrypt = 'des';
@@ -181,7 +170,7 @@ class Crypt_DES extends Crypt_Base * The OpenSSL names of the cipher / modes
*
* @see Crypt_Base::openssl_mode_names
- * @var Array
+ * @var array
* @access private
*/
var $openssl_mode_names = array(
@@ -196,7 +185,7 @@ class Crypt_DES extends Crypt_Base * Optimizing value while CFB-encrypting
*
* @see Crypt_Base::cfb_init_len
- * @var Integer
+ * @var int
* @access private
*/
var $cfb_init_len = 500;
@@ -206,9 +195,9 @@ class Crypt_DES extends Crypt_Base *
* Used only if $engine == CRYPT_DES_MODE_INTERNAL
*
- * @see Crypt_DES::_setupKey()
- * @see Crypt_DES::_processBlock()
- * @var Integer
+ * @see self::_setupKey()
+ * @see self::_processBlock()
+ * @var int
* @access private
*/
var $des_rounds = 1;
@@ -216,17 +205,17 @@ class Crypt_DES extends Crypt_Base /**
* max possible size of $key
*
- * @see Crypt_DES::setKey()
- * @var String
+ * @see self::setKey()
+ * @var string
* @access private
*/
- var $key_size_max = 8;
+ var $key_length_max = 8;
/**
* The Key Schedule
*
- * @see Crypt_DES::_setupKey()
- * @var Array
+ * @see self::_setupKey()
+ * @var array
* @access private
*/
var $keys;
@@ -238,9 +227,9 @@ class Crypt_DES extends Crypt_Base * with each byte containing all bits in the same state as the
* corresponding bit in the index value.
*
- * @see Crypt_DES::_processBlock()
- * @see Crypt_DES::_setupKey()
- * @var Array
+ * @see self::_processBlock()
+ * @see self::_setupKey()
+ * @var array
* @access private
*/
var $shuffle = array(
@@ -379,7 +368,7 @@ class Crypt_DES extends Crypt_Base *
* Indexing this table with each source byte performs the initial bit permutation.
*
- * @var Array
+ * @var array
* @access private
*/
var $ipmap = array(
@@ -421,7 +410,7 @@ class Crypt_DES extends Crypt_Base * Inverse IP mapping helper table.
* Indexing this table with a byte value reverses the bit order.
*
- * @var Array
+ * @var array
* @access private
*/
var $invipmap = array(
@@ -465,7 +454,7 @@ class Crypt_DES extends Crypt_Base * Each box ($sbox1-$sbox8) has been vectorized, then each value pre-permuted using the
* P table: concatenation can then be replaced by exclusive ORs.
*
- * @var Array
+ * @var array
* @access private
*/
var $sbox1 = array(
@@ -490,7 +479,7 @@ class Crypt_DES extends Crypt_Base /**
* Pre-permuted S-box2
*
- * @var Array
+ * @var array
* @access private
*/
var $sbox2 = array(
@@ -515,7 +504,7 @@ class Crypt_DES extends Crypt_Base /**
* Pre-permuted S-box3
*
- * @var Array
+ * @var array
* @access private
*/
var $sbox3 = array(
@@ -540,7 +529,7 @@ class Crypt_DES extends Crypt_Base /**
* Pre-permuted S-box4
*
- * @var Array
+ * @var array
* @access private
*/
var $sbox4 = array(
@@ -565,7 +554,7 @@ class Crypt_DES extends Crypt_Base /**
* Pre-permuted S-box5
*
- * @var Array
+ * @var array
* @access private
*/
var $sbox5 = array(
@@ -590,7 +579,7 @@ class Crypt_DES extends Crypt_Base /**
* Pre-permuted S-box6
*
- * @var Array
+ * @var array
* @access private
*/
var $sbox6 = array(
@@ -615,7 +604,7 @@ class Crypt_DES extends Crypt_Base /**
* Pre-permuted S-box7
*
- * @var Array
+ * @var array
* @access private
*/
var $sbox7 = array(
@@ -640,7 +629,7 @@ class Crypt_DES extends Crypt_Base /**
* Pre-permuted S-box8
*
- * @var Array
+ * @var array
* @access private
*/
var $sbox8 = array(
@@ -668,13 +657,13 @@ class Crypt_DES extends Crypt_Base * This is mainly just a wrapper to set things up for Crypt_Base::isValidEngine()
*
* @see Crypt_Base::isValidEngine()
- * @param Integer $engine
+ * @param int $engine
* @access public
- * @return Boolean
+ * @return bool
*/
function isValidEngine($engine)
{
- if ($this->key_size_max == 8) {
+ if ($this->key_length_max == 8) {
if ($engine == CRYPT_ENGINE_OPENSSL) {
$this->cipher_name_openssl_ecb = 'des-ecb';
$this->cipher_name_openssl = 'des-' . $this->_openssl_translate_mode();
@@ -697,14 +686,14 @@ class Crypt_DES extends Crypt_Base *
* @see Crypt_Base::setKey()
* @access public
- * @param String $key
+ * @param string $key
*/
function setKey($key)
{
// We check/cut here only up to max length of the key.
// Key padding to the proper length will be done in _setupKey()
- if (strlen($key) > $this->key_size_max) {
- $key = substr($key, 0, $this->key_size_max);
+ if (strlen($key) > $this->key_length_max) {
+ $key = substr($key, 0, $this->key_length_max);
}
// Sets the key
@@ -716,10 +705,10 @@ class Crypt_DES extends Crypt_Base *
* @see Crypt_Base::_encryptBlock()
* @see Crypt_Base::encrypt()
- * @see Crypt_DES::encrypt()
+ * @see self::encrypt()
* @access private
- * @param String $in
- * @return String
+ * @param string $in
+ * @return string
*/
function _encryptBlock($in)
{
@@ -731,10 +720,10 @@ class Crypt_DES extends Crypt_Base *
* @see Crypt_Base::_decryptBlock()
* @see Crypt_Base::decrypt()
- * @see Crypt_DES::decrypt()
+ * @see self::decrypt()
* @access private
- * @param String $in
- * @return String
+ * @param string $in
+ * @return string
*/
function _decryptBlock($in)
{
@@ -748,12 +737,12 @@ class Crypt_DES extends Crypt_Base * {@link http://en.wikipedia.org/wiki/Image:Feistel.png Feistel.png} to get a general
* idea of what this function does.
*
- * @see Crypt_DES::_encryptBlock()
- * @see Crypt_DES::_decryptBlock()
+ * @see self::_encryptBlock()
+ * @see self::_decryptBlock()
* @access private
- * @param String $block
- * @param Integer $mode
- * @return String
+ * @param string $block
+ * @param int $mode
+ * @return string
*/
function _processBlock($block, $mode)
{
diff --git a/libs/phpseclib-1.0.0/Crypt/Hash.php b/libs/phpseclib-1.0.1/Crypt/Hash.php index f6b25df..8ae014e 100644 --- a/libs/phpseclib-1.0.0/Crypt/Hash.php +++ b/libs/phpseclib-1.0.1/Crypt/Hash.php @@ -7,7 +7,7 @@ *
* md2, md5, md5-96, sha1, sha1-96, sha256, sha256-96, sha384, and sha512, sha512-96
*
- * If {@link Crypt_Hash::setKey() setKey()} is called, {@link Crypt_Hash::hash() hash()} will return the HMAC as opposed to
+ * If {@link self::setKey() setKey()} is called, {@link self::hash() hash()} will return the HMAC as opposed to
* the hash. If no valid algorithm is provided, sha1 will be used.
*
* PHP versions 4 and 5
@@ -56,7 +56,7 @@ /**#@+
* @access private
- * @see Crypt_Hash::Crypt_Hash()
+ * @see self::Crypt_Hash()
*/
/**
* Toggles the internal implementation
@@ -84,8 +84,8 @@ class Crypt_Hash /**
* Hash Parameter
*
- * @see Crypt_Hash::setHash()
- * @var Integer
+ * @see self::setHash()
+ * @var int
* @access private
*/
var $hashParam;
@@ -93,8 +93,8 @@ class Crypt_Hash /**
* Byte-length of compression blocks / key (Internal HMAC)
*
- * @see Crypt_Hash::setAlgorithm()
- * @var Integer
+ * @see self::setAlgorithm()
+ * @var int
* @access private
*/
var $b;
@@ -102,8 +102,8 @@ class Crypt_Hash /**
* Byte-length of hash output (Internal HMAC)
*
- * @see Crypt_Hash::setHash()
- * @var Integer
+ * @see self::setHash()
+ * @var int
* @access private
*/
var $l = false;
@@ -111,8 +111,8 @@ class Crypt_Hash /**
* Hash Algorithm
*
- * @see Crypt_Hash::setHash()
- * @var String
+ * @see self::setHash()
+ * @var string
* @access private
*/
var $hash;
@@ -120,8 +120,8 @@ class Crypt_Hash /**
* Key
*
- * @see Crypt_Hash::setKey()
- * @var String
+ * @see self::setKey()
+ * @var string
* @access private
*/
var $key = false;
@@ -129,8 +129,8 @@ class Crypt_Hash /**
* Outer XOR (Internal HMAC)
*
- * @see Crypt_Hash::setKey()
- * @var String
+ * @see self::setKey()
+ * @var string
* @access private
*/
var $opad;
@@ -138,8 +138,8 @@ class Crypt_Hash /**
* Inner XOR (Internal HMAC)
*
- * @see Crypt_Hash::setKey()
- * @var String
+ * @see self::setKey()
+ * @var string
* @access private
*/
var $ipad;
@@ -147,7 +147,7 @@ class Crypt_Hash /**
* Default Constructor.
*
- * @param optional String $hash
+ * @param string $hash
* @return Crypt_Hash
* @access public
*/
@@ -175,7 +175,7 @@ class Crypt_Hash * Keys can be of any length.
*
* @access public
- * @param optional String $key
+ * @param string $key
*/
function setKey($key = false)
{
@@ -188,7 +188,7 @@ class Crypt_Hash * As set by the constructor or by the setHash() method.
*
* @access public
- * @return String
+ * @return string
*/
function getHash()
{
@@ -199,7 +199,7 @@ class Crypt_Hash * Sets the hash function.
*
* @access public
- * @param String $hash
+ * @param string $hash
*/
function setHash($hash)
{
@@ -306,8 +306,8 @@ class Crypt_Hash * Compute the HMAC.
*
* @access public
- * @param String $text
- * @return String
+ * @param string $text
+ * @return string
*/
function hash($text)
{
@@ -356,7 +356,7 @@ class Crypt_Hash * Returns the hash length (in bytes)
*
* @access public
- * @return Integer
+ * @return int
*/
function getLength()
{
@@ -367,7 +367,7 @@ class Crypt_Hash * Wrapper for MD5
*
* @access private
- * @param String $m
+ * @param string $m
*/
function _md5($m)
{
@@ -378,7 +378,7 @@ class Crypt_Hash * Wrapper for SHA1
*
* @access private
- * @param String $m
+ * @param string $m
*/
function _sha1($m)
{
@@ -391,7 +391,7 @@ class Crypt_Hash * See {@link http://tools.ietf.org/html/rfc1319 RFC1319}.
*
* @access private
- * @param String $m
+ * @param string $m
*/
function _md2($m)
{
@@ -467,7 +467,7 @@ class Crypt_Hash * See {@link http://en.wikipedia.org/wiki/SHA_hash_functions#SHA-256_.28a_SHA-2_variant.29_pseudocode SHA-256 (a SHA-2 variant) pseudocode - Wikipedia}.
*
* @access private
- * @param String $m
+ * @param string $m
*/
function _sha256($m)
{
@@ -574,7 +574,7 @@ class Crypt_Hash * Pure-PHP implementation of SHA384 and SHA512
*
* @access private
- * @param String $m
+ * @param string $m
*/
function _sha512($m)
{
@@ -757,10 +757,10 @@ class Crypt_Hash * Right Rotate
*
* @access private
- * @param Integer $int
- * @param Integer $amt
- * @see _sha256()
- * @return Integer
+ * @param int $int
+ * @param int $amt
+ * @see self::_sha256()
+ * @return int
*/
function _rightRotate($int, $amt)
{
@@ -773,10 +773,10 @@ class Crypt_Hash * Right Shift
*
* @access private
- * @param Integer $int
- * @param Integer $amt
- * @see _sha256()
- * @return Integer
+ * @param int $int
+ * @param int $amt
+ * @see self::_sha256()
+ * @return int
*/
function _rightShift($int, $amt)
{
@@ -788,9 +788,9 @@ class Crypt_Hash * Not
*
* @access private
- * @param Integer $int
- * @see _sha256()
- * @return Integer
+ * @param int $int
+ * @see self::_sha256()
+ * @return int
*/
function _not($int)
{
@@ -803,9 +803,9 @@ class Crypt_Hash * _sha256() adds multiple unsigned 32-bit integers. Since PHP doesn't support unsigned integers and since the
* possibility of overflow exists, care has to be taken. Math_BigInteger() could be used but this should be faster.
*
- * @param Integer $...
- * @return Integer
- * @see _sha256()
+ * @param int $...
+ * @return int
+ * @see self::_sha256()
* @access private
*/
function _add()
@@ -829,9 +829,9 @@ class Crypt_Hash *
* Inspired by array_shift
*
- * @param String $string
- * @param optional Integer $index
- * @return String
+ * @param string $string
+ * @param int $index
+ * @return string
* @access private
*/
function _string_shift(&$string, $index = 1)
diff --git a/libs/phpseclib-1.0.0/Crypt/RC2.php b/libs/phpseclib-1.0.1/Crypt/RC2.php index 8137acc..05c7683 100644 --- a/libs/phpseclib-1.0.0/Crypt/RC2.php +++ b/libs/phpseclib-1.0.1/Crypt/RC2.php @@ -62,8 +62,8 @@ if (!class_exists('Crypt_Base')) { /**#@+
* @access public
- * @see Crypt_RC2::encrypt()
- * @see Crypt_RC2::decrypt()
+ * @see self::encrypt()
+ * @see self::decrypt()
*/
/**
* Encrypt / decrypt using the Counter mode.
@@ -111,7 +111,7 @@ class Crypt_RC2 extends Crypt_Base * Block Length of the cipher
*
* @see Crypt_Base::block_size
- * @var Integer
+ * @var int
* @access private
*/
var $block_size = 8;
@@ -120,8 +120,8 @@ class Crypt_RC2 extends Crypt_Base * The Key
*
* @see Crypt_Base::key
- * @see setKey()
- * @var String
+ * @see self::setKey()
+ * @var string
* @access private
*/
var $key;
@@ -130,29 +130,37 @@ class Crypt_RC2 extends Crypt_Base * The Original (unpadded) Key
*
* @see Crypt_Base::key
- * @see setKey()
- * @see encrypt()
- * @see decrypt()
- * @var String
+ * @see self::setKey()
+ * @see self::encrypt()
+ * @see self::decrypt()
+ * @var string
* @access private
*/
var $orig_key;
/**
- * The default password key_size used by setPassword()
+ * Don't truncate / null pad key
*
- * @see Crypt_Base::password_key_size
- * @see Crypt_Base::setPassword()
- * @var Integer
+ * @see Crypt_Base::_clearBuffers()
+ * @var bool
* @access private
*/
- var $password_key_size = 16; // = 128 bits
+ var $skip_key_adjustment = true;
+
+ /**
+ * Key Length (in bytes)
+ *
+ * @see Crypt_RC2::setKeyLength()
+ * @var int
+ * @access private
+ */
+ var $key_length = 16; // = 128 bits
/**
* The namespace used by the cipher for its constants.
*
* @see Crypt_Base::const_namespace
- * @var String
+ * @var string
* @access private
*/
var $const_namespace = 'RC2';
@@ -161,7 +169,7 @@ class Crypt_RC2 extends Crypt_Base * The mcrypt specific name of the cipher
*
* @see Crypt_Base::cipher_name_mcrypt
- * @var String
+ * @var string
* @access private
*/
var $cipher_name_mcrypt = 'rc2';
@@ -170,7 +178,7 @@ class Crypt_RC2 extends Crypt_Base * Optimizing value while CFB-encrypting
*
* @see Crypt_Base::cfb_init_len
- * @var Integer
+ * @var int
* @access private
*/
var $cfb_init_len = 500;
@@ -178,9 +186,9 @@ class Crypt_RC2 extends Crypt_Base /**
* The key length in bits.
*
- * @see Crypt_RC2::setKeyLength()
- * @see Crypt_RC2::setKey()
- * @var Integer
+ * @see self::setKeyLength()
+ * @see self::setKey()
+ * @var int
* @access private
* @internal Should be in range [1..1024].
* @internal Changing this value after setting the key has no effect.
@@ -190,9 +198,9 @@ class Crypt_RC2 extends Crypt_Base /**
* The key length in bits.
*
- * @see Crypt_RC2::isValidEnine()
- * @see Crypt_RC2::setKey()
- * @var Integer
+ * @see self::isValidEnine()
+ * @see self::setKey()
+ * @var int
* @access private
* @internal Should be in range [1..1024].
*/
@@ -201,8 +209,8 @@ class Crypt_RC2 extends Crypt_Base /**
* The Key Schedule
*
- * @see Crypt_RC2::_setupKey()
- * @var Array
+ * @see self::_setupKey()
+ * @var array
* @access private
*/
var $keys;
@@ -211,8 +219,8 @@ class Crypt_RC2 extends Crypt_Base * Key expansion randomization table.
* Twice the same 256-value sequence to save a modulus in key expansion.
*
- * @see Crypt_RC2::setKey()
- * @var Array
+ * @see self::setKey()
+ * @var array
* @access private
*/
var $pitable = array(
@@ -285,8 +293,8 @@ class Crypt_RC2 extends Crypt_Base /**
* Inverse key expansion randomization table.
*
- * @see Crypt_RC2::setKey()
- * @var Array
+ * @see self::setKey()
+ * @var array
* @access private
*/
var $invpitable = array(
@@ -344,7 +352,7 @@ class Crypt_RC2 extends Crypt_Base * If not explicitly set, CRYPT_RC2_MODE_CBC will be used.
*
* @see Crypt_Base::Crypt_Base()
- * @param optional Integer $mode
+ * @param int $mode
* @access public
*/
function Crypt_RC2($mode = CRYPT_RC2_MODE_CBC)
@@ -358,15 +366,15 @@ class Crypt_RC2 extends Crypt_Base * This is mainly just a wrapper to set things up for Crypt_Base::isValidEngine()
*
* @see Crypt_Base::Crypt_Base()
- * @param Integer $engine
+ * @param int $engine
* @access public
- * @return Boolean
+ * @return bool
*/
function isValidEngine($engine)
{
switch ($engine) {
case CRYPT_ENGINE_OPENSSL:
- if ($this->current_key_length != 128 || strlen($this->orig_key) != 16) {
+ if ($this->current_key_length != 128 || strlen($this->orig_key) < 16) {
return false;
}
$this->cipher_name_openssl_ecb = 'rc2-ecb';
@@ -377,14 +385,14 @@ class Crypt_RC2 extends Crypt_Base }
/**
- * Sets the key length
+ * Sets the key length.
*
* Valid key lengths are 1 to 1024.
* Calling this function after setting the key has no effect until the next
* Crypt_RC2::setKey() call.
*
* @access public
- * @param Integer $length in bits
+ * @param int $length in bits
*/
function setKeyLength($length)
{
@@ -394,6 +402,17 @@ class Crypt_RC2 extends Crypt_Base }
/**
+ * Returns the current key length
+ *
+ * @access public
+ * @return int
+ */
+ function getKeyLength()
+ {
+ return $this->current_key_length;
+ }
+
+ /**
* Sets the key.
*
* Keys can be of any length. RC2, itself, uses 1 to 1024 bit keys (eg.
@@ -406,8 +425,8 @@ class Crypt_RC2 extends Crypt_Base *
* @see Crypt_Base::setKey()
* @access public
- * @param String $key
- * @param Integer $t1 optional Effective key length in bits.
+ * @param string $key
+ * @param int $t1 optional Effective key length in bits.
*/
function setKey($key, $t1 = 0)
{
@@ -448,6 +467,7 @@ class Crypt_RC2 extends Crypt_Base // Prepare the key for mcrypt.
$l[0] = $this->invpitable[$l[0]];
array_unshift($l, 'C*');
+
parent::setKey(call_user_func_array('pack', $l));
}
@@ -456,10 +476,10 @@ class Crypt_RC2 extends Crypt_Base *
* Mostly a wrapper for Crypt_Base::encrypt, with some additional OpenSSL handling code
*
- * @see decrypt()
+ * @see self::decrypt()
* @access public
- * @param String $plaintext
- * @return String $ciphertext
+ * @param string $plaintext
+ * @return string $ciphertext
*/
function encrypt($plaintext)
{
@@ -479,10 +499,10 @@ class Crypt_RC2 extends Crypt_Base *
* Mostly a wrapper for Crypt_Base::decrypt, with some additional OpenSSL handling code
*
- * @see encrypt()
+ * @see self::encrypt()
* @access public
- * @param String $ciphertext
- * @return String $plaintext
+ * @param string $ciphertext
+ * @return string $plaintext
*/
function decrypt($ciphertext)
{
@@ -503,8 +523,8 @@ class Crypt_RC2 extends Crypt_Base * @see Crypt_Base::_encryptBlock()
* @see Crypt_Base::encrypt()
* @access private
- * @param String $in
- * @return String
+ * @param string $in
+ * @return string
*/
function _encryptBlock($in)
{
@@ -548,8 +568,8 @@ class Crypt_RC2 extends Crypt_Base * @see Crypt_Base::_decryptBlock()
* @see Crypt_Base::decrypt()
* @access private
- * @param String $in
- * @return String
+ * @param string $in
+ * @return string
*/
function _decryptBlock($in)
{
@@ -637,7 +657,7 @@ class Crypt_RC2 extends Crypt_Base // for the mixing rounds, for better inline crypt performance [~20% faster].
// But for memory reason we have to limit those ultra-optimized $lambda_functions to an amount of 10.
// (Currently, for Crypt_RC2, one generated $lambda_function cost on php5.5@32bit ~60kb unfreeable mem and ~100kb on php5.5@64bit)
- $gen_hi_opt_code = (bool)( count($lambda_functions) < 10 );
+ $gen_hi_opt_code = (bool)(count($lambda_functions) < 10);
// Generation of a uniqe hash for our generated code
$code_hash = "Crypt_RC2, {$this->mode}";
diff --git a/libs/phpseclib-1.0.0/Crypt/RC4.php b/libs/phpseclib-1.0.1/Crypt/RC4.php index f6cf890..dd24628 100644 --- a/libs/phpseclib-1.0.0/Crypt/RC4.php +++ b/libs/phpseclib-1.0.1/Crypt/RC4.php @@ -71,7 +71,7 @@ if (!class_exists('Crypt_Base')) { /**#@+
* @access private
- * @see Crypt_RC4::_crypt()
+ * @see self::_crypt()
*/
define('CRYPT_RC4_ENCRYPT', 0);
define('CRYPT_RC4_DECRYPT', 1);
@@ -93,26 +93,25 @@ class Crypt_RC4 extends Crypt_Base * so we the block_size to 0
*
* @see Crypt_Base::block_size
- * @var Integer
+ * @var int
* @access private
*/
var $block_size = 0;
/**
- * The default password key_size used by setPassword()
+ * Key Length (in bytes)
*
- * @see Crypt_Base::password_key_size
- * @see Crypt_Base::setPassword()
- * @var Integer
+ * @see Crypt_RC4::setKeyLength()
+ * @var int
* @access private
*/
- var $password_key_size = 128; // = 1024 bits
+ var $key_length = 128; // = 1024 bits
/**
* The namespace used by the cipher for its constants.
*
* @see Crypt_Base::const_namespace
- * @var String
+ * @var string
* @access private
*/
var $const_namespace = 'RC4';
@@ -121,7 +120,7 @@ class Crypt_RC4 extends Crypt_Base * The mcrypt specific name of the cipher
*
* @see Crypt_Base::cipher_name_mcrypt
- * @var String
+ * @var string
* @access private
*/
var $cipher_name_mcrypt = 'arcfour';
@@ -138,8 +137,8 @@ class Crypt_RC4 extends Crypt_Base /**
* The Key
*
- * @see Crypt_RC4::setKey()
- * @var String
+ * @see self::setKey()
+ * @var string
* @access private
*/
var $key = "\0";
@@ -147,8 +146,8 @@ class Crypt_RC4 extends Crypt_Base /**
* The Key Stream for decryption and encryption
*
- * @see Crypt_RC4::setKey()
- * @var Array
+ * @see self::setKey()
+ * @var array
* @access private
*/
var $stream;
@@ -173,9 +172,9 @@ class Crypt_RC4 extends Crypt_Base * This is mainly just a wrapper to set things up for Crypt_Base::isValidEngine()
*
* @see Crypt_Base::Crypt_Base()
- * @param Integer $engine
+ * @param int $engine
* @access public
- * @return Boolean
+ * @return bool
*/
function isValidEngine($engine)
{
@@ -214,8 +213,8 @@ class Crypt_RC4 extends Crypt_Base * {@link http://www.rsa.com/rsalabs/node.asp?id=2009 http://www.rsa.com/rsalabs/node.asp?id=2009}
* {@link http://en.wikipedia.org/wiki/Related_key_attack http://en.wikipedia.org/wiki/Related_key_attack}
*
- * @param String $iv
- * @see Crypt_RC4::setKey()
+ * @param string $iv
+ * @see self::setKey()
* @access public
*/
function setIV($iv)
@@ -223,28 +222,34 @@ class Crypt_RC4 extends Crypt_Base }
/**
- * Sets the key.
+ * Sets the key length
*
- * Keys can be between 1 and 256 bytes long. If they are longer then 256 bytes, the first 256 bytes will
- * be used. If no key is explicitly set, it'll be assumed to be a single null byte.
+ * Keys can be between 1 and 256 bytes long.
*
* @access public
- * @see Crypt_Base::setKey()
- * @param String $key
+ * @param int $length
*/
- function setKey($key)
+ function setKeyLength($length)
{
- parent::setKey(substr($key, 0, 256));
+ if ($length < 8) {
+ $this->key_length = 1;
+ } elseif ($length > 2048) {
+ $this->key_length = 248;
+ } else {
+ $this->key_length = $length >> 3;
+ }
+
+ parent::setKeyLength($length);
}
/**
* Encrypts a message.
*
* @see Crypt_Base::decrypt()
- * @see Crypt_RC4::_crypt()
+ * @see self::_crypt()
* @access public
- * @param String $plaintext
- * @return String $ciphertext
+ * @param string $plaintext
+ * @return string $ciphertext
*/
function encrypt($plaintext)
{
@@ -261,10 +266,10 @@ class Crypt_RC4 extends Crypt_Base * At least if the continuous buffer is disabled.
*
* @see Crypt_Base::encrypt()
- * @see Crypt_RC4::_crypt()
+ * @see self::_crypt()
* @access public
- * @param String $ciphertext
- * @return String $plaintext
+ * @param string $ciphertext
+ * @return string $plaintext
*/
function decrypt($ciphertext)
{
@@ -305,12 +310,12 @@ class Crypt_RC4 extends Crypt_Base /**
* Encrypts or decrypts a message.
*
- * @see Crypt_RC4::encrypt()
- * @see Crypt_RC4::decrypt()
+ * @see self::encrypt()
+ * @see self::decrypt()
* @access private
- * @param String $text
- * @param Integer $mode
- * @return String $text
+ * @param string $text
+ * @param int $mode
+ * @return string $text
*/
function _crypt($text, $mode)
{
diff --git a/libs/phpseclib-1.0.0/Crypt/RSA.php b/libs/phpseclib-1.0.1/Crypt/RSA.php index 008f14e..80b8d8d 100644 --- a/libs/phpseclib-1.0.0/Crypt/RSA.php +++ b/libs/phpseclib-1.0.1/Crypt/RSA.php @@ -87,8 +87,8 @@ if (!class_exists('Crypt_Hash')) { /**#@+
* @access public
- * @see Crypt_RSA::encrypt()
- * @see Crypt_RSA::decrypt()
+ * @see self::encrypt()
+ * @see self::decrypt()
*/
/**
* Use {@link http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding Optimal Asymmetric Encryption Padding}
@@ -96,8 +96,8 @@ if (!class_exists('Crypt_Hash')) { *
* Uses sha1 by default.
*
- * @see Crypt_RSA::setHash()
- * @see Crypt_RSA::setMGFHash()
+ * @see self::setHash()
+ * @see self::setMGFHash()
*/
define('CRYPT_RSA_ENCRYPTION_OAEP', 1);
/**
@@ -118,17 +118,17 @@ define('CRYPT_RSA_ENCRYPTION_NONE', 3); /**#@+
* @access public
- * @see Crypt_RSA::sign()
- * @see Crypt_RSA::verify()
- * @see Crypt_RSA::setHash()
+ * @see self::sign()
+ * @see self::verify()
+ * @see self::setHash()
*/
/**
* Use the Probabilistic Signature Scheme for signing
*
* Uses sha1 by default.
*
- * @see Crypt_RSA::setSaltLength()
- * @see Crypt_RSA::setMGFHash()
+ * @see self::setSaltLength()
+ * @see self::setMGFHash()
*/
define('CRYPT_RSA_SIGNATURE_PSS', 1);
/**
@@ -142,7 +142,7 @@ define('CRYPT_RSA_SIGNATURE_PKCS1', 2); /**#@+
* @access private
- * @see Crypt_RSA::createKey()
+ * @see self::createKey()
*/
/**
* ASN1 Integer
@@ -168,7 +168,7 @@ define('CRYPT_RSA_ASN1_SEQUENCE', 48); /**#@+
* @access private
- * @see Crypt_RSA::Crypt_RSA()
+ * @see self::Crypt_RSA()
*/
/**
* To use the pure-PHP implementation
@@ -189,8 +189,8 @@ define('CRYPT_RSA_OPENSSL_CONFIG', dirname(__FILE__) . '/../openssl.cnf'); /**#@+
* @access public
- * @see Crypt_RSA::createKey()
- * @see Crypt_RSA::setPrivateKeyFormat()
+ * @see self::createKey()
+ * @see self::setPrivateKeyFormat()
*/
/**
* PKCS#1 formatted private key
@@ -209,13 +209,13 @@ define('CRYPT_RSA_PRIVATE_FORMAT_XML', 2); /**
* PKCS#8 formatted private key
*/
-define('CRYPT_RSA_PRIVATE_FORMAT_PKCS8', 3);
+define('CRYPT_RSA_PRIVATE_FORMAT_PKCS8', 8);
/**#@-*/
/**#@+
* @access public
- * @see Crypt_RSA::createKey()
- * @see Crypt_RSA::setPublicKeyFormat()
+ * @see self::createKey()
+ * @see self::setPublicKeyFormat()
*/
/**
* Raw public key
@@ -282,7 +282,7 @@ class Crypt_RSA /**
* Precomputed Zero
*
- * @var Array
+ * @var array
* @access private
*/
var $zero;
@@ -290,7 +290,7 @@ class Crypt_RSA /**
* Precomputed One
*
- * @var Array
+ * @var array
* @access private
*/
var $one;
@@ -298,7 +298,7 @@ class Crypt_RSA /**
* Private Key Format
*
- * @var Integer
+ * @var int
* @access private
*/
var $privateKeyFormat = CRYPT_RSA_PRIVATE_FORMAT_PKCS1;
@@ -306,7 +306,7 @@ class Crypt_RSA /**
* Public Key Format
*
- * @var Integer
+ * @var int
* @access public
*/
var $publicKeyFormat = CRYPT_RSA_PUBLIC_FORMAT_PKCS8;
@@ -338,7 +338,7 @@ class Crypt_RSA /**
* Primes for Chinese Remainder Theorem (ie. p and q)
*
- * @var Array
+ * @var array
* @access private
*/
var $primes;
@@ -346,7 +346,7 @@ class Crypt_RSA /**
* Exponents for Chinese Remainder Theorem (ie. dP and dQ)
*
- * @var Array
+ * @var array
* @access private
*/
var $exponents;
@@ -354,7 +354,7 @@ class Crypt_RSA /**
* Coefficients for Chinese Remainder Theorem (ie. qInv)
*
- * @var Array
+ * @var array
* @access private
*/
var $coefficients;
@@ -362,7 +362,7 @@ class Crypt_RSA /**
* Hash name
*
- * @var String
+ * @var string
* @access private
*/
var $hashName;
@@ -378,7 +378,7 @@ class Crypt_RSA /**
* Length of hash function output
*
- * @var Integer
+ * @var int
* @access private
*/
var $hLen;
@@ -386,7 +386,7 @@ class Crypt_RSA /**
* Length of salt
*
- * @var Integer
+ * @var int
* @access private
*/
var $sLen;
@@ -402,7 +402,7 @@ class Crypt_RSA /**
* Length of MGF hash function output
*
- * @var Integer
+ * @var int
* @access private
*/
var $mgfHLen;
@@ -410,7 +410,7 @@ class Crypt_RSA /**
* Encryption mode
*
- * @var Integer
+ * @var int
* @access private
*/
var $encryptionMode = CRYPT_RSA_ENCRYPTION_OAEP;
@@ -418,7 +418,7 @@ class Crypt_RSA /**
* Signature mode
*
- * @var Integer
+ * @var int
* @access private
*/
var $signatureMode = CRYPT_RSA_SIGNATURE_PSS;
@@ -426,7 +426,7 @@ class Crypt_RSA /**
* Public Exponent
*
- * @var Mixed
+ * @var mixed
* @access private
*/
var $publicExponent = false;
@@ -434,7 +434,7 @@ class Crypt_RSA /**
* Password
*
- * @var String
+ * @var string
* @access private
*/
var $password = false;
@@ -445,8 +445,8 @@ class Crypt_RSA * For use with parsing XML formatted keys. PHP's XML Parser functions use utilized - instead of PHP's DOM functions -
* because PHP's XML Parser functions work on PHP4 whereas PHP's DOM functions - although surperior - don't.
*
- * @see Crypt_RSA::_start_element_handler()
- * @var Array
+ * @see self::_start_element_handler()
+ * @var array
* @access private
*/
var $components = array();
@@ -456,9 +456,9 @@ class Crypt_RSA *
* For use with parsing XML formatted keys.
*
- * @see Crypt_RSA::_character_handler()
- * @see Crypt_RSA::_stop_element_handler()
- * @var Mixed
+ * @see self::_character_handler()
+ * @see self::_stop_element_handler()
+ * @var mixed
* @access private
*/
var $current;
@@ -467,8 +467,8 @@ class Crypt_RSA * OpenSSL configuration file name.
*
* Set to null to use system configuration file.
- * @see Crypt_RSA::createKey()
- * @var Mixed
+ * @see self::createKey()
+ * @var mixed
* @Access public
*/
var $configFile;
@@ -476,7 +476,7 @@ class Crypt_RSA /**
* Public key comment field.
*
- * @var String
+ * @var string
* @access private
*/
var $comment = 'phpseclib-generated-key';
@@ -571,9 +571,9 @@ class Crypt_RSA * Will need to be passed back to Crypt_RSA::createKey() as the third parameter for further processing.
*
* @access public
- * @param optional Integer $bits
- * @param optional Integer $timeout
- * @param optional Math_BigInteger $p
+ * @param int $bits
+ * @param int $timeout
+ * @param Math_BigInteger $p
*/
function createKey($bits = 1024, $timeout = false, $partial = array())
{
@@ -751,9 +751,9 @@ class Crypt_RSA * Convert a private key to the appropriate format.
*
* @access private
- * @see setPrivateKeyFormat()
- * @param String $RSAPrivateKey
- * @return String
+ * @see self::setPrivateKeyFormat()
+ * @param string $RSAPrivateKey
+ * @return string
*/
function _convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients)
{
@@ -992,9 +992,9 @@ class Crypt_RSA * Convert a public key to the appropriate format
*
* @access private
- * @see setPublicKeyFormat()
- * @param String $RSAPrivateKey
- * @return String
+ * @see self::setPublicKeyFormat()
+ * @param string $RSAPrivateKey
+ * @return string
*/
function _convertPublicKey($n, $e)
{
@@ -1070,11 +1070,11 @@ class Crypt_RSA * Break a public or private key down into its constituant components
*
* @access private
- * @see _convertPublicKey()
- * @see _convertPrivateKey()
- * @param String $key
- * @param Integer $type
- * @return Array
+ * @see self::_convertPublicKey()
+ * @see self::_convertPrivateKey()
+ * @param string $key
+ * @param int $type
+ * @return array
*/
function _parseKey($key, $type)
{
@@ -1490,7 +1490,7 @@ class Crypt_RSA * More specifically, this returns the size of the modulo in bits.
*
* @access public
- * @return Integer
+ * @return int
*/
function getSize()
{
@@ -1503,9 +1503,9 @@ class Crypt_RSA * Called by xml_set_element_handler()
*
* @access private
- * @param Resource $parser
- * @param String $name
- * @param Array $attribs
+ * @param resource $parser
+ * @param string $name
+ * @param array $attribs
*/
function _start_element_handler($parser, $name, $attribs)
{
@@ -1544,8 +1544,8 @@ class Crypt_RSA * Called by xml_set_element_handler()
*
* @access private
- * @param Resource $parser
- * @param String $name
+ * @param resource $parser
+ * @param string $name
*/
function _stop_element_handler($parser, $name)
{
@@ -1561,8 +1561,8 @@ class Crypt_RSA * Called by xml_set_character_data_handler()
*
* @access private
- * @param Resource $parser
- * @param String $data
+ * @param resource $parser
+ * @param string $data
*/
function _data_handler($parser, $data)
{
@@ -1578,8 +1578,8 @@ class Crypt_RSA * Returns true on success and false on failure (ie. an incorrect password was provided or the key was malformed)
*
* @access public
- * @param String $key
- * @param Integer $type optional
+ * @param string $key
+ * @param int $type optional
*/
function loadKey($key, $type = false)
{
@@ -1644,7 +1644,6 @@ class Crypt_RSA break;
}
}
-
} else {
$components = $this->_parseKey($key, $type);
}
@@ -1693,10 +1692,10 @@ class Crypt_RSA * Private keys can be encrypted with a password. To unset the password, pass in the empty string or false.
* Or rather, pass in $password such that empty($password) && !is_string($password) is true.
*
- * @see createKey()
- * @see loadKey()
+ * @see self::createKey()
+ * @see self::loadKey()
* @access public
- * @param String $password
+ * @param string $password
*/
function setPassword($password = false)
{
@@ -1718,11 +1717,11 @@ class Crypt_RSA *
* Returns true on success, false on failure
*
- * @see getPublicKey()
+ * @see self::getPublicKey()
* @access public
- * @param String $key optional
- * @param Integer $type optional
- * @return Boolean
+ * @param string $key optional
+ * @param int $type optional
+ * @return bool
*/
function setPublicKey($key = false, $type = false)
{
@@ -1778,11 +1777,11 @@ class Crypt_RSA *
* Returns true on success, false on failure
*
- * @see getPublicKey()
+ * @see self::getPublicKey()
* @access public
- * @param String $key optional
- * @param Integer $type optional
- * @return Boolean
+ * @param string $key optional
+ * @param int $type optional
+ * @return bool
*/
function setPrivateKey($key = false, $type = false)
{
@@ -1809,10 +1808,10 @@ class Crypt_RSA * or if the public key was set via setPublicKey(). If the currently loaded key is supposed to be the public key this
* function won't return it since this library, for the most part, doesn't distinguish between public and private keys.
*
- * @see getPublicKey()
+ * @see self::getPublicKey()
* @access public
- * @param String $key
- * @param Integer $type optional
+ * @param string $key
+ * @param int $type optional
*/
function getPublicKey($type = CRYPT_RSA_PUBLIC_FORMAT_PKCS8)
{
@@ -1835,8 +1834,9 @@ class Crypt_RSA * Example output (md5): "c1:b1:30:29:d7:b8:de:6c:97:77:10:d7:46:41:63:87" (as specified by RFC 4716)
*
* @access public
- * @param String $algorithm The hashing algorithm to be used. Valid options are 'md5' and 'sha256'. False is returned
+ * @param string $algorithm The hashing algorithm to be used. Valid options are 'md5' and 'sha256'. False is returned
* for invalid values.
+ * @return mixed
*/
public function getPublicKeyFingerprint($algorithm = 'md5')
{
@@ -1859,7 +1859,6 @@ class Crypt_RSA default:
return false;
}
-
}
/**
@@ -1867,10 +1866,11 @@ class Crypt_RSA *
* The private key is only returned if the currently loaded key contains the constituent prime numbers.
*
- * @see getPublicKey()
+ * @see self::getPublicKey()
* @access public
- * @param String $key
- * @param Integer $type optional
+ * @param string $key
+ * @param int $type optional
+ * @return mixed
*/
function getPrivateKey($type = CRYPT_RSA_PUBLIC_FORMAT_PKCS1)
{
@@ -1891,10 +1891,10 @@ class Crypt_RSA * Returns the private key without the prime number constituants. Structurally identical to a public key that
* hasn't been set as the public key
*
- * @see getPrivateKey()
+ * @see self::getPrivateKey()
* @access private
- * @param String $key
- * @param Integer $type optional
+ * @param string $key
+ * @param int $type optional
*/
function _getPrivatePublicKey($mode = CRYPT_RSA_PUBLIC_FORMAT_PKCS8)
{
@@ -1913,6 +1913,7 @@ class Crypt_RSA * __toString() magic method
*
* @access public
+ * @return string
*/
function __toString()
{
@@ -1928,6 +1929,7 @@ class Crypt_RSA * __clone() magic method
*
* @access public
+ * @return Crypt_RSA
*/
function __clone()
{
@@ -1940,8 +1942,8 @@ class Crypt_RSA * Generates the smallest and largest numbers requiring $bits bits
*
* @access private
- * @param Integer $bits
- * @return Array
+ * @param int $bits
+ * @return array
*/
function _generateMinMax($bits)
{
@@ -1969,8 +1971,8 @@ class Crypt_RSA * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information.
*
* @access private
- * @param String $string
- * @return Integer
+ * @param string $string
+ * @return int
*/
function _decodeLength(&$string)
{
@@ -1990,8 +1992,8 @@ class Crypt_RSA * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information.
*
* @access private
- * @param Integer $length
- * @return String
+ * @param int $length
+ * @return string
*/
function _encodeLength($length)
{
@@ -2008,9 +2010,9 @@ class Crypt_RSA *
* Inspired by array_shift
*
- * @param String $string
- * @param optional Integer $index
- * @return String
+ * @param string $string
+ * @param int $index
+ * @return string
* @access private
*/
function _string_shift(&$string, $index = 1)
@@ -2023,9 +2025,9 @@ class Crypt_RSA /**
* Determines the private key format
*
- * @see createKey()
+ * @see self::createKey()
* @access public
- * @param Integer $format
+ * @param int $format
*/
function setPrivateKeyFormat($format)
{
@@ -2035,9 +2037,9 @@ class Crypt_RSA /**
* Determines the public key format
*
- * @see createKey()
+ * @see self::createKey()
* @access public
- * @param Integer $format
+ * @param int $format
*/
function setPublicKeyFormat($format)
{
@@ -2051,7 +2053,7 @@ class Crypt_RSA * decryption. If $hash isn't supported, sha1 is used.
*
* @access public
- * @param String $hash
+ * @param string $hash
*/
function setHash($hash)
{
@@ -2080,7 +2082,7 @@ class Crypt_RSA * best if Hash and MGFHash are set to the same thing this is not a requirement.
*
* @access public
- * @param String $hash
+ * @param string $hash
*/
function setMGFHash($hash)
{
@@ -2109,7 +2111,7 @@ class Crypt_RSA * of the hash function Hash) and 0.
*
* @access public
- * @param Integer $format
+ * @param int $format
*/
function setSaltLength($sLen)
{
@@ -2123,8 +2125,8 @@ class Crypt_RSA *
* @access private
* @param Math_BigInteger $x
- * @param Integer $xLen
- * @return String
+ * @param int $xLen
+ * @return string
*/
function _i2osp($x, $xLen)
{
@@ -2142,7 +2144,7 @@ class Crypt_RSA * See {@link http://tools.ietf.org/html/rfc3447#section-4.2 RFC3447#section-4.2}.
*
* @access private
- * @param String $x
+ * @param string $x
* @return Math_BigInteger
*/
function _os2ip($x)
@@ -2236,7 +2238,7 @@ class Crypt_RSA * @access private
* @param Math_BigInteger $x
* @param Math_BigInteger $r
- * @param Integer $i
+ * @param int $i
* @return Math_BigInteger
*/
function _blind($x, $r, $i)
@@ -2261,9 +2263,9 @@ class Crypt_RSA * Thanks for the heads up singpolyma!
*
* @access private
- * @param String $x
- * @param String $y
- * @return Boolean
+ * @param string $x
+ * @param string $y
+ * @return bool
*/
function _equals($x, $y)
{
@@ -2357,9 +2359,9 @@ class Crypt_RSA * See {@link http://tools.ietf.org/html/rfc3447#appendix-B.2.1 RFC3447#appendix-B.2.1}.
*
* @access private
- * @param String $mgfSeed
- * @param Integer $mgfLen
- * @return String
+ * @param string $mgfSeed
+ * @param int $mgfLen
+ * @return string
*/
function _mgf1($mgfSeed, $maskLen)
{
@@ -2382,9 +2384,9 @@ class Crypt_RSA * {http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding OAES}.
*
* @access private
- * @param String $m
- * @param String $l
- * @return String
+ * @param string $m
+ * @param string $l
+ * @return string
*/
function _rsaes_oaep_encrypt($m, $l = '')
{
@@ -2445,9 +2447,9 @@ class Crypt_RSA * this document.
*
* @access private
- * @param String $c
- * @param String $l
- * @return String
+ * @param string $c
+ * @param string $l
+ * @return string
*/
function _rsaes_oaep_decrypt($c, $l = '')
{
@@ -2504,8 +2506,8 @@ class Crypt_RSA * Doesn't use padding and is not recommended.
*
* @access private
- * @param String $m
- * @return String
+ * @param string $m
+ * @return string
*/
function _raw_encrypt($m)
{
@@ -2520,8 +2522,8 @@ class Crypt_RSA * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.1 RFC3447#section-7.2.1}.
*
* @access private
- * @param String $m
- * @return String
+ * @param string $m
+ * @return string
*/
function _rsaes_pkcs1_v1_5_encrypt($m)
{
@@ -2579,8 +2581,8 @@ class Crypt_RSA * not private key encrypted ciphertext's.
*
* @access private
- * @param String $c
- * @return String
+ * @param string $c
+ * @return string
*/
function _rsaes_pkcs1_v1_5_decrypt($c)
{
@@ -2628,8 +2630,8 @@ class Crypt_RSA * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.1 RFC3447#section-9.1.1}.
*
* @access private
- * @param String $m
- * @param Integer $emBits
+ * @param string $m
+ * @param int $emBits
*/
function _emsa_pss_encode($m, $emBits)
{
@@ -2637,7 +2639,7 @@ class Crypt_RSA // be output.
$emLen = ($emBits + 1) >> 3; // ie. ceil($emBits / 8)
- $sLen = $this->sLen === false ? $this->hLen : $this->sLen;
+ $sLen = $this->sLen ? $this->sLen : $this->hLen;
$mHash = $this->hash->hash($m);
if ($emLen < $this->hLen + $sLen + 2) {
@@ -2664,10 +2666,10 @@ class Crypt_RSA * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.2 RFC3447#section-9.1.2}.
*
* @access private
- * @param String $m
- * @param String $em
- * @param Integer $emBits
- * @return String
+ * @param string $m
+ * @param string $em
+ * @param int $emBits
+ * @return string
*/
function _emsa_pss_verify($m, $em, $emBits)
{
@@ -2675,7 +2677,7 @@ class Crypt_RSA // be output.
$emLen = ($emBits + 1) >> 3; // ie. ceil($emBits / 8);
- $sLen = $this->sLen === false ? $this->hLen : $this->sLen;
+ $sLen = $this->sLen ? $this->sLen : $this->hLen;
$mHash = $this->hash->hash($m);
if ($emLen < $this->hLen + $sLen + 2) {
@@ -2711,8 +2713,8 @@ class Crypt_RSA * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.1 RFC3447#section-8.1.1}.
*
* @access private
- * @param String $m
- * @return String
+ * @param string $m
+ * @return string
*/
function _rsassa_pss_sign($m)
{
@@ -2737,9 +2739,9 @@ class Crypt_RSA * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.2 RFC3447#section-8.1.2}.
*
* @access private
- * @param String $m
- * @param String $s
- * @return String
+ * @param string $m
+ * @param string $s
+ * @return string
*/
function _rsassa_pss_verify($m, $s)
{
@@ -2777,9 +2779,9 @@ class Crypt_RSA * See {@link http://tools.ietf.org/html/rfc3447#section-9.2 RFC3447#section-9.2}.
*
* @access private
- * @param String $m
- * @param Integer $emLen
- * @return String
+ * @param string $m
+ * @param int $emLen
+ * @return string
*/
function _emsa_pkcs1_v1_5_encode($m, $emLen)
{
@@ -2829,8 +2831,8 @@ class Crypt_RSA * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.1 RFC3447#section-8.2.1}.
*
* @access private
- * @param String $m
- * @return String
+ * @param string $m
+ * @return string
*/
function _rsassa_pkcs1_v1_5_sign($m)
{
@@ -2859,8 +2861,8 @@ class Crypt_RSA * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.2 RFC3447#section-8.2.2}.
*
* @access private
- * @param String $m
- * @return String
+ * @param string $m
+ * @return string
*/
function _rsassa_pkcs1_v1_5_verify($m, $s)
{
@@ -2903,7 +2905,7 @@ class Crypt_RSA * Valid values include CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_ENCRYPTION_PKCS1.
*
* @access public
- * @param Integer $mode
+ * @param int $mode
*/
function setEncryptionMode($mode)
{
@@ -2916,7 +2918,7 @@ class Crypt_RSA * Valid values include CRYPT_RSA_SIGNATURE_PSS and CRYPT_RSA_SIGNATURE_PKCS1
*
* @access public
- * @param Integer $mode
+ * @param int $mode
*/
function setSignatureMode($mode)
{
@@ -2927,7 +2929,7 @@ class Crypt_RSA * Set public key comment.
*
* @access public
- * @param String $comment
+ * @param string $comment
*/
function setComment($comment)
{
@@ -2938,7 +2940,7 @@ class Crypt_RSA * Get public key comment.
*
* @access public
- * @return String
+ * @return string
*/
function getComment()
{
@@ -2952,10 +2954,10 @@ class Crypt_RSA * If $plaintext exceeds those limits it will be broken up so that it does and the resultant ciphertext's will
* be concatenated together.
*
- * @see decrypt()
+ * @see self::decrypt()
* @access public
- * @param String $plaintext
- * @return String
+ * @param string $plaintext
+ * @return string
*/
function encrypt($plaintext)
{
@@ -2998,10 +3000,10 @@ class Crypt_RSA /**
* Decryption
*
- * @see encrypt()
+ * @see self::encrypt()
* @access public
- * @param String $plaintext
- * @return String
+ * @param string $plaintext
+ * @return string
*/
function decrypt($ciphertext)
{
@@ -3040,10 +3042,10 @@ class Crypt_RSA /**
* Create a signature
*
- * @see verify()
+ * @see self::verify()
* @access public
- * @param String $message
- * @return String
+ * @param string $message
+ * @return string
*/
function sign($message)
{
@@ -3063,11 +3065,11 @@ class Crypt_RSA /**
* Verifies a signature
*
- * @see sign()
+ * @see self::sign()
* @access public
- * @param String $message
- * @param String $signature
- * @return Boolean
+ * @param string $message
+ * @param string $signature
+ * @return bool
*/
function verify($message, $signature)
{
@@ -3088,8 +3090,8 @@ class Crypt_RSA * Extract raw BER from Base64 encoding
*
* @access private
- * @param String $str
- * @return String
+ * @param string $str
+ * @return string
*/
function _extractBER($str)
{
@@ -3102,7 +3104,7 @@ class Crypt_RSA * subject=/O=organization/OU=org unit/CN=common name
* issuer=/O=organization/CN=common name
*/
- $temp = preg_replace('#.*?^-+[^-]+-+#ms', '', $str, 1);
+ $temp = preg_replace('#.*?^-+[^-]+-+[\r\n ]*$#ms', '', $str, 1);
// remove the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- stuff
$temp = preg_replace('#-+[^-]+-+#', '', $temp);
// remove new lines
diff --git a/libs/phpseclib-1.0.0/Crypt/Random.php b/libs/phpseclib-1.0.1/Crypt/Random.php index 113371c..8eecf13 100644 --- a/libs/phpseclib-1.0.0/Crypt/Random.php +++ b/libs/phpseclib-1.0.1/Crypt/Random.php @@ -61,16 +61,15 @@ if (!function_exists('crypt_random_string')) { * microoptimizations because this function has the potential of being called a huge number of times.
* eg. for RSA key generation.
*
- * @param Integer $length
- * @return String
+ * @param int $length
+ * @return string
* @access public
*/
function crypt_random_string($length)
{
if (CRYPT_RANDOM_IS_WINDOWS) {
- // method 1. prior to PHP 5.3 this would call rand() on windows hence the function_exists('class_alias') call.
- // ie. class_alias is a function that was introduced in PHP 5.3
- if (function_exists('mcrypt_create_iv') && function_exists('class_alias')) {
+ // method 1. prior to PHP 5.3, mcrypt_create_iv() would call rand() on windows
+ if (extension_loaded('mcrypt') && version_compare(PHP_VERSION, '5.3.0', '>=')) {
return mcrypt_create_iv($length);
}
// method 2. openssl_random_pseudo_bytes was introduced in PHP 5.3.0 but prior to PHP 5.3.4 there was,
@@ -86,12 +85,12 @@ if (!function_exists('crypt_random_string')) { // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/win32/winutil.c#L80
//
// we're calling it, all the same, in the off chance that the mcrypt extension is not available
- if (function_exists('openssl_random_pseudo_bytes') && version_compare(PHP_VERSION, '5.3.4', '>=')) {
+ if (extension_loaded('openssl') && version_compare(PHP_VERSION, '5.3.4', '>=')) {
return openssl_random_pseudo_bytes($length);
}
} else {
// method 1. the fastest
- if (function_exists('openssl_random_pseudo_bytes')) {
+ if (extension_loaded('openssl') && version_compare(PHP_VERSION, '5.3.0', '>=')) {
return openssl_random_pseudo_bytes($length);
}
// method 2
@@ -109,7 +108,7 @@ if (!function_exists('crypt_random_string')) { // surprisingly slower than method 2. maybe that's because mcrypt_create_iv does a bunch of error checking that we're
// not doing. regardless, this'll only be called if this PHP script couldn't open /dev/urandom due to open_basedir
// restrictions or some such
- if (function_exists('mcrypt_create_iv')) {
+ if (extension_loaded('mcrypt')) {
return mcrypt_create_iv($length, MCRYPT_DEV_URANDOM);
}
}
@@ -269,7 +268,7 @@ if (!function_exists('phpseclib_resolve_include_path')) { * PHP 5.3.2) with fallback implementation for earlier PHP versions.
*
* @param string $filename
- * @return mixed Filename (string) on success, false otherwise.
+ * @return string|false
* @access public
*/
function phpseclib_resolve_include_path($filename)
diff --git a/libs/phpseclib-1.0.0/Crypt/Rijndael.php b/libs/phpseclib-1.0.1/Crypt/Rijndael.php index 0eab58d..0a8f437 100644 --- a/libs/phpseclib-1.0.0/Crypt/Rijndael.php +++ b/libs/phpseclib-1.0.1/Crypt/Rijndael.php @@ -7,11 +7,11 @@ *
* PHP versions 4 and 5
*
- * If {@link Crypt_Rijndael::setBlockLength() setBlockLength()} isn't called, it'll be assumed to be 128 bits. If
- * {@link Crypt_Rijndael::setKeyLength() setKeyLength()} isn't called, it'll be calculated from
- * {@link Crypt_Rijndael::setKey() setKey()}. ie. if the key is 128-bits, the key length will be 128-bits. If it's
+ * If {@link self::setBlockLength() setBlockLength()} isn't called, it'll be assumed to be 128 bits. If
+ * {@link self::setKeyLength() setKeyLength()} isn't called, it'll be calculated from
+ * {@link self::setKey() setKey()}. ie. if the key is 128-bits, the key length will be 128-bits. If it's
* 136-bits it'll be null-padded to 192-bits and 192 bits will be the key length until
- * {@link Crypt_Rijndael::setKey() setKey()} is called, again, at which point, it'll be recalculated.
+ * {@link self::setKey() setKey()} is called, again, at which point, it'll be recalculated.
*
* Not all Rijndael implementations may support 160-bits or 224-bits as the block length / key length. mcrypt, for example,
* does not. AES, itself, only supports block lengths of 128 and key lengths of 128, 192, and 256.
@@ -81,8 +81,8 @@ if (!class_exists('Crypt_Base')) { /**#@+
* @access public
- * @see Crypt_Rijndael::encrypt()
- * @see Crypt_Rijndael::decrypt()
+ * @see self::encrypt()
+ * @see self::decrypt()
*/
/**
* Encrypt / decrypt using the Counter mode.
@@ -128,20 +128,10 @@ define('CRYPT_RIJNDAEL_MODE_OFB', CRYPT_MODE_OFB); class Crypt_Rijndael extends Crypt_Base
{
/**
- * The default password key_size used by setPassword()
- *
- * @see Crypt_Base::password_key_size
- * @see Crypt_Base::setPassword()
- * @var Integer
- * @access private
- */
- var $password_key_size = 16;
-
- /**
* The namespace used by the cipher for its constants.
*
* @see Crypt_Base::const_namespace
- * @var String
+ * @var string
* @access private
*/
var $const_namespace = 'RIJNDAEL';
@@ -149,15 +139,15 @@ class Crypt_Rijndael extends Crypt_Base /**
* The mcrypt specific name of the cipher
*
- * Mcrypt is useable for 128/192/256-bit $block_size/$key_size. For 160/224 not.
+ * Mcrypt is useable for 128/192/256-bit $block_size/$key_length. For 160/224 not.
* Crypt_Rijndael determines automatically whether mcrypt is useable
- * or not for the current $block_size/$key_size.
+ * or not for the current $block_size/$key_length.
* In case of, $cipher_name_mcrypt will be set dynamically at run time accordingly.
*
* @see Crypt_Base::cipher_name_mcrypt
* @see Crypt_Base::engine
- * @see isValidEngine()
- * @var String
+ * @see self::isValidEngine()
+ * @var string
* @access private
*/
var $cipher_name_mcrypt = 'rijndael-128';
@@ -167,25 +157,16 @@ class Crypt_Rijndael extends Crypt_Base *
* @see Crypt_Base::password_default_salt
* @see Crypt_Base::setPassword()
- * @var String
+ * @var string
* @access private
*/
var $password_default_salt = 'phpseclib';
/**
- * Has the key length explicitly been set or should it be derived from the key, itself?
- *
- * @see setKeyLength()
- * @var Boolean
- * @access private
- */
- var $explicit_key_length = false;
-
- /**
* The Key Schedule
*
- * @see _setup()
- * @var Array
+ * @see self::_setup()
+ * @var array
* @access private
*/
var $w;
@@ -193,8 +174,8 @@ class Crypt_Rijndael extends Crypt_Base /**
* The Inverse Key Schedule
*
- * @see _setup()
- * @var Array
+ * @see self::_setup()
+ * @var array
* @access private
*/
var $dw;
@@ -202,8 +183,8 @@ class Crypt_Rijndael extends Crypt_Base /**
* The Block Length divided by 32
*
- * @see setBlockLength()
- * @var Integer
+ * @see self::setBlockLength()
+ * @var int
* @access private
* @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4. Exists in conjunction with $block_size
* because the encryption / decryption / key schedule creation requires this number and not $block_size. We could
@@ -213,23 +194,23 @@ class Crypt_Rijndael extends Crypt_Base var $Nb = 4;
/**
- * The Key Length
+ * The Key Length (in bytes)
*
- * @see setKeyLength()
- * @var Integer
+ * @see self::setKeyLength()
+ * @var int
* @access private
* @internal The max value is 256 / 8 = 32, the min value is 128 / 8 = 16. Exists in conjunction with $Nk
- * because the encryption / decryption / key schedule creation requires this number and not $key_size. We could
- * derive this from $key_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu
+ * because the encryption / decryption / key schedule creation requires this number and not $key_length. We could
+ * derive this from $key_length or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu
* of that, we'll just precompute it once.
*/
- var $key_size = 16;
+ var $key_length = 16;
/**
* The Key Length divided by 32
*
- * @see setKeyLength()
- * @var Integer
+ * @see self::setKeyLength()
+ * @var int
* @access private
* @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4
*/
@@ -238,7 +219,7 @@ class Crypt_Rijndael extends Crypt_Base /**
* The Number of Rounds
*
- * @var Integer
+ * @var int
* @access private
* @internal The max value is 14, the min value is 10.
*/
@@ -247,7 +228,7 @@ class Crypt_Rijndael extends Crypt_Base /**
* Shift offsets
*
- * @var Array
+ * @var array
* @access private
*/
var $c;
@@ -255,7 +236,7 @@ class Crypt_Rijndael extends Crypt_Base /**
* Holds the last used key- and block_size information
*
- * @var Array
+ * @var array
* @access private
*/
var $kl;
@@ -280,7 +261,7 @@ class Crypt_Rijndael extends Crypt_Base * If not explictly set, CRYPT_RIJNDAEL_MODE_CBC will be used.
*
* @see Crypt_Base::Crypt_Base()
- * @param optional Integer $mode
+ * @param int $mode
* @access public
*/
function Crypt_Rijndael($mode = CRYPT_RIJNDAEL_MODE_CBC)
@@ -301,9 +282,9 @@ class Crypt_Rijndael extends Crypt_Base * Note: 160/224-bit keys must explicitly set by setKeyLength(), otherwise they will be round/pad up to 192/256 bits.
*
* @see Crypt_Base:setKey()
- * @see setKeyLength()
+ * @see self::setKeyLength()
* @access public
- * @param String $key
+ * @param string $key
*/
function setKey($key)
{
@@ -347,30 +328,28 @@ class Crypt_Rijndael extends Crypt_Base * This results then in slower encryption.
*
* @access public
- * @param Integer $length
+ * @param int $length
*/
function setKeyLength($length)
{
switch (true) {
- case $length == 160:
- $this->key_size = 20;
- break;
- case $length == 224:
- $this->key_size = 28;
- break;
case $length <= 128:
- $this->key_size = 16;
+ $this->key_length = 16;
+ break;
+ case $length <= 160:
+ $this->key_length = 20;
break;
case $length <= 192:
- $this->key_size = 24;
+ $this->key_length = 24;
+ break;
+ case $length <= 224:
+ $this->key_length = 28;
break;
default:
- $this->key_size = 32;
+ $this->key_length = 32;
}
- $this->explicit_key_length = true;
- $this->changed = true;
- $this->_setEngine();
+ parent::setKeyLength($length);
}
/**
@@ -380,7 +359,7 @@ class Crypt_Rijndael extends Crypt_Base * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount.
*
* @access public
- * @param Integer $length
+ * @param int $length
*/
function setBlockLength($length)
{
@@ -402,9 +381,9 @@ class Crypt_Rijndael extends Crypt_Base * This is mainly just a wrapper to set things up for Crypt_Base::isValidEngine()
*
* @see Crypt_Base::Crypt_Base()
- * @param Integer $engine
+ * @param int $engine
* @access public
- * @return Boolean
+ * @return bool
*/
function isValidEngine($engine)
{
@@ -413,12 +392,12 @@ class Crypt_Rijndael extends Crypt_Base if ($this->block_size != 16) {
return false;
}
- $this->cipher_name_openssl_ecb = 'aes-' . ($this->key_size << 3) . '-ecb';
- $this->cipher_name_openssl = 'aes-' . ($this->key_size << 3) . '-' . $this->_openssl_translate_mode();
+ $this->cipher_name_openssl_ecb = 'aes-' . ($this->key_length << 3) . '-ecb';
+ $this->cipher_name_openssl = 'aes-' . ($this->key_length << 3) . '-' . $this->_openssl_translate_mode();
break;
case CRYPT_ENGINE_MCRYPT:
$this->cipher_name_mcrypt = 'rijndael-' . ($this->block_size << 3);
- if ($this->key_size % 8) { // is it a 160/224-bit key?
+ if ($this->key_length % 8) { // is it a 160/224-bit key?
// mcrypt is not usable for them, only for 128/192/256-bit keys
return false;
}
@@ -428,23 +407,11 @@ class Crypt_Rijndael extends Crypt_Base }
/**
- * Setup the CRYPT_ENGINE_MCRYPT $engine
- *
- * @see Crypt_Base::_setupMcrypt()
- * @access private
- */
- function _setupMcrypt()
- {
- $this->key = str_pad(substr($this->key, 0, $this->key_size), $this->key_size, "\0");
- parent::_setupMcrypt();
- }
-
- /**
* Encrypts a block
*
* @access private
- * @param String $in
- * @return String
+ * @param string $in
+ * @return string
*/
function _encryptBlock($in)
{
@@ -544,8 +511,8 @@ class Crypt_Rijndael extends Crypt_Base * Decrypts a block
*
* @access private
- * @param String $in
- * @return String
+ * @param string $in
+ * @return string
*/
function _decryptBlock($in)
{
@@ -649,15 +616,13 @@ class Crypt_Rijndael extends Crypt_Base 0x7D000000, 0xFA000000, 0xEF000000, 0xC5000000, 0x91000000
);
- $this->key = str_pad(substr($this->key, 0, $this->key_size), $this->key_size, "\0");
-
- if (isset($this->kl['key']) && $this->key === $this->kl['key'] && $this->key_size === $this->kl['key_size'] && $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
return;
}
- $this->kl = array('key' => $this->key, 'key_size' => $this->key_size, 'block_size' => $this->block_size);
+ $this->kl = array('key' => $this->key, 'key_length' => $this->key_length, 'block_size' => $this->block_size);
- $this->Nk = $this->key_size >> 2;
+ $this->Nk = $this->key_length >> 2;
// see Rijndael-ammended.pdf#page=44
$this->Nr = max($this->Nk, $this->Nb) + 6;
@@ -749,13 +714,13 @@ class Crypt_Rijndael extends Crypt_Base * Performs S-Box substitutions
*
* @access private
- * @param Integer $word
+ * @param int $word
*/
function _subWord($word)
{
static $sbox;
if (empty($sbox)) {
- list(,,,, $sbox) = $this->_getTables();
+ list(, , , , $sbox) = $this->_getTables();
}
return $sbox[$word & 0x000000FF] |
@@ -771,7 +736,7 @@ class Crypt_Rijndael extends Crypt_Base * @see Crypt_Rijndael:_setupInlineCrypt()
* @see Crypt_Rijndael:_subWord()
* @access private
- * @return Array &$tables
+ * @return array &$tables
*/
function &_getTables()
{
@@ -860,7 +825,7 @@ class Crypt_Rijndael extends Crypt_Base * @see Crypt_Rijndael:_setupInlineCrypt()
* @see Crypt_Rijndael:_setupKey()
* @access private
- * @return Array &$tables
+ * @return array &$tables
*/
function &_getInvTables()
{
@@ -954,7 +919,7 @@ class Crypt_Rijndael extends Crypt_Base // We create max. 10 hi-optimized code for memory reason. Means: For each $key one ultra fast inline-crypt function.
// (Currently, for Crypt_Rijndael/AES, one generated $lambda_function cost on php5.5@32bit ~80kb unfreeable mem and ~130kb on php5.5@64bit)
// After that, we'll still create very fast optimized code but not the hi-ultimative code, for each $mode one.
- $gen_hi_opt_code = (bool)( count($lambda_functions) < 10 );
+ $gen_hi_opt_code = (bool)(count($lambda_functions) < 10);
// Generation of a uniqe hash for our generated code
$code_hash = "Crypt_Rijndael, {$this->mode}, {$this->Nr}, {$this->Nb}";
diff --git a/libs/phpseclib-1.0.0/Crypt/TripleDES.php b/libs/phpseclib-1.0.1/Crypt/TripleDES.php index f8e66d4..1cdc441 100644 --- a/libs/phpseclib-1.0.0/Crypt/TripleDES.php +++ b/libs/phpseclib-1.0.1/Crypt/TripleDES.php @@ -61,7 +61,7 @@ if (!class_exists('Crypt_DES')) { /**#@+
* @access public
- * @see Crypt_TripleDES::Crypt_TripleDES()
+ * @see self::Crypt_TripleDES()
*/
/**
* Encrypt / decrypt using inner chaining
@@ -95,22 +95,20 @@ define('CRYPT_DES_MODE_CBC3', CRYPT_MODE_CBC3); class Crypt_TripleDES extends Crypt_DES
{
/**
- * The default password key_size used by setPassword()
+ * Key Length (in bytes)
*
- * @see Crypt_DES::password_key_size
- * @see Crypt_Base::password_key_size
- * @see Crypt_Base::setPassword()
- * @var Integer
+ * @see Crypt_TripleDES::setKeyLength()
+ * @var int
* @access private
*/
- var $password_key_size = 24;
+ var $key_length = 24;
/**
* The default salt used by setPassword()
*
* @see Crypt_Base::password_default_salt
* @see Crypt_Base::setPassword()
- * @var String
+ * @var string
* @access private
*/
var $password_default_salt = 'phpseclib';
@@ -120,7 +118,7 @@ class Crypt_TripleDES extends Crypt_DES *
* @see Crypt_DES::const_namespace
* @see Crypt_Base::const_namespace
- * @var String
+ * @var string
* @access private
*/
var $const_namespace = 'DES';
@@ -130,7 +128,7 @@ class Crypt_TripleDES extends Crypt_DES *
* @see Crypt_DES::cipher_name_mcrypt
* @see Crypt_Base::cipher_name_mcrypt
- * @var String
+ * @var string
* @access private
*/
var $cipher_name_mcrypt = 'tripledes';
@@ -139,7 +137,7 @@ class Crypt_TripleDES extends Crypt_DES * Optimizing value while CFB-encrypting
*
* @see Crypt_Base::cfb_init_len
- * @var Integer
+ * @var int
* @access private
*/
var $cfb_init_len = 750;
@@ -147,17 +145,17 @@ class Crypt_TripleDES extends Crypt_DES /**
* max possible size of $key
*
- * @see Crypt_TripleDES::setKey()
+ * @see self::setKey()
* @see Crypt_DES::setKey()
- * @var String
+ * @var string
* @access private
*/
- var $key_size_max = 24;
+ var $key_length_max = 24;
/**
* Internal flag whether using CRYPT_DES_MODE_3CBC or not
*
- * @var Boolean
+ * @var bool
* @access private
*/
var $mode_3cbc;
@@ -167,7 +165,7 @@ class Crypt_TripleDES extends Crypt_DES *
* Used only if $mode_3cbc === true
*
- * @var Array
+ * @var array
* @access private
*/
var $des;
@@ -195,7 +193,7 @@ class Crypt_TripleDES extends Crypt_DES *
* @see Crypt_DES::Crypt_DES()
* @see Crypt_Base::Crypt_Base()
- * @param optional Integer $mode
+ * @param int $mode
* @access public
*/
function Crypt_TripleDES($mode = CRYPT_MODE_CBC)
@@ -231,9 +229,9 @@ class Crypt_TripleDES extends Crypt_DES * This is mainly just a wrapper to set things up for Crypt_Base::isValidEngine()
*
* @see Crypt_Base::Crypt_Base()
- * @param Integer $engine
+ * @param int $engine
* @access public
- * @return Boolean
+ * @return bool
*/
function isValidEngine($engine)
{
@@ -254,7 +252,7 @@ class Crypt_TripleDES extends Crypt_DES *
* @see Crypt_Base::setIV()
* @access public
- * @param String $iv
+ * @param string $iv
*/
function setIV($iv)
{
@@ -267,6 +265,32 @@ class Crypt_TripleDES extends Crypt_DES }
/**
+ * Sets the key length.
+ *
+ * Valid key lengths are 64, 128 and 192
+ *
+ * @see Crypt_Base:setKeyLength()
+ * @access public
+ * @param int $length
+ */
+ function setKeyLength($length)
+ {
+ $length >>= 3;
+ switch (true) {
+ case $length <= 8:
+ $this->key_length = 8;
+ break;
+ case $length <= 16:
+ $this->key_length = 16;
+ break;
+ default:
+ $this->key_length = 24;
+ }
+
+ parent::setKeyLength($length);
+ }
+
+ /**
* Sets the key.
*
* Keys can be of any length. Triple DES, itself, can use 128-bit (eg. strlen($key) == 16) or
@@ -279,11 +303,11 @@ class Crypt_TripleDES extends Crypt_DES * @access public
* @see Crypt_DES::setKey()
* @see Crypt_Base::setKey()
- * @param String $key
+ * @param string $key
*/
function setKey($key)
{
- $length = strlen($key);
+ $length = $this->explicit_key_length ? $this->key_length : strlen($key);
if ($length > 8) {
$key = str_pad(substr($key, 0, 24), 24, chr(0));
// if $key is between 64 and 128-bits, use the first 64-bits as the last, per this:
@@ -310,8 +334,8 @@ class Crypt_TripleDES extends Crypt_DES *
* @see Crypt_Base::encrypt()
* @access public
- * @param String $plaintext
- * @return String $cipertext
+ * @param string $plaintext
+ * @return string $cipertext
*/
function encrypt($plaintext)
{
@@ -337,8 +361,8 @@ class Crypt_TripleDES extends Crypt_DES *
* @see Crypt_Base::decrypt()
* @access public
- * @param String $ciphertext
- * @return String $plaintext
+ * @param string $ciphertext
+ * @return string $plaintext
*/
function decrypt($ciphertext)
{
@@ -392,7 +416,7 @@ class Crypt_TripleDES extends Crypt_DES * however, they are also less intuitive and more likely to cause you problems.
*
* @see Crypt_Base::enableContinuousBuffer()
- * @see Crypt_TripleDES::disableContinuousBuffer()
+ * @see self::disableContinuousBuffer()
* @access public
*/
function enableContinuousBuffer()
@@ -411,7 +435,7 @@ class Crypt_TripleDES extends Crypt_DES * The default behavior.
*
* @see Crypt_Base::disableContinuousBuffer()
- * @see Crypt_TripleDES::enableContinuousBuffer()
+ * @see self::enableContinuousBuffer()
* @access public
*/
function disableContinuousBuffer()
@@ -464,9 +488,9 @@ class Crypt_TripleDES extends Crypt_DES *
* @see Crypt_Base::Crypt_Base()
* @see Crypt_Base::setPreferredEngine()
- * @param Integer $engine
+ * @param int $engine
* @access public
- * @return Integer
+ * @return int
*/
function setPreferredEngine($engine)
{
diff --git a/libs/phpseclib-1.0.0/Crypt/Twofish.php b/libs/phpseclib-1.0.1/Crypt/Twofish.php index e1aee53..669b29c 100644 --- a/libs/phpseclib-1.0.0/Crypt/Twofish.php +++ b/libs/phpseclib-1.0.1/Crypt/Twofish.php @@ -64,8 +64,8 @@ if (!class_exists('Crypt_Base')) { /**#@+
* @access public
- * @see Crypt_Twofish::encrypt()
- * @see Crypt_Twofish::decrypt()
+ * @see self::encrypt()
+ * @see self::decrypt()
*/
/**
* Encrypt / decrypt using the Counter mode.
@@ -115,7 +115,7 @@ class Crypt_Twofish extends Crypt_Base * The namespace used by the cipher for its constants.
*
* @see Crypt_Base::const_namespace
- * @var String
+ * @var string
* @access private
*/
var $const_namespace = 'TWOFISH';
@@ -124,7 +124,7 @@ class Crypt_Twofish extends Crypt_Base * The mcrypt specific name of the cipher
*
* @see Crypt_Base::cipher_name_mcrypt
- * @var String
+ * @var string
* @access private
*/
var $cipher_name_mcrypt = 'twofish';
@@ -133,7 +133,7 @@ class Crypt_Twofish extends Crypt_Base * Optimizing value while CFB-encrypting
*
* @see Crypt_Base::cfb_init_len
- * @var Integer
+ * @var int
* @access private
*/
var $cfb_init_len = 800;
@@ -141,10 +141,10 @@ class Crypt_Twofish extends Crypt_Base /**
* Q-Table
*
- * @var Array
+ * @var array
* @access private
*/
- var $q0 = array (
+ var $q0 = array(
0xA9, 0x67, 0xB3, 0xE8, 0x04, 0xFD, 0xA3, 0x76,
0x9A, 0x92, 0x80, 0x78, 0xE4, 0xDD, 0xD1, 0x38,
0x0D, 0xC6, 0x35, 0x98, 0x18, 0xF7, 0xEC, 0x6C,
@@ -182,10 +182,10 @@ class Crypt_Twofish extends Crypt_Base /**
* Q-Table
*
- * @var Array
+ * @var array
* @access private
*/
- var $q1 = array (
+ var $q1 = array(
0x75, 0xF3, 0xC6, 0xF4, 0xDB, 0x7B, 0xFB, 0xC8,
0x4A, 0xD3, 0xE6, 0x6B, 0x45, 0x7D, 0xE8, 0x4B,
0xD6, 0x32, 0xD8, 0xFD, 0x37, 0x71, 0xF1, 0xE1,
@@ -223,10 +223,10 @@ class Crypt_Twofish extends Crypt_Base /**
* M-Table
*
- * @var Array
+ * @var array
* @access private
*/
- var $m0 = array (
+ var $m0 = array(
0xBCBC3275, 0xECEC21F3, 0x202043C6, 0xB3B3C9F4, 0xDADA03DB, 0x02028B7B, 0xE2E22BFB, 0x9E9EFAC8,
0xC9C9EC4A, 0xD4D409D3, 0x18186BE6, 0x1E1E9F6B, 0x98980E45, 0xB2B2387D, 0xA6A6D2E8, 0x2626B74B,
0x3C3C57D6, 0x93938A32, 0x8282EED8, 0x525298FD, 0x7B7BD437, 0xBBBB3771, 0x5B5B97F1, 0x474783E1,
@@ -264,10 +264,10 @@ class Crypt_Twofish extends Crypt_Base /**
* M-Table
*
- * @var Array
+ * @var array
* @access private
*/
- var $m1 = array (
+ var $m1 = array(
0xA9D93939, 0x67901717, 0xB3719C9C, 0xE8D2A6A6, 0x04050707, 0xFD985252, 0xA3658080, 0x76DFE4E4,
0x9A084545, 0x92024B4B, 0x80A0E0E0, 0x78665A5A, 0xE4DDAFAF, 0xDDB06A6A, 0xD1BF6363, 0x38362A2A,
0x0D54E6E6, 0xC6432020, 0x3562CCCC, 0x98BEF2F2, 0x181E1212, 0xF724EBEB, 0xECD7A1A1, 0x6C774141,
@@ -305,10 +305,10 @@ class Crypt_Twofish extends Crypt_Base /**
* M-Table
*
- * @var Array
+ * @var array
* @access private
*/
- var $m2 = array (
+ var $m2 = array(
0xBC75BC32, 0xECF3EC21, 0x20C62043, 0xB3F4B3C9, 0xDADBDA03, 0x027B028B, 0xE2FBE22B, 0x9EC89EFA,
0xC94AC9EC, 0xD4D3D409, 0x18E6186B, 0x1E6B1E9F, 0x9845980E, 0xB27DB238, 0xA6E8A6D2, 0x264B26B7,
0x3CD63C57, 0x9332938A, 0x82D882EE, 0x52FD5298, 0x7B377BD4, 0xBB71BB37, 0x5BF15B97, 0x47E14783,
@@ -346,10 +346,10 @@ class Crypt_Twofish extends Crypt_Base /**
* M-Table
*
- * @var Array
+ * @var array
* @access private
*/
- var $m3 = array (
+ var $m3 = array(
0xD939A9D9, 0x90176790, 0x719CB371, 0xD2A6E8D2, 0x05070405, 0x9852FD98, 0x6580A365, 0xDFE476DF,
0x08459A08, 0x024B9202, 0xA0E080A0, 0x665A7866, 0xDDAFE4DD, 0xB06ADDB0, 0xBF63D1BF, 0x362A3836,
0x54E60D54, 0x4320C643, 0x62CC3562, 0xBEF298BE, 0x1E12181E, 0x24EBF724, 0xD7A1ECD7, 0x77416C77,
@@ -387,7 +387,7 @@ class Crypt_Twofish extends Crypt_Base /**
* The Key Schedule Array
*
- * @var Array
+ * @var array
* @access private
*/
var $K = array();
@@ -395,7 +395,7 @@ class Crypt_Twofish extends Crypt_Base /**
* The Key depended S-Table 0
*
- * @var Array
+ * @var array
* @access private
*/
var $S0 = array();
@@ -403,7 +403,7 @@ class Crypt_Twofish extends Crypt_Base /**
* The Key depended S-Table 1
*
- * @var Array
+ * @var array
* @access private
*/
var $S1 = array();
@@ -411,7 +411,7 @@ class Crypt_Twofish extends Crypt_Base /**
* The Key depended S-Table 2
*
- * @var Array
+ * @var array
* @access private
*/
var $S2 = array();
@@ -419,7 +419,7 @@ class Crypt_Twofish extends Crypt_Base /**
* The Key depended S-Table 3
*
- * @var Array
+ * @var array
* @access private
*/
var $S3 = array();
@@ -427,41 +427,42 @@ class Crypt_Twofish extends Crypt_Base /**
* Holds the last used key
*
- * @var Array
+ * @var array
* @access private
*/
var $kl;
/**
- * Sets the key.
+ * The Key Length (in bytes)
*
- * Keys can be of any length. Twofish, itself, requires the use of a key that's 128, 192 or 256-bits long.
- * If the key is less than 256-bits we round the length up to the closest valid key length,
- * padding $key with null bytes. If the key is more than 256-bits, we trim the excess bits.
+ * @see Crypt_Twofish::setKeyLength()
+ * @var int
+ * @access private
+ */
+ var $key_length = 16;
+
+ /**
+ * Sets the key length.
*
- * If the key is not explicitly set, it'll be assumed a 128 bits key to be all null bytes.
+ * Valid key lengths are 128, 192 or 256 bits
*
* @access public
- * @see Crypt_Base::setKey()
- * @param String $key
+ * @param int $length
*/
- function setKey($key)
+ function setKeyLength($length)
{
- $keylength = strlen($key);
switch (true) {
- case $keylength <= 16:
- $key = str_pad($key, 16, "\0");
+ case $length <= 128:
+ $this->key_length = 16;
break;
- case $keylength <= 24:
- $key = str_pad($key, 24, "\0");
+ case $length <= 192:
+ $this->key_length = 24;
break;
- case $keylength < 32:
- $key = str_pad($key, 32, "\0");
- break;
- case $keylength > 32:
- $key = substr($key, 0, 32);
+ default:
+ $this->key_length = 32;
}
- parent::setKey($key);
+
+ parent::setKeyLength($length);
}
/**
@@ -492,9 +493,9 @@ class Crypt_Twofish extends Crypt_Base switch (strlen($this->key)) {
case 16:
- list ($s7, $s6, $s5, $s4) = $this->_mdsrem($le_longs[1], $le_longs[2]);
- list ($s3, $s2, $s1, $s0) = $this->_mdsrem($le_longs[3], $le_longs[4]);
- for ($i = 0, $j = 1; $i < 40; $i+= 2,$j+= 2) {
+ list($s7, $s6, $s5, $s4) = $this->_mdsrem($le_longs[1], $le_longs[2]);
+ list($s3, $s2, $s1, $s0) = $this->_mdsrem($le_longs[3], $le_longs[4]);
+ for ($i = 0, $j = 1; $i < 40; $i+= 2, $j+= 2) {
$A = $m0[$q0[$q0[$i] ^ $key[ 9]] ^ $key[1]] ^
$m1[$q0[$q1[$i] ^ $key[10]] ^ $key[2]] ^
$m2[$q1[$q0[$i] ^ $key[11]] ^ $key[3]] ^
@@ -515,9 +516,9 @@ class Crypt_Twofish extends Crypt_Base }
break;
case 24:
- list ($sb, $sa, $s9, $s8) = $this->_mdsrem($le_longs[1], $le_longs[2]);
- list ($s7, $s6, $s5, $s4) = $this->_mdsrem($le_longs[3], $le_longs[4]);
- list ($s3, $s2, $s1, $s0) = $this->_mdsrem($le_longs[5], $le_longs[6]);
+ list($sb, $sa, $s9, $s8) = $this->_mdsrem($le_longs[1], $le_longs[2]);
+ list($s7, $s6, $s5, $s4) = $this->_mdsrem($le_longs[3], $le_longs[4]);
+ list($s3, $s2, $s1, $s0) = $this->_mdsrem($le_longs[5], $le_longs[6]);
for ($i = 0, $j = 1; $i < 40; $i+= 2, $j+= 2) {
$A = $m0[$q0[$q0[$q1[$i] ^ $key[17]] ^ $key[ 9]] ^ $key[1]] ^
$m1[$q0[$q1[$q1[$i] ^ $key[18]] ^ $key[10]] ^ $key[2]] ^
@@ -539,10 +540,10 @@ class Crypt_Twofish extends Crypt_Base }
break;
default: // 32
- list ($sf, $se, $sd, $sc) = $this->_mdsrem($le_longs[1], $le_longs[2]);
- list ($sb, $sa, $s9, $s8) = $this->_mdsrem($le_longs[3], $le_longs[4]);
- list ($s7, $s6, $s5, $s4) = $this->_mdsrem($le_longs[5], $le_longs[6]);
- list ($s3, $s2, $s1, $s0) = $this->_mdsrem($le_longs[7], $le_longs[8]);
+ list($sf, $se, $sd, $sc) = $this->_mdsrem($le_longs[1], $le_longs[2]);
+ list($sb, $sa, $s9, $s8) = $this->_mdsrem($le_longs[3], $le_longs[4]);
+ list($s7, $s6, $s5, $s4) = $this->_mdsrem($le_longs[5], $le_longs[6]);
+ list($s3, $s2, $s1, $s0) = $this->_mdsrem($le_longs[7], $le_longs[8]);
for ($i = 0, $j = 1; $i < 40; $i+= 2, $j+= 2) {
$A = $m0[$q0[$q0[$q1[$q1[$i] ^ $key[25]] ^ $key[17]] ^ $key[ 9]] ^ $key[1]] ^
$m1[$q0[$q1[$q1[$q0[$i] ^ $key[26]] ^ $key[18]] ^ $key[10]] ^ $key[2]] ^
@@ -575,9 +576,9 @@ class Crypt_Twofish extends Crypt_Base * _mdsrem function using by the twofish cipher algorithm
*
* @access private
- * @param String $A
- * @param String $B
- * @return Array
+ * @param string $A
+ * @param string $B
+ * @return array
*/
function _mdsrem($A, $B)
{
@@ -623,8 +624,8 @@ class Crypt_Twofish extends Crypt_Base * Encrypts a block
*
* @access private
- * @param String $in
- * @return String
+ * @param string $in
+ * @return string
*/
function _encryptBlock($in)
{
@@ -679,8 +680,8 @@ class Crypt_Twofish extends Crypt_Base * Decrypts a block
*
* @access private
- * @param String $in
- * @return String
+ * @param string $in
+ * @return string
*/
function _decryptBlock($in)
{
@@ -743,7 +744,7 @@ class Crypt_Twofish extends Crypt_Base // Max. 10 Ultra-Hi-optimized inline-crypt functions. After that, we'll (still) create very fast code, but not the ultimate fast one.
// (Currently, for Crypt_Twofish, one generated $lambda_function cost on php5.5@32bit ~140kb unfreeable mem and ~240kb on php5.5@64bit)
- $gen_hi_opt_code = (bool)( count($lambda_functions) < 10 );
+ $gen_hi_opt_code = (bool)(count($lambda_functions) < 10);
// Generation of a uniqe hash for our generated code
$code_hash = "Crypt_Twofish, {$this->mode}";
diff --git a/libs/phpseclib-1.0.0/File/ANSI.php b/libs/phpseclib-1.0.1/File/ANSI.php index 2435d32..64f1fbe 100644 --- a/libs/phpseclib-1.0.0/File/ANSI.php +++ b/libs/phpseclib-1.0.1/File/ANSI.php @@ -48,7 +48,7 @@ class File_ANSI /**
* Max Width
*
- * @var Integer
+ * @var int
* @access private
*/
var $max_x;
@@ -56,7 +56,7 @@ class File_ANSI /**
* Max Height
*
- * @var Integer
+ * @var int
* @access private
*/
var $max_y;
@@ -64,7 +64,7 @@ class File_ANSI /**
* Max History
*
- * @var Integer
+ * @var int
* @access private
*/
var $max_history;
@@ -72,7 +72,7 @@ class File_ANSI /**
* History
*
- * @var Array
+ * @var array
* @access private
*/
var $history;
@@ -80,7 +80,7 @@ class File_ANSI /**
* History Attributes
*
- * @var Array
+ * @var array
* @access private
*/
var $history_attrs;
@@ -88,7 +88,7 @@ class File_ANSI /**
* Current Column
*
- * @var Integer
+ * @var int
* @access private
*/
var $x;
@@ -96,7 +96,7 @@ class File_ANSI /**
* Current Row
*
- * @var Integer
+ * @var int
* @access private
*/
var $y;
@@ -104,7 +104,7 @@ class File_ANSI /**
* Old Column
*
- * @var Integer
+ * @var int
* @access private
*/
var $old_x;
@@ -112,7 +112,7 @@ class File_ANSI /**
* Old Row
*
- * @var Integer
+ * @var int
* @access private
*/
var $old_y;
@@ -120,7 +120,7 @@ class File_ANSI /**
* An empty attribute cell
*
- * @var Object
+ * @var object
* @access private
*/
var $base_attr_cell;
@@ -128,7 +128,7 @@ class File_ANSI /**
* The current attribute cell
*
- * @var Object
+ * @var object
* @access private
*/
var $attr_cell;
@@ -136,7 +136,7 @@ class File_ANSI /**
* An empty attribute row
*
- * @var Array
+ * @var array
* @access private
*/
var $attr_row;
@@ -144,7 +144,7 @@ class File_ANSI /**
* The current screen text
*
- * @var Array
+ * @var array
* @access private
*/
var $screen;
@@ -152,7 +152,7 @@ class File_ANSI /**
* The current screen attributes
*
- * @var Array
+ * @var array
* @access private
*/
var $attrs;
@@ -160,7 +160,7 @@ class File_ANSI /**
* Current ANSI code
*
- * @var String
+ * @var string
* @access private
*/
var $ansi;
@@ -168,7 +168,7 @@ class File_ANSI /**
* Tokenization
*
- * @var Array
+ * @var array
* @access private
*/
var $tokenization;
@@ -200,8 +200,8 @@ class File_ANSI *
* Resets the screen as well
*
- * @param Integer $x
- * @param Integer $y
+ * @param int $x
+ * @param int $y
* @access public
*/
function setDimensions($x, $y)
@@ -219,8 +219,8 @@ class File_ANSI /**
* Set the number of lines that should be logged past the terminal height
*
- * @param Integer $x
- * @param Integer $y
+ * @param int $x
+ * @param int $y
* @access public
*/
function setHistory($history)
@@ -231,7 +231,7 @@ class File_ANSI /**
* Load a string
*
- * @param String $source
+ * @param string $source
* @access public
*/
function loadString($source)
@@ -243,7 +243,7 @@ class File_ANSI /**
* Appdend a string
*
- * @param String $source
+ * @param string $source
* @access public
*/
function appendString($source)
@@ -474,7 +474,7 @@ class File_ANSI * Returns the current coordinate without preformating
*
* @access private
- * @return String
+ * @return string
*/
function _processCoordinate($last_attr, $cur_attr, $char)
{
@@ -531,7 +531,7 @@ class File_ANSI * Returns the current screen without preformating
*
* @access private
- * @return String
+ * @return string
*/
function _getScreen()
{
@@ -555,7 +555,7 @@ class File_ANSI * Returns the current screen
*
* @access public
- * @return String
+ * @return string
*/
function getScreen()
{
@@ -566,7 +566,7 @@ class File_ANSI * Returns the current screen and the x previous lines
*
* @access public
- * @return String
+ * @return string
*/
function getHistory()
{
diff --git a/libs/phpseclib-1.0.0/File/ASN1.php b/libs/phpseclib-1.0.1/File/ASN1.php index 95fc101..3cf4c68 100644 --- a/libs/phpseclib-1.0.0/File/ASN1.php +++ b/libs/phpseclib-1.0.1/File/ASN1.php @@ -119,7 +119,7 @@ class File_ASN1_Element /**
* Raw element value
*
- * @var String
+ * @var string
* @access private
*/
var $element;
@@ -127,7 +127,7 @@ class File_ASN1_Element /**
* Constructor
*
- * @param String $encoded
+ * @param string $encoded
* @return File_ASN1_Element
* @access public
*/
@@ -149,7 +149,7 @@ class File_ASN1 /**
* ASN.1 object identifier
*
- * @var Array
+ * @var array
* @access private
* @link http://en.wikipedia.org/wiki/Object_identifier
*/
@@ -158,7 +158,7 @@ class File_ASN1 /**
* Default date format
*
- * @var String
+ * @var string
* @access private
* @link http://php.net/class.datetime
*/
@@ -167,10 +167,10 @@ class File_ASN1 /**
* Default date format
*
- * @var Array
+ * @var array
* @access private
- * @see File_ASN1::setTimeFormat()
- * @see File_ASN1::asn1map()
+ * @see self::setTimeFormat()
+ * @see self::asn1map()
* @link http://php.net/class.datetime
*/
var $encoded;
@@ -180,9 +180,9 @@ class File_ASN1 *
* If the mapping type is FILE_ASN1_TYPE_ANY what do we actually encode it as?
*
- * @var Array
+ * @var array
* @access private
- * @see File_ASN1::_encode_der()
+ * @see self::_encode_der()
*/
var $filters;
@@ -193,7 +193,7 @@ class File_ASN1 * Unambiguous types get the direct mapping (int/real/bool).
* Others are mapped as a choice, with an extra indexing level.
*
- * @var Array
+ * @var array
* @access public
*/
var $ANYmap = array(
@@ -227,7 +227,7 @@ class File_ASN1 * Non-convertable types are absent from this table.
* size == 0 indicates variable length encoding.
*
- * @var Array
+ * @var array
* @access public
*/
var $stringTypeSize = array(
@@ -261,8 +261,8 @@ class File_ASN1 *
* Serves a similar purpose to openssl's asn1parse
*
- * @param String $encoded
- * @return Array
+ * @param string $encoded
+ * @return array
* @access public
*/
function decodeBER($encoded)
@@ -283,9 +283,9 @@ class File_ASN1 * $encoded is passed by reference for the recursive calls done for FILE_ASN1_TYPE_BIT_STRING and
* FILE_ASN1_TYPE_OCTET_STRING. In those cases, the indefinite length is used.
*
- * @param String $encoded
- * @param Integer $start
- * @return Array
+ * @param string $encoded
+ * @param int $start
+ * @return array
* @access private
*/
function _decode_ber($encoded, $start = 0)
@@ -543,10 +543,10 @@ class File_ASN1 *
* "Special" mappings may be applied on a per tag-name basis via $special.
*
- * @param Array $decoded
- * @param Array $mapping
- * @param Array $special
- * @return Array
+ * @param array $decoded
+ * @param array $mapping
+ * @param array $special
+ * @return array
* @access public
*/
function asn1map($decoded, $mapping, $special = array())
@@ -677,7 +677,7 @@ class File_ASN1 }
// Fail mapping if all input items have not been consumed.
- return $i < $n? null: $map;
+ return $i < $n ? null: $map;
// the main diff between sets and sequences is the encapsulation of the foreach in another for loop
case FILE_ASN1_TYPE_SET:
@@ -835,10 +835,10 @@ class File_ASN1 *
* "Special" mappings can be applied via $special.
*
- * @param String $source
- * @param String $mapping
- * @param Integer $idx
- * @return String
+ * @param string $source
+ * @param string $mapping
+ * @param int $idx
+ * @return string
* @access public
*/
function encodeDER($source, $mapping, $special = array())
@@ -850,10 +850,10 @@ class File_ASN1 /**
* ASN.1 Encode (Helper function)
*
- * @param String $source
- * @param String $mapping
- * @param Integer $idx
- * @return String
+ * @param string $source
+ * @param string $mapping
+ * @param int $idx
+ * @return string
* @access private
*/
function _encode_der($source, $mapping, $idx = null, $special = array())
@@ -1150,8 +1150,8 @@ class File_ASN1 * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information.
*
* @access private
- * @param Integer $length
- * @return String
+ * @param int $length
+ * @return string
*/
function _encodeLength($length)
{
@@ -1169,9 +1169,9 @@ class File_ASN1 * Called by _decode_ber() and in the case of implicit tags asn1map().
*
* @access private
- * @param String $content
- * @param Integer $tag
- * @return String
+ * @param string $content
+ * @param int $tag
+ * @return string
*/
function _decodeTime($content, $tag)
{
@@ -1218,7 +1218,7 @@ class File_ASN1 * Sets the time / date format for asn1map().
*
* @access public
- * @param String $format
+ * @param string $format
*/
function setTimeFormat($format)
{
@@ -1231,7 +1231,7 @@ class File_ASN1 * Load the relevant OIDs for a particular ASN.1 semantic mapping.
*
* @access public
- * @param Array $oids
+ * @param array $oids
*/
function loadOIDs($oids)
{
@@ -1244,7 +1244,7 @@ class File_ASN1 * See File_X509, etc, for an example.
*
* @access public
- * @param Array $filters
+ * @param array $filters
*/
function loadFilters($filters)
{
@@ -1256,9 +1256,9 @@ class File_ASN1 *
* Inspired by array_shift
*
- * @param String $string
- * @param optional Integer $index
- * @return String
+ * @param string $string
+ * @param int $index
+ * @return string
* @access private
*/
function _string_shift(&$string, $index = 1)
@@ -1274,10 +1274,10 @@ class File_ASN1 * This is a lazy conversion, dealing only with character size.
* No real conversion table is used.
*
- * @param String $in
- * @param optional Integer $from
- * @param optional Integer $to
- * @return String
+ * @param string $in
+ * @param int $from
+ * @param int $to
+ * @return string
* @access public
*/
function convert($in, $from = FILE_ASN1_TYPE_UTF8_STRING, $to = FILE_ASN1_TYPE_UTF8_STRING)
diff --git a/libs/phpseclib-1.0.0/File/X509.php b/libs/phpseclib-1.0.1/File/X509.php index 24e223b..20f3304 100644 --- a/libs/phpseclib-1.0.0/File/X509.php +++ b/libs/phpseclib-1.0.1/File/X509.php @@ -60,7 +60,7 @@ define('FILE_X509_VALIDATE_SIGNATURE_BY_CA', 1); /**#@+
* @access public
- * @see File_X509::getDN()
+ * @see self::getDN()
*/
/**
* Return internal array representation
@@ -90,9 +90,9 @@ define('FILE_X509_DN_HASH', 5); /**#@+
* @access public
- * @see File_X509::saveX509()
- * @see File_X509::saveCSR()
- * @see File_X509::saveCRL()
+ * @see self::saveX509()
+ * @see self::saveCSR()
+ * @see self::saveCRL()
*/
/**
* Save as PEM
@@ -110,6 +110,12 @@ define('FILE_X509_FORMAT_DER', 1); * Only works on CSRs. Not currently supported.
*/
define('FILE_X509_FORMAT_SPKAC', 2);
+/**
+ * Auto-detect the format
+ *
+ * Used only by the load*() functions
+ */
+define('FILE_X509_FORMAT_AUTO_DETECT', 3);
/**#@-*/
/**
@@ -132,7 +138,7 @@ class File_X509 /**
* ASN.1 syntax for X.509 certificates
*
- * @var Array
+ * @var array
* @access private
*/
var $Certificate;
@@ -181,7 +187,7 @@ class File_X509 /**
* ASN.1 syntax for Certificate Signing Requests (RFC2986)
*
- * @var Array
+ * @var array
* @access private
*/
var $CertificationRequest;
@@ -189,7 +195,7 @@ class File_X509 /**
* ASN.1 syntax for Certificate Revocation Lists (RFC5280)
*
- * @var Array
+ * @var array
* @access private
*/
var $CertificateList;
@@ -197,7 +203,7 @@ class File_X509 /**
* Distinguished Name
*
- * @var Array
+ * @var array
* @access private
*/
var $dn;
@@ -205,7 +211,7 @@ class File_X509 /**
* Public key
*
- * @var String
+ * @var string
* @access private
*/
var $publicKey;
@@ -213,7 +219,7 @@ class File_X509 /**
* Private key
*
- * @var String
+ * @var string
* @access private
*/
var $privateKey;
@@ -221,7 +227,7 @@ class File_X509 /**
* Object identifiers for X.509 certificates
*
- * @var Array
+ * @var array
* @access private
* @link http://en.wikipedia.org/wiki/Object_identifier
*/
@@ -230,7 +236,7 @@ class File_X509 /**
* The certificate authorities
*
- * @var Array
+ * @var array
* @access private
*/
var $CAs;
@@ -238,7 +244,7 @@ class File_X509 /**
* The currently loaded certificate
*
- * @var Array
+ * @var array
* @access private
*/
var $currentCert;
@@ -249,7 +255,7 @@ class File_X509 * There's no guarantee File_X509 is going to reencode an X.509 cert in the same way it was originally
* encoded so we take save the portion of the original cert that the signature would have made for.
*
- * @var String
+ * @var string
* @access private
*/
var $signatureSubject;
@@ -257,7 +263,7 @@ class File_X509 /**
* Certificate Start Date
*
- * @var String
+ * @var string
* @access private
*/
var $startDate;
@@ -265,7 +271,7 @@ class File_X509 /**
* Certificate End Date
*
- * @var String
+ * @var string
* @access private
*/
var $endDate;
@@ -273,7 +279,7 @@ class File_X509 /**
* Serial Number
*
- * @var String
+ * @var string
* @access private
*/
var $serialNumber;
@@ -284,7 +290,7 @@ class File_X509 * See {@link http://tools.ietf.org/html/rfc5280#section-4.2.1.1 RFC5280#section-4.2.1.1} and
* {@link http://tools.ietf.org/html/rfc5280#section-4.2.1.2 RFC5280#section-4.2.1.2}.
*
- * @var String
+ * @var string
* @access private
*/
var $currentKeyIdentifier;
@@ -292,7 +298,7 @@ class File_X509 /**
* CA Flag
*
- * @var Boolean
+ * @var bool
* @access private
*/
var $caFlag = false;
@@ -300,7 +306,7 @@ class File_X509 /**
* SPKAC Challenge
*
- * @var String
+ * @var string
* @access private
*/
var $challenge;
@@ -1422,11 +1428,12 @@ class File_X509 *
* Returns an associative array describing the X.509 cert or a false if the cert failed to load
*
- * @param String $cert
+ * @param string $cert
+ * @param int $mode
* @access public
- * @return Mixed
+ * @return mixed
*/
- function loadX509($cert)
+ function loadX509($cert, $mode = FILE_X509_FORMAT_AUTO_DETECT)
{
if (is_array($cert) && isset($cert['tbsCertificate'])) {
unset($this->currentCert);
@@ -1447,7 +1454,13 @@ class File_X509 $asn1 = new File_ASN1();
- $cert = $this->_extractBER($cert);
+ if ($mode != FILE_X509_FORMAT_DER) {
+ $newcert = $this->_extractBER($cert);
+ if ($mode == FILE_X509_FORMAT_PEM && $cert == $newcert) {
+ return false;
+ }
+ $cert = $newcert;
+ }
if ($cert === false) {
$this->currentCert = false;
@@ -1484,10 +1497,10 @@ class File_X509 /**
* Save X.509 certificate
*
- * @param Array $cert
- * @param Integer $format optional
+ * @param array $cert
+ * @param int $format optional
* @access public
- * @return String
+ * @return string
*/
function saveX509($cert, $format = FILE_X509_FORMAT_PEM)
{
@@ -1560,9 +1573,9 @@ class File_X509 * Map extension values from octet string to extension-specific internal
* format.
*
- * @param Array ref $root
- * @param String $path
- * @param Object $asn1
+ * @param array ref $root
+ * @param string $path
+ * @param object $asn1
* @access private
*/
function _mapInExtensions(&$root, $path, $asn1)
@@ -1610,9 +1623,9 @@ class File_X509 * Map extension values from extension-specific internal format to
* octet string.
*
- * @param Array ref $root
- * @param String $path
- * @param Object $asn1
+ * @param array ref $root
+ * @param string $path
+ * @param object $asn1
* @access private
*/
function _mapOutExtensions(&$root, $path, $asn1)
@@ -1676,9 +1689,9 @@ class File_X509 * Map attribute values from ANY type to attribute-specific internal
* format.
*
- * @param Array ref $root
- * @param String $path
- * @param Object $asn1
+ * @param array ref $root
+ * @param string $path
+ * @param object $asn1
* @access private
*/
function _mapInAttributes(&$root, $path, $asn1)
@@ -1717,9 +1730,9 @@ class File_X509 * Map attribute values from attribute-specific internal format to
* ANY type.
*
- * @param Array ref $root
- * @param String $path
- * @param Object $asn1
+ * @param array ref $root
+ * @param string $path
+ * @param object $asn1
* @access private
*/
function _mapOutAttributes(&$root, $path, $asn1)
@@ -1759,9 +1772,9 @@ class File_X509 /**
* Associate an extension ID to an extension mapping
*
- * @param String $extnId
+ * @param string $extnId
* @access private
- * @return Mixed
+ * @return mixed
*/
function _getMapping($extnId)
{
@@ -1855,9 +1868,9 @@ class File_X509 /**
* Load an X.509 certificate as a certificate authority
*
- * @param String $cert
+ * @param string $cert
* @access public
- * @return Boolean
+ * @return bool
*/
function loadCA($cert)
{
@@ -1922,9 +1935,9 @@ class File_X509 * component or component fragment. E.g., *.a.com matches foo.a.com but
* not bar.foo.a.com. f*.com matches foo.com but not bar.com.
*
- * @param String $url
+ * @param string $url
* @access public
- * @return Boolean
+ * @return bool
*/
function validateURL($url)
{
@@ -1980,7 +1993,7 @@ class File_X509 *
* If $date isn't defined it is assumed to be the current date.
*
- * @param Integer $date optional
+ * @param int $date optional
* @access public
*/
function validateDate($date = null)
@@ -2019,9 +2032,9 @@ class File_X509 *
* The behavior of this function is inspired by {@link http://php.net/openssl-verify openssl_verify}.
*
- * @param Boolean $caonly optional
+ * @param bool $caonly optional
* @access public
- * @return Mixed
+ * @return mixed
*/
function validateSignature($caonly = true)
{
@@ -2129,13 +2142,13 @@ class File_X509 *
* Returns true if the signature is verified, false if it is not correct or null on error
*
- * @param String $publicKeyAlgorithm
- * @param String $publicKey
- * @param String $signatureAlgorithm
- * @param String $signature
- * @param String $signatureSubject
+ * @param string $publicKeyAlgorithm
+ * @param string $publicKey
+ * @param string $signatureAlgorithm
+ * @param string $signature
+ * @param string $signatureSubject
* @access private
- * @return Integer
+ * @return int
*/
function _validateSignature($publicKeyAlgorithm, $publicKey, $signatureAlgorithm, $signature, $signatureSubject)
{
@@ -2177,10 +2190,10 @@ class File_X509 *
* Reformats a public key to a format supported by phpseclib (if applicable)
*
- * @param String $algorithm
- * @param String $key
+ * @param string $algorithm
+ * @param string $key
* @access private
- * @return String
+ * @return string
*/
function _reformatKey($algorithm, $key)
{
@@ -2203,9 +2216,9 @@ class File_X509 *
* Takes in a base64 encoded "blob" and returns a human readable IP address
*
- * @param String $ip
+ * @param string $ip
* @access private
- * @return String
+ * @return string
*/
function _decodeIP($ip)
{
@@ -2219,9 +2232,9 @@ class File_X509 *
* Takes a human readable IP address into a base64-encoded "blob"
*
- * @param String $ip
+ * @param string $ip
* @access private
- * @return String
+ * @return string
*/
function _encodeIP($ip)
{
@@ -2231,9 +2244,9 @@ class File_X509 /**
* "Normalizes" a Distinguished Name property
*
- * @param String $propName
+ * @param string $propName
* @access private
- * @return Mixed
+ * @return mixed
*/
function _translateDNProp($propName)
{
@@ -2320,11 +2333,11 @@ class File_X509 /**
* Set a Distinguished Name property
*
- * @param String $propName
- * @param Mixed $propValue
- * @param String $type optional
+ * @param string $propName
+ * @param mixed $propValue
+ * @param string $type optional
* @access public
- * @return Boolean
+ * @return bool
*/
function setDNProp($propName, $propValue, $type = 'utf8String')
{
@@ -2354,7 +2367,7 @@ class File_X509 /**
* Remove Distinguished Name properties
*
- * @param String $propName
+ * @param string $propName
* @access public
*/
function removeDNProp($propName)
@@ -2381,10 +2394,10 @@ class File_X509 /**
* Get Distinguished Name properties
*
- * @param String $propName
- * @param Array $dn optional
- * @param Boolean $withType optional
- * @return Mixed
+ * @param string $propName
+ * @param array $dn optional
+ * @param bool $withType optional
+ * @return mixed
* @access public
*/
function getDNProp($propName, $dn = null, $withType = false)
@@ -2432,11 +2445,11 @@ class File_X509 /**
* Set a Distinguished Name
*
- * @param Mixed $dn
- * @param Boolean $merge optional
- * @param String $type optional
+ * @param mixed $dn
+ * @param bool $merge optional
+ * @param string $type optional
* @access public
- * @return Boolean
+ * @return bool
*/
function setDN($dn, $merge = false, $type = 'utf8String')
{
@@ -2475,10 +2488,10 @@ class File_X509 /**
* Get the Distinguished Name for a certificates subject
*
- * @param Mixed $format optional
- * @param Array $dn optional
+ * @param mixed $format optional
+ * @param array $dn optional
* @access public
- * @return Boolean
+ * @return bool
*/
function getDN($format = FILE_X509_DN_ARRAY, $dn = null)
{
@@ -2621,9 +2634,9 @@ class File_X509 /**
* Get the Distinguished Name for a certificate/crl issuer
*
- * @param Integer $format optional
+ * @param int $format optional
* @access public
- * @return Mixed
+ * @return mixed
*/
function getIssuerDN($format = FILE_X509_DN_ARRAY)
{
@@ -2643,9 +2656,9 @@ class File_X509 * Get the Distinguished Name for a certificate/csr subject
* Alias of getDN()
*
- * @param Integer $format optional
+ * @param int $format optional
* @access public
- * @return Mixed
+ * @return mixed
*/
function getSubjectDN($format = FILE_X509_DN_ARRAY)
{
@@ -2666,10 +2679,10 @@ class File_X509 /**
* Get an individual Distinguished Name property for a certificate/crl issuer
*
- * @param String $propName
- * @param Boolean $withType optional
+ * @param string $propName
+ * @param bool $withType optional
* @access public
- * @return Mixed
+ * @return mixed
*/
function getIssuerDNProp($propName, $withType = false)
{
@@ -2688,10 +2701,10 @@ class File_X509 /**
* Get an individual Distinguished Name property for a certificate/csr subject
*
- * @param String $propName
- * @param Boolean $withType optional
+ * @param string $propName
+ * @param bool $withType optional
* @access public
- * @return Mixed
+ * @return mixed
*/
function getSubjectDNProp($propName, $withType = false)
{
@@ -2713,7 +2726,7 @@ class File_X509 * Get the certificate chain for the current cert
*
* @access public
- * @return Mixed
+ * @return mixed
*/
function getChain()
{
@@ -2759,9 +2772,9 @@ class File_X509 *
* Key needs to be a Crypt_RSA object
*
- * @param Object $key
+ * @param object $key
* @access public
- * @return Boolean
+ * @return bool
*/
function setPublicKey($key)
{
@@ -2774,7 +2787,7 @@ class File_X509 *
* Key needs to be a Crypt_RSA object
*
- * @param Object $key
+ * @param object $key
* @access public
*/
function setPrivateKey($key)
@@ -2787,7 +2800,7 @@ class File_X509 *
* Used for SPKAC CSR's
*
- * @param String $challenge
+ * @param string $challenge
* @access public
*/
function setChallenge($challenge)
@@ -2801,7 +2814,7 @@ class File_X509 * Returns a Crypt_RSA object or a false.
*
* @access public
- * @return Mixed
+ * @return mixed
*/
function getPublicKey()
{
@@ -2842,11 +2855,11 @@ class File_X509 /**
* Load a Certificate Signing Request
*
- * @param String $csr
+ * @param string $csr
* @access public
- * @return Mixed
+ * @return mixed
*/
- function loadCSR($csr)
+ function loadCSR($csr, $mode = FILE_X509_FORMAT_AUTO_DETECT)
{
if (is_array($csr) && isset($csr['certificationRequestInfo'])) {
unset($this->currentCert);
@@ -2865,7 +2878,13 @@ class File_X509 $asn1 = new File_ASN1();
- $csr = $this->_extractBER($csr);
+ if ($mode != FILE_X509_FORMAT_DER) {
+ $newcsr = $this->_extractBER($csr);
+ if ($mode == FILE_X509_FORMAT_PEM && $csr == $newcsr) {
+ return false;
+ }
+ $csr = $newcsr;
+ }
$orig = $csr;
if ($csr === false) {
@@ -2918,10 +2937,10 @@ class File_X509 /**
* Save CSR request
*
- * @param Array $csr
- * @param Integer $format optional
+ * @param array $csr
+ * @param int $format optional
* @access public
- * @return String
+ * @return string
*/
function saveCSR($csr, $format = FILE_X509_FORMAT_PEM)
{
@@ -2970,9 +2989,9 @@ class File_X509 *
* https://developer.mozilla.org/en-US/docs/HTML/Element/keygen
*
- * @param String $csr
+ * @param string $csr
* @access public
- * @return Mixed
+ * @return mixed
*/
function loadSPKAC($spkac)
{
@@ -3044,10 +3063,10 @@ class File_X509 /**
* Save a SPKAC CSR request
*
- * @param Array $csr
- * @param Integer $format optional
+ * @param array $csr
+ * @param int $format optional
* @access public
- * @return String
+ * @return string
*/
function saveSPKAC($spkac, $format = FILE_X509_FORMAT_PEM)
{
@@ -3087,11 +3106,11 @@ class File_X509 /**
* Load a Certificate Revocation List
*
- * @param String $crl
+ * @param string $crl
* @access public
- * @return Mixed
+ * @return mixed
*/
- function loadCRL($crl)
+ function loadCRL($crl, $mode = FILE_X509_FORMAT_AUTO_DETECT)
{
if (is_array($crl) && isset($crl['tbsCertList'])) {
$this->currentCert = $crl;
@@ -3101,7 +3120,13 @@ class File_X509 $asn1 = new File_ASN1();
- $crl = $this->_extractBER($crl);
+ if ($mode != FILE_X509_FORMAT_DER) {
+ $newcrl = $this->_extractBER($crl);
+ if ($mode == FILE_X509_FORMAT_PEM && $crl == $newcrl) {
+ return false;
+ }
+ $crl = $newcrl;
+ }
$orig = $crl;
if ($crl === false) {
@@ -3142,10 +3167,10 @@ class File_X509 /**
* Save Certificate Revocation List.
*
- * @param Array $crl
- * @param Integer $format optional
+ * @param array $crl
+ * @param int $format optional
* @access public
- * @return String
+ * @return string
*/
function saveCRL($crl, $format = FILE_X509_FORMAT_PEM)
{
@@ -3204,9 +3229,9 @@ class File_X509 * - 5.1.2.6 Revoked Certificates
* by choosing utcTime iff year of date given is before 2050 and generalTime else.
*
- * @param String $date in format date('D, d M Y H:i:s O')
+ * @param string $date in format date('D, d M Y H:i:s O')
* @access private
- * @return Array
+ * @return array
*/
function _timeField($date)
{
@@ -3227,9 +3252,9 @@ class File_X509 *
* @param File_X509 $issuer
* @param File_X509 $subject
- * @param String $signatureAlgorithm optional
+ * @param string $signatureAlgorithm optional
* @access public
- * @return Mixed
+ * @return mixed
*/
function sign($issuer, $subject, $signatureAlgorithm = 'sha1WithRSAEncryption')
{
@@ -3411,7 +3436,7 @@ class File_X509 * Sign a CSR
*
* @access public
- * @return Mixed
+ * @return mixed
*/
function signCSR($signatureAlgorithm = 'sha1WithRSAEncryption')
{
@@ -3469,7 +3494,7 @@ class File_X509 * Sign a SPKAC
*
* @access public
- * @return Mixed
+ * @return mixed
*/
function signSPKAC($signatureAlgorithm = 'sha1WithRSAEncryption')
{
@@ -3537,9 +3562,9 @@ class File_X509 *
* @param File_X509 $issuer
* @param File_X509 $crl
- * @param String $signatureAlgorithm optional
+ * @param string $signatureAlgorithm optional
* @access public
- * @return Mixed
+ * @return mixed
*/
function signCRL($issuer, $crl, $signatureAlgorithm = 'sha1WithRSAEncryption')
{
@@ -3664,11 +3689,11 @@ class File_X509 /**
* X.509 certificate signing helper function.
*
- * @param Object $key
+ * @param object $key
* @param File_X509 $subject
- * @param String $signatureAlgorithm
+ * @param string $signatureAlgorithm
* @access public
- * @return Mixed
+ * @return mixed
*/
function _sign($key, $signatureAlgorithm)
{
@@ -3696,7 +3721,7 @@ class File_X509 /**
* Set certificate start date
*
- * @param String $date
+ * @param string $date
* @access public
*/
function setStartDate($date)
@@ -3707,7 +3732,7 @@ class File_X509 /**
* Set certificate end date
*
- * @param String $date
+ * @param string $date
* @access public
*/
function setEndDate($date)
@@ -3732,7 +3757,7 @@ class File_X509 /**
* Set Serial Number
*
- * @param String $serial
+ * @param string $serial
* @param $base optional
* @access public
*/
@@ -3755,10 +3780,10 @@ class File_X509 * Get a reference to a subarray
*
* @param array $root
- * @param String $path absolute path with / as component separator
- * @param Boolean $create optional
+ * @param string $path absolute path with / as component separator
+ * @param bool $create optional
* @access private
- * @return array item ref or false
+ * @return array|false
*/
function &_subArray(&$root, $path, $create = false)
{
@@ -3791,10 +3816,10 @@ class File_X509 * Get a reference to an extension subarray
*
* @param array $root
- * @param String $path optional absolute path with / as component separator
- * @param Boolean $create optional
+ * @param string $path optional absolute path with / as component separator
+ * @param bool $create optional
* @access private
- * @return array ref or false
+ * @return array|false
*/
function &_extensions(&$root, $path = null, $create = false)
{
@@ -3845,10 +3870,10 @@ class File_X509 /**
* Remove an Extension
*
- * @param String $id
- * @param String $path optional
+ * @param string $id
+ * @param string $path optional
* @access private
- * @return Boolean
+ * @return bool
*/
function _removeExtension($id, $path = null)
{
@@ -3875,11 +3900,11 @@ class File_X509 *
* Returns the extension if it exists and false if not
*
- * @param String $id
- * @param Array $cert optional
- * @param String $path optional
+ * @param string $id
+ * @param array $cert optional
+ * @param string $path optional
* @access private
- * @return Mixed
+ * @return mixed
*/
function _getExtension($id, $cert = null, $path = null)
{
@@ -3902,9 +3927,9 @@ class File_X509 * Returns a list of all extensions in use
*
* @param array $cert optional
- * @param String $path optional
+ * @param string $path optional
* @access private
- * @return Array
+ * @return array
*/
function _getExtensions($cert = null, $path = null)
{
@@ -3923,13 +3948,13 @@ class File_X509 /**
* Set an Extension
*
- * @param String $id
- * @param Mixed $value
- * @param Boolean $critical optional
- * @param Boolean $replace optional
- * @param String $path optional
+ * @param string $id
+ * @param mixed $value
+ * @param bool $critical optional
+ * @param bool $replace optional
+ * @param string $path optional
* @access private
- * @return Boolean
+ * @return bool
*/
function _setExtension($id, $value, $critical = false, $replace = true, $path = null)
{
@@ -3959,9 +3984,9 @@ class File_X509 /**
* Remove a certificate, CSR or CRL Extension
*
- * @param String $id
+ * @param string $id
* @access public
- * @return Boolean
+ * @return bool
*/
function removeExtension($id)
{
@@ -3973,10 +3998,10 @@ class File_X509 *
* Returns the extension if it exists and false if not
*
- * @param String $id
- * @param Array $cert optional
+ * @param string $id
+ * @param array $cert optional
* @access public
- * @return Mixed
+ * @return mixed
*/
function getExtension($id, $cert = null)
{
@@ -3988,7 +4013,7 @@ class File_X509 *
* @param array $cert optional
* @access public
- * @return Array
+ * @return array
*/
function getExtensions($cert = null)
{
@@ -3998,12 +4023,12 @@ class File_X509 /**
* Set a certificate, CSR or CRL Extension
*
- * @param String $id
- * @param Mixed $value
- * @param Boolean $critical optional
- * @param Boolean $replace optional
+ * @param string $id
+ * @param mixed $value
+ * @param bool $critical optional
+ * @param bool $replace optional
* @access public
- * @return Boolean
+ * @return bool
*/
function setExtension($id, $value, $critical = false, $replace = true)
{
@@ -4013,10 +4038,10 @@ class File_X509 /**
* Remove a CSR attribute.
*
- * @param String $id
- * @param Integer $disposition optional
+ * @param string $id
+ * @param int $disposition optional
* @access public
- * @return Boolean
+ * @return bool
*/
function removeAttribute($id, $disposition = FILE_X509_ATTR_ALL)
{
@@ -4063,11 +4088,11 @@ class File_X509 *
* Returns the attribute if it exists and false if not
*
- * @param String $id
- * @param Integer $disposition optional
- * @param Array $csr optional
+ * @param string $id
+ * @param int $disposition optional
+ * @param array $csr optional
* @access public
- * @return Mixed
+ * @return mixed
*/
function getAttribute($id, $disposition = FILE_X509_ATTR_ALL, $csr = null)
{
@@ -4107,7 +4132,7 @@ class File_X509 *
* @param array $csr optional
* @access public
- * @return Array
+ * @return array
*/
function getAttributes($csr = null)
{
@@ -4130,11 +4155,11 @@ class File_X509 /**
* Set a CSR attribute
*
- * @param String $id
- * @param Mixed $value
- * @param Boolean $disposition optional
+ * @param string $id
+ * @param mixed $value
+ * @param bool $disposition optional
* @access public
- * @return Boolean
+ * @return bool
*/
function setAttribute($id, $value, $disposition = FILE_X509_ATTR_ALL)
{
@@ -4188,7 +4213,7 @@ class File_X509 *
* This is used by the id-ce-authorityKeyIdentifier and the id-ce-subjectKeyIdentifier extensions.
*
- * @param String $value
+ * @param string $value
* @access public
*/
function setKeyIdentifier($value)
@@ -4213,10 +4238,10 @@ class File_X509 * - File_ASN1_Element object
* - PEM or DER string
*
- * @param Mixed $key optional
- * @param Integer $method optional
+ * @param mixed $key optional
+ * @param int $method optional
* @access public
- * @return String binary key identifier
+ * @return string binary key identifier
*/
function computeKeyIdentifier($key = null, $method = 1)
{
@@ -4296,7 +4321,7 @@ class File_X509 * Format a public key as appropriate
*
* @access private
- * @return Array
+ * @return array
*/
function _formatSubjectPublicKey()
{
@@ -4322,7 +4347,7 @@ class File_X509 * Set the domain name's which the cert is to be valid for
*
* @access public
- * @return Array
+ * @return array
*/
function setDomain()
{
@@ -4335,7 +4360,7 @@ class File_X509 * Set the IP Addresses's which the cert is to be valid for
*
* @access public
- * @param String $ipAddress optional
+ * @param string $ipAddress optional
*/
function setIPAddress()
{
@@ -4352,8 +4377,8 @@ class File_X509 * Helper function to build domain array
*
* @access private
- * @param String $domain
- * @return Array
+ * @param string $domain
+ * @return array
*/
function _dnsName($domain)
{
@@ -4366,8 +4391,8 @@ class File_X509 * (IPv6 is not currently supported)
*
* @access private
- * @param String $address
- * @return Array
+ * @param string $address
+ * @return array
*/
function _iPAddress($address)
{
@@ -4378,10 +4403,10 @@ class File_X509 * Get the index of a revoked certificate.
*
* @param array $rclist
- * @param String $serial
- * @param Boolean $create optional
+ * @param string $serial
+ * @param bool $create optional
* @access private
- * @return Integer or false
+ * @return int|false
*/
function _revokedCertificate(&$rclist, $serial, $create = false)
{
@@ -4406,10 +4431,10 @@ class File_X509 /**
* Revoke a certificate.
*
- * @param String $serial
- * @param String $date optional
+ * @param string $serial
+ * @param string $date optional
* @access public
- * @return Boolean
+ * @return bool
*/
function revoke($serial, $date = null)
{
@@ -4433,9 +4458,9 @@ class File_X509 /**
* Unrevoke a certificate.
*
- * @param String $serial
+ * @param string $serial
* @access public
- * @return Boolean
+ * @return bool
*/
function unrevoke($serial)
{
@@ -4453,9 +4478,9 @@ class File_X509 /**
* Get a revoked certificate.
*
- * @param String $serial
+ * @param string $serial
* @access public
- * @return Mixed
+ * @return mixed
*/
function getRevoked($serial)
{
@@ -4499,10 +4524,10 @@ class File_X509 /**
* Remove a Revoked Certificate Extension
*
- * @param String $serial
- * @param String $id
+ * @param string $serial
+ * @param string $id
* @access public
- * @return Boolean
+ * @return bool
*/
function removeRevokedCertificateExtension($serial, $id)
{
@@ -4520,11 +4545,11 @@ class File_X509 *
* Returns the extension if it exists and false if not
*
- * @param String $serial
- * @param String $id
- * @param Array $crl optional
+ * @param string $serial
+ * @param string $id
+ * @param array $crl optional
* @access public
- * @return Mixed
+ * @return mixed
*/
function getRevokedCertificateExtension($serial, $id, $crl = null)
{
@@ -4544,10 +4569,10 @@ class File_X509 /**
* Returns a list of all extensions in use for a given revoked certificate
*
- * @param String $serial
+ * @param string $serial
* @param array $crl optional
* @access public
- * @return Array
+ * @return array
*/
function getRevokedCertificateExtensions($serial, $crl = null)
{
@@ -4567,13 +4592,13 @@ class File_X509 /**
* Set a Revoked Certificate Extension
*
- * @param String $serial
- * @param String $id
- * @param Mixed $value
- * @param Boolean $critical optional
- * @param Boolean $replace optional
+ * @param string $serial
+ * @param string $id
+ * @param mixed $value
+ * @param bool $critical optional
+ * @param bool $replace optional
* @access public
- * @return Boolean
+ * @return bool
*/
function setRevokedCertificateExtension($serial, $id, $value, $critical = false, $replace = true)
{
@@ -4592,8 +4617,8 @@ class File_X509 * Extract raw BER from Base64 encoding
*
* @access private
- * @param String $str
- * @return String
+ * @param string $str
+ * @return string
*/
function _extractBER($str)
{
@@ -4606,7 +4631,7 @@ class File_X509 * subject=/O=organization/OU=org unit/CN=common name
* issuer=/O=organization/CN=common name
*/
- $temp = preg_replace('#.*?^-+[^-]+-+#ms', '', $str, 1);
+ $temp = preg_replace('#.*?^-+[^-]+-+[\r\n ]*$#ms', '', $str, 1);
// remove the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- stuff
$temp = preg_replace('#-+[^-]+-+#', '', $temp);
// remove new lines
@@ -4614,4 +4639,31 @@ class File_X509 $temp = preg_match('#^[a-zA-Z\d/+]*={0,2}$#', $temp) ? base64_decode($temp) : false;
return $temp != false ? $temp : $str;
}
+
+ /**
+ * Returns the OID corresponding to a name
+ *
+ * What's returned in the associative array returned by loadX509() (or load*()) is either a name or an OID if
+ * no OID to name mapping is available. The problem with this is that what may be an unmapped OID in one version
+ * of phpseclib may not be unmapped in the next version, so apps that are looking at this OID may not be able
+ * to work from version to version.
+ *
+ * This method will return the OID if a name is passed to it and if no mapping is avialable it'll assume that
+ * what's being passed to it already is an OID and return that instead. A few examples.
+ *
+ * getOID('2.16.840.1.101.3.4.2.1') == '2.16.840.1.101.3.4.2.1'
+ * getOID('id-sha256') == '2.16.840.1.101.3.4.2.1'
+ * getOID('zzz') == 'zzz'
+ *
+ * @access public
+ * @return string
+ */
+ function getOID($name)
+ {
+ static $reverseMap;
+ if (!isset($reverseMap)) {
+ $reverseMap = array_flip($this->oids);
+ }
+ return isset($reverseMap[$name]) ? $reverseMap[$name] : $name;
+ }
}
diff --git a/libs/phpseclib-1.0.0/Math/BigInteger.php b/libs/phpseclib-1.0.1/Math/BigInteger.php index cc1e182..fbb722f 100644 --- a/libs/phpseclib-1.0.0/Math/BigInteger.php +++ b/libs/phpseclib-1.0.1/Math/BigInteger.php @@ -72,27 +72,27 @@ * Reduction constants
*
* @access private
- * @see Math_BigInteger::_reduce()
+ * @see self::_reduce()
*/
/**
- * @see Math_BigInteger::_montgomery()
- * @see Math_BigInteger::_prepMontgomery()
+ * @see self::_montgomery()
+ * @see self::_prepMontgomery()
*/
define('MATH_BIGINTEGER_MONTGOMERY', 0);
/**
- * @see Math_BigInteger::_barrett()
+ * @see self::_barrett()
*/
define('MATH_BIGINTEGER_BARRETT', 1);
/**
- * @see Math_BigInteger::_mod2()
+ * @see self::_mod2()
*/
define('MATH_BIGINTEGER_POWEROF2', 2);
/**
- * @see Math_BigInteger::_remainder()
+ * @see self::_remainder()
*/
define('MATH_BIGINTEGER_CLASSIC', 3);
/**
- * @see Math_BigInteger::__clone()
+ * @see self::__clone()
*/
define('MATH_BIGINTEGER_NONE', 4);
/**#@-*/
@@ -117,8 +117,8 @@ define('MATH_BIGINTEGER_SIGN', 1); /**#@+
* @access private
- * @see Math_BigInteger::_montgomery()
- * @see Math_BigInteger::_barrett()
+ * @see self::_montgomery()
+ * @see self::_barrett()
*/
/**
* Cache constants
@@ -136,7 +136,7 @@ define('MATH_BIGINTEGER_DATA', 1); * Mode constants.
*
* @access private
- * @see Math_BigInteger::Math_BigInteger()
+ * @see self::Math_BigInteger()
*/
/**
* To use the pure-PHP implementation
@@ -178,7 +178,7 @@ class Math_BigInteger /**
* Holds the BigInteger's value.
*
- * @var Array
+ * @var array
* @access private
*/
var $value;
@@ -186,23 +186,15 @@ class Math_BigInteger /**
* Holds the BigInteger's magnitude.
*
- * @var Boolean
+ * @var bool
* @access private
*/
var $is_negative = false;
/**
- * Random number generator function
- *
- * @see setRandomGenerator()
- * @access private
- */
- var $generator = 'mt_rand';
-
- /**
* Precision
*
- * @see setPrecision()
+ * @see self::setPrecision()
* @access private
*/
var $precision = -1;
@@ -210,7 +202,7 @@ class Math_BigInteger /**
* Precision Bitmask
*
- * @see setPrecision()
+ * @see self::setPrecision()
* @access private
*/
var $bitmask = false;
@@ -222,9 +214,9 @@ class Math_BigInteger * a variable that'll be serializable regardless of whether or not extensions are being used. Unlike $this->value,
* however, $this->hex is only calculated when $this->__sleep() is called.
*
- * @see __sleep()
- * @see __wakeup()
- * @var String
+ * @see self::__sleep()
+ * @see self::__wakeup()
+ * @var string
* @access private
*/
var $hex;
@@ -246,8 +238,8 @@ class Math_BigInteger * ?>
* </code>
*
- * @param optional $x base-10 number or base-$base number if $base set.
- * @param optional integer $base
+ * @param $x base-10 number or base-$base number if $base set.
+ * @param int $base
* @return Math_BigInteger
* @access public
*/
@@ -266,7 +258,7 @@ class Math_BigInteger }
}
- if (function_exists('openssl_public_encrypt') && !defined('MATH_BIGINTEGER_OPENSSL_DISABLE') && !defined('MATH_BIGINTEGER_OPENSSL_ENABLED')) {
+ if (extension_loaded('openssl') && !defined('MATH_BIGINTEGER_OPENSSL_DISABLE') && !defined('MATH_BIGINTEGER_OPENSSL_ENABLED')) {
// some versions of XAMPP have mismatched versions of OpenSSL which causes it not to work
ob_start();
@phpinfo();
@@ -423,13 +415,13 @@ class Math_BigInteger $this->is_negative = false;
break;
case MATH_BIGINTEGER_MODE_BCMATH:
- $x = ( strlen($x) & 1 ) ? '0' . $x : $x;
+ $x = (strlen($x) & 1) ? '0' . $x : $x;
$temp = new Math_BigInteger(pack('H*', $x), 256);
$this->value = $this->is_negative ? '-' . $temp->value : $temp->value;
$this->is_negative = false;
break;
default:
- $x = ( strlen($x) & 1 ) ? '0' . $x : $x;
+ $x = (strlen($x) & 1) ? '0' . $x : $x;
$temp = new Math_BigInteger(pack('H*', $x), 256);
$this->value = $temp->value;
}
@@ -524,8 +516,8 @@ class Math_BigInteger * ?>
* </code>
*
- * @param Boolean $twos_compliment
- * @return String
+ * @param bool $twos_compliment
+ * @return string
* @access public
* @internal Converts a base-2**26 number to base-2**8
*/
@@ -558,7 +550,7 @@ class Math_BigInteger }
$temp = gmp_strval(gmp_abs($this->value), 16);
- $temp = ( strlen($temp) & 1 ) ? '0' . $temp : $temp;
+ $temp = (strlen($temp) & 1) ? '0' . $temp : $temp;
$temp = pack('H*', $temp);
return $this->precision > 0 ?
@@ -621,8 +613,8 @@ class Math_BigInteger * ?>
* </code>
*
- * @param Boolean $twos_compliment
- * @return String
+ * @param bool $twos_compliment
+ * @return string
* @access public
* @internal Converts a base-2**26 number to base-2**8
*/
@@ -648,8 +640,8 @@ class Math_BigInteger * ?>
* </code>
*
- * @param Boolean $twos_compliment
- * @return String
+ * @param bool $twos_compliment
+ * @return string
* @access public
* @internal Converts a base-2**26 number to base-2**2
*/
@@ -686,7 +678,7 @@ class Math_BigInteger * ?>
* </code>
*
- * @return String
+ * @return string
* @access public
* @internal Converts a base-2**26 number to base-10**7 (which is pretty much base-10)
*/
@@ -738,7 +730,7 @@ class Math_BigInteger * {@link http://php.net/language.oop5.basic#51624}
*
* @access public
- * @see __clone()
+ * @see self::__clone()
* @return Math_BigInteger
*/
function copy()
@@ -746,7 +738,6 @@ class Math_BigInteger $temp = new Math_BigInteger();
$temp->value = $this->value;
$temp->is_negative = $this->is_negative;
- $temp->generator = $this->generator;
$temp->precision = $this->precision;
$temp->bitmask = $this->bitmask;
return $temp;
@@ -775,7 +766,7 @@ class Math_BigInteger * call Math_BigInteger::copy(), instead.
*
* @access public
- * @see copy()
+ * @see self::copy()
* @return Math_BigInteger
*/
function __clone()
@@ -788,21 +779,17 @@ class Math_BigInteger *
* Will be called, automatically, when serialize() is called on a Math_BigInteger object.
*
- * @see __wakeup()
+ * @see self::__wakeup()
* @access public
*/
function __sleep()
{
$this->hex = $this->toHex(true);
$vars = array('hex');
- if ($this->generator != 'mt_rand') {
- $vars[] = 'generator';
- }
if ($this->precision > 0) {
$vars[] = 'precision';
}
return $vars;
-
}
/**
@@ -810,7 +797,7 @@ class Math_BigInteger *
* Will be called, automatically, when unserialize() is called on a Math_BigInteger object.
*
- * @see __sleep()
+ * @see self::__sleep()
* @access public
*/
function __wakeup()
@@ -818,7 +805,6 @@ class Math_BigInteger $temp = new Math_BigInteger($this->hex, -16);
$this->value = $temp->value;
$this->is_negative = $temp->is_negative;
- $this->setRandomGenerator($this->generator);
if ($this->precision > 0) {
// recalculate $this->bitmask
$this->setPrecision($this->precision);
@@ -826,6 +812,39 @@ class Math_BigInteger }
/**
+ * __debugInfo() magic method
+ *
+ * Will be called, automatically, when print_r() or var_dump() are called
+ *
+ * @access public
+ */
+ function __debugInfo()
+ {
+ $opts = array();
+ switch (MATH_BIGINTEGER_MODE) {
+ case MATH_BIGINTEGER_MODE_GMP:
+ $engine = 'gmp';
+ break;
+ case MATH_BIGINTEGER_MODE_BCMATH:
+ $engine = 'bcmath';
+ break;
+ case MATH_BIGINTEGER_MODE_INTERNAL:
+ $engine = 'internal';
+ $opts[] = PHP_INT_SIZE == 8 ? '64-bit' : '32-bit';
+ }
+ if (MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_GMP && defined('MATH_BIGINTEGER_OPENSSL_ENABLED')) {
+ $opts[] = 'OpenSSL';
+ }
+ if (!empty($opts)) {
+ $engine.= ' (' . implode($opts, ', ') . ')';
+ }
+ return array(
+ 'value' => '0x' . $this->toHex(true),
+ 'engine' => $engine
+ );
+ }
+
+ /**
* Adds two BigIntegers.
*
* Here's an example:
@@ -874,11 +893,11 @@ class Math_BigInteger /**
* Performs addition.
*
- * @param Array $x_value
- * @param Boolean $x_negative
- * @param Array $y_value
- * @param Boolean $y_negative
- * @return Array
+ * @param array $x_value
+ * @param bool $x_negative
+ * @param array $y_value
+ * @param bool $y_negative
+ * @return array
* @access private
*/
function _add($x_value, $x_negative, $y_value, $y_negative)
@@ -1005,11 +1024,11 @@ class Math_BigInteger /**
* Performs subtraction.
*
- * @param Array $x_value
- * @param Boolean $x_negative
- * @param Array $y_value
- * @param Boolean $y_negative
- * @return Array
+ * @param array $x_value
+ * @param bool $x_negative
+ * @param array $y_value
+ * @param bool $y_negative
+ * @return array
* @access private
*/
function _subtract($x_value, $x_negative, $y_value, $y_negative)
@@ -1140,11 +1159,11 @@ class Math_BigInteger /**
* Performs multiplication.
*
- * @param Array $x_value
- * @param Boolean $x_negative
- * @param Array $y_value
- * @param Boolean $y_negative
- * @return Array
+ * @param array $x_value
+ * @param bool $x_negative
+ * @param array $y_value
+ * @param bool $y_negative
+ * @return array
* @access private
*/
function _multiply($x_value, $x_negative, $y_value, $y_negative)
@@ -1179,9 +1198,9 @@ class Math_BigInteger *
* Modeled after 'multiply' in MutableBigInteger.java.
*
- * @param Array $x_value
- * @param Array $y_value
- * @return Array
+ * @param array $x_value
+ * @param array $y_value
+ * @return array
* @access private
*/
function _regularMultiply($x_value, $y_value)
@@ -1243,9 +1262,9 @@ class Math_BigInteger * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and
* {@link http://math.libtomcrypt.com/files/tommath.pdf#page=120 MPM 5.2.3}.
*
- * @param Array $x_value
- * @param Array $y_value
- * @return Array
+ * @param array $x_value
+ * @param array $y_value
+ * @return array
* @access private
*/
function _karatsuba($x_value, $y_value)
@@ -1282,8 +1301,8 @@ class Math_BigInteger /**
* Performs squaring
*
- * @param Array $x
- * @return Array
+ * @param array $x
+ * @return array
* @access private
*/
function _square($x = false)
@@ -1300,8 +1319,8 @@ class Math_BigInteger * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=7 HAC 14.2.4} /
* {@link http://math.libtomcrypt.com/files/tommath.pdf#page=141 MPM 5.3} for more information.
*
- * @param Array $value
- * @return Array
+ * @param array $value
+ * @return array
* @access private
*/
function _baseSquare($value)
@@ -1339,8 +1358,8 @@ class Math_BigInteger * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and
* {@link http://math.libtomcrypt.com/files/tommath.pdf#page=151 MPM 5.3.4}.
*
- * @param Array $value
- * @return Array
+ * @param array $value
+ * @return array
* @access private
*/
function _karatsubaSquare($value)
@@ -1396,7 +1415,7 @@ class Math_BigInteger * </code>
*
* @param Math_BigInteger $y
- * @return Array
+ * @return array
* @access public
* @internal This function is based off of {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=9 HAC 14.20}.
*/
@@ -1512,7 +1531,7 @@ class Math_BigInteger );
$y_window = array(
$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;
@@ -1576,9 +1595,9 @@ class Math_BigInteger *
* abc / x = a00 / x + b0 / x + c / x
*
- * @param Array $dividend
- * @param Array $divisor
- * @return Array
+ * @param array $dividend
+ * @param array $divisor
+ * @return array
* @access private
*/
function _divide_digit($dividend, $divisor)
@@ -1706,10 +1725,10 @@ class Math_BigInteger }
if (MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_BCMATH) {
- $temp = new Math_BigInteger();
- $temp->value = bcpowmod($this->value, $e->value, $n->value, 0);
+ $temp = new Math_BigInteger();
+ $temp->value = bcpowmod($this->value, $e->value, $n->value, 0);
- return $this->_normalize($temp);
+ return $this->_normalize($temp);
}
if (empty($e->value)) {
@@ -1760,7 +1779,7 @@ class Math_BigInteger $mod2->value = array(1);
$mod2->_lshift($j);
- $part1 = ( $mod1->value != array(1) ) ? $this->_slidingWindow($e, $mod1, MATH_BIGINTEGER_MONTGOMERY) : new Math_BigInteger();
+ $part1 = ($mod1->value != array(1)) ? $this->_slidingWindow($e, $mod1, MATH_BIGINTEGER_MONTGOMERY) : new Math_BigInteger();
$part2 = $this->_slidingWindow($e, $mod2, MATH_BIGINTEGER_POWEROF2);
$y1 = $mod2->modInverse($mod1);
@@ -1803,7 +1822,7 @@ class Math_BigInteger *
* @param Math_BigInteger $e
* @param Math_BigInteger $n
- * @param Integer $mode
+ * @param int $mode
* @return Math_BigInteger
* @access private
*/
@@ -1855,13 +1874,14 @@ class Math_BigInteger }
}
- for ($k = 0; $k <= $j; ++$k) {// eg. the length of substr($e_bits, $i, $j+1)
+ // eg. the length of substr($e_bits, $i, $j + 1)
+ for ($k = 0; $k <= $j; ++$k) {
$result = $this->_squareReduce($result, $n_value, $mode);
}
$result = $this->_multiplyReduce($result, $powers[bindec(substr($e_bits, $i, $j + 1))], $n_value, $mode);
- $i+=$j + 1;
+ $i += $j + 1;
}
}
@@ -1876,12 +1896,12 @@ class Math_BigInteger *
* For most $modes this will return the remainder.
*
- * @see _slidingWindow()
+ * @see self::_slidingWindow()
* @access private
- * @param Array $x
- * @param Array $n
- * @param Integer $mode
- * @return Array
+ * @param array $x
+ * @param array $n
+ * @param int $mode
+ * @return array
*/
function _reduce($x, $n, $mode)
{
@@ -1913,12 +1933,12 @@ class Math_BigInteger /**
* Modular reduction preperation
*
- * @see _slidingWindow()
+ * @see self::_slidingWindow()
* @access private
- * @param Array $x
- * @param Array $n
- * @param Integer $mode
- * @return Array
+ * @param array $x
+ * @param array $n
+ * @param int $mode
+ * @return array
*/
function _prepareReduce($x, $n, $mode)
{
@@ -1931,13 +1951,13 @@ class Math_BigInteger /**
* Modular multiply
*
- * @see _slidingWindow()
+ * @see self::_slidingWindow()
* @access private
- * @param Array $x
- * @param Array $y
- * @param Array $n
- * @param Integer $mode
- * @return Array
+ * @param array $x
+ * @param array $y
+ * @param array $n
+ * @param int $mode
+ * @return array
*/
function _multiplyReduce($x, $y, $n, $mode)
{
@@ -1951,12 +1971,12 @@ class Math_BigInteger /**
* Modular square
*
- * @see _slidingWindow()
+ * @see self::_slidingWindow()
* @access private
- * @param Array $x
- * @param Array $n
- * @param Integer $mode
- * @return Array
+ * @param array $x
+ * @param array $n
+ * @param int $mode
+ * @return array
*/
function _squareReduce($x, $n, $mode)
{
@@ -1972,7 +1992,7 @@ class Math_BigInteger * Calculates $x%$n, where $n = 2**$e, for some $e. Since this is basically the same as doing $x & ($n-1),
* we'll just use this function as a wrapper for doing that.
*
- * @see _slidingWindow()
+ * @see self::_slidingWindow()
* @access private
* @param Math_BigInteger
* @return Math_BigInteger
@@ -2002,11 +2022,11 @@ class Math_BigInteger * (x >> 1) + (x >> 1) != x / 2 + x / 2. If x is even, they're the same, but if x is odd, they're not. See the in-line
* comments for details.
*
- * @see _slidingWindow()
+ * @see self::_slidingWindow()
* @access private
- * @param Array $n
- * @param Array $m
- * @return Array
+ * @param array $n
+ * @param array $m
+ * @return array
*/
function _barrett($n, $m)
{
@@ -2099,11 +2119,11 @@ class Math_BigInteger * For numbers with more than four digits Math_BigInteger::_barrett() is faster. The difference between that and this
* is that this function does not fold the denominator into a smaller form.
*
- * @see _slidingWindow()
+ * @see self::_slidingWindow()
* @access private
- * @param Array $x
- * @param Array $n
- * @return Array
+ * @param array $x
+ * @param array $n
+ * @return array
*/
function _regularBarrett($x, $n)
{
@@ -2170,13 +2190,13 @@ class Math_BigInteger *
* If you're going to be doing array_slice($product->value, 0, $stop), some cycles can be saved.
*
- * @see _regularBarrett()
- * @param Array $x_value
- * @param Boolean $x_negative
- * @param Array $y_value
- * @param Boolean $y_negative
- * @param Integer $stop
- * @return Array
+ * @see self::_regularBarrett()
+ * @param array $x_value
+ * @param bool $x_negative
+ * @param array $y_value
+ * @param bool $y_negative
+ * @param int $stop
+ * @return array
* @access private
*/
function _multiplyLower($x_value, $x_negative, $y_value, $y_negative, $stop)
@@ -2251,12 +2271,12 @@ class Math_BigInteger * improved upon (basically, by using the comba method). gcd($n, 2) must be equal to one for this function
* to work correctly.
*
- * @see _prepMontgomery()
- * @see _slidingWindow()
+ * @see self::_prepMontgomery()
+ * @see self::_slidingWindow()
* @access private
- * @param Array $x
- * @param Array $n
- * @return Array
+ * @param array $x
+ * @param array $n
+ * @return array
*/
function _montgomery($x, $n)
{
@@ -2298,13 +2318,13 @@ class Math_BigInteger * Interleaves the montgomery reduction and long multiplication algorithms together as described in
* {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=13 HAC 14.36}
*
- * @see _prepMontgomery()
- * @see _montgomery()
+ * @see self::_prepMontgomery()
+ * @see self::_montgomery()
* @access private
- * @param Array $x
- * @param Array $y
- * @param Array $m
- * @return Array
+ * @param array $x
+ * @param array $y
+ * @param array $m
+ * @return array
*/
function _montgomeryMultiply($x, $y, $m)
{
@@ -2350,12 +2370,12 @@ class Math_BigInteger /**
* Prepare a number for use in Montgomery Modular Reductions
*
- * @see _montgomery()
- * @see _slidingWindow()
+ * @see self::_montgomery()
+ * @see self::_slidingWindow()
* @access private
- * @param Array $x
- * @param Array $n
- * @return Array
+ * @param array $x
+ * @param array $n
+ * @return array
*/
function _prepMontgomery($x, $n)
{
@@ -2389,10 +2409,10 @@ class Math_BigInteger *
* Thanks to Pedro Gimeno Fortea for input!
*
- * @see _montgomery()
+ * @see self::_montgomery()
* @access private
- * @param Array $x
- * @return Integer
+ * @param array $x
+ * @return int
*/
function _modInverse67108864($x) // 2**26 == 67,108,864
{
@@ -2430,7 +2450,7 @@ class Math_BigInteger * </code>
*
* @param Math_BigInteger $n
- * @return mixed false, if no modular inverse exists, Math_BigInteger, otherwise.
+ * @return Math_BigInteger|false
* @access public
* @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=21 HAC 14.64} for more information.
*/
@@ -2441,7 +2461,7 @@ class Math_BigInteger $temp = new Math_BigInteger();
$temp->value = gmp_invert($this->value, $n->value);
- return ( $temp->value === false ) ? false : $this->_normalize($temp);
+ return ($temp->value === false) ? false : $this->_normalize($temp);
}
static $zero, $one;
@@ -2674,9 +2694,9 @@ class Math_BigInteger * Note how the same comparison operator is used. If you want to test for equality, use $x->equals($y).
*
* @param Math_BigInteger $y
- * @return Integer < 0 if $this is less than $y; > 0 if $this is greater than $y, and 0 if they are equal.
+ * @return int < 0 if $this is less than $y; > 0 if $this is greater than $y, and 0 if they are equal.
* @access public
- * @see equals()
+ * @see self::equals()
* @internal Could return $this->subtract($x), but that's not as fast as what we do do.
*/
function compare($y)
@@ -2694,24 +2714,24 @@ class Math_BigInteger /**
* Compares two numbers.
*
- * @param Array $x_value
- * @param Boolean $x_negative
- * @param Array $y_value
- * @param Boolean $y_negative
- * @return Integer
- * @see compare()
+ * @param array $x_value
+ * @param bool $x_negative
+ * @param array $y_value
+ * @param bool $y_negative
+ * @return int
+ * @see self::compare()
* @access private
*/
function _compare($x_value, $x_negative, $y_value, $y_negative)
{
if ($x_negative != $y_negative) {
- return ( !$x_negative && $y_negative ) ? 1 : -1;
+ return (!$x_negative && $y_negative) ? 1 : -1;
}
$result = $x_negative ? -1 : 1;
if (count($x_value) != count($y_value)) {
- return ( count($x_value) > count($y_value) ) ? $result : -$result;
+ return (count($x_value) > count($y_value)) ? $result : -$result;
}
$size = max(count($x_value), count($y_value));
@@ -2720,7 +2740,7 @@ class Math_BigInteger for ($i = count($x_value) - 1; $i >= 0; --$i) {
if ($x_value[$i] != $y_value[$i]) {
- return ( $x_value[$i] > $y_value[$i] ) ? $result : -$result;
+ return ($x_value[$i] > $y_value[$i]) ? $result : -$result;
}
}
@@ -2733,9 +2753,9 @@ class Math_BigInteger * If you need to see if one number is greater than or less than another number, use Math_BigInteger::compare()
*
* @param Math_BigInteger $x
- * @return Boolean
+ * @return bool
* @access public
- * @see compare()
+ * @see self::compare()
*/
function equals($x)
{
@@ -2753,7 +2773,7 @@ class Math_BigInteger * Some bitwise operations give different results depending on the precision being used. Examples include left
* shift, not, and rotates.
*
- * @param Integer $bits
+ * @param int $bits
* @access public
*/
function setPrecision($bits)
@@ -2902,6 +2922,9 @@ class Math_BigInteger // calculuate "not" without regard to $this->precision
// (will always result in a smaller number. ie. ~1 isn't 1111 1110 - it's 0)
$temp = $this->toBytes();
+ if ($temp == '') {
+ return '';
+ }
$pre_msb = decbin(ord($temp[0]));
$temp = ~$temp;
$msb = decbin(ord($temp[0]));
@@ -2931,7 +2954,7 @@ class Math_BigInteger *
* Shifts BigInteger's by $shift bits, effectively dividing by 2**$shift.
*
- * @param Integer $shift
+ * @param int $shift
* @return Math_BigInteger
* @access public
* @internal The only version that yields any speed increases is the internal version.
@@ -2969,7 +2992,7 @@ class Math_BigInteger *
* Shifts BigInteger's by $shift bits, effectively multiplying by 2**$shift.
*
- * @param Integer $shift
+ * @param int $shift
* @return Math_BigInteger
* @access public
* @internal The only version that yields any speed increases is the internal version.
@@ -3007,7 +3030,7 @@ class Math_BigInteger *
* Instead of the top x bits being dropped they're appended to the shifted bit string.
*
- * @param Integer $shift
+ * @param int $shift
* @return Math_BigInteger
* @access public
*/
@@ -3052,7 +3075,7 @@ class Math_BigInteger *
* Instead of the bottom x bits being dropped they're prepended to the shifted bit string.
*
- * @param Integer $shift
+ * @param int $shift
* @return Math_BigInteger
* @access public
*/
@@ -3066,7 +3089,7 @@ class Math_BigInteger *
* This function is deprecated.
*
- * @param String $generator
+ * @param string $generator
* @access public
*/
function setRandomGenerator($generator)
@@ -3078,7 +3101,7 @@ class Math_BigInteger *
* Byte length is equal to $length. Uses crypt_random if it's loaded and mt_rand if it's not.
*
- * @param Integer $length
+ * @param int $length
* @return Math_BigInteger
* @access private
*/
@@ -3113,7 +3136,7 @@ class Math_BigInteger * $max->random($min)
*
* @param Math_BigInteger $arg1
- * @param optional Math_BigInteger $arg2
+ * @param Math_BigInteger $arg2
* @return Math_BigInteger
* @access public
* @internal The API for creating random numbers used to be $a->random($min, $max), where $a was a Math_BigInteger object.
@@ -3190,13 +3213,13 @@ class Math_BigInteger /**
* Generate a random prime number.
*
- * If there's not a prime within the given range, false will be returned. If more than $timeout seconds have elapsed,
- * give up and return false.
+ * If there's not a prime within the given range, false will be returned.
+ * If more than $timeout seconds have elapsed, give up and return false.
*
* @param Math_BigInteger $arg1
- * @param optional Math_BigInteger $arg2
- * @param optional Integer $timeout
- * @return Mixed
+ * @param Math_BigInteger $arg2
+ * @param int $timeout
+ * @return Math_BigInteger|false
* @access public
* @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=15 HAC 4.44}.
*/
@@ -3236,7 +3259,7 @@ class Math_BigInteger $x = $this->random($min, $max);
// gmp_nextprime() requires PHP 5 >= 5.2.0 per <http://php.net/gmp-nextprime>.
- if (MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_GMP && function_exists('gmp_nextprime')) {
+ if (MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_GMP && extension_loaded('gmp') && version_compare(PHP_VERSION, '5.2.0', '>=')) {
$p = new Math_BigInteger();
$p->value = gmp_nextprime($x->value);
@@ -3297,7 +3320,7 @@ class Math_BigInteger *
* If the current number is odd it'll be unchanged. If it's even, one will be added to it.
*
- * @see randomPrime()
+ * @see self::randomPrime()
* @access private
*/
function _make_odd()
@@ -3323,8 +3346,8 @@ class Math_BigInteger * $t parameter is distributability. Math_BigInteger::randomPrime() can be distributed across multiple pageloads
* on a website instead of just one.
*
- * @param optional Math_BigInteger $t
- * @return Boolean
+ * @param Math_BigInteger $t
+ * @return bool
* @access public
* @internal Uses the
* {@link http://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test Miller-Rabin primality test}. See
@@ -3476,7 +3499,7 @@ class Math_BigInteger *
* Shifts BigInteger's by $shift bits.
*
- * @param Integer $shift
+ * @param int $shift
* @access private
*/
function _lshift($shift)
@@ -3511,7 +3534,7 @@ class Math_BigInteger *
* Shifts BigInteger's by $shift bits.
*
- * @param Integer $shift
+ * @param int $shift
* @access private
*/
function _rshift($shift)
@@ -3547,7 +3570,7 @@ class Math_BigInteger *
* @param Math_BigInteger
* @return Math_BigInteger
- * @see _trim()
+ * @see self::_trim()
* @access private
*/
function _normalize($result)
@@ -3557,7 +3580,7 @@ class Math_BigInteger switch (MATH_BIGINTEGER_MODE) {
case MATH_BIGINTEGER_MODE_GMP:
- if (!empty($result->bitmask->value)) {
+ if ($this->bitmask !== false) {
$result->value = gmp_and($result->value, $result->bitmask->value);
}
@@ -3595,7 +3618,7 @@ class Math_BigInteger *
* Removes leading zeros
*
- * @param Array $value
+ * @param array $value
* @return Math_BigInteger
* @access private
*/
@@ -3616,7 +3639,7 @@ class Math_BigInteger *
* @param $input Array
* @param $multiplier mixed
- * @return Array
+ * @return array
* @access private
*/
function _array_repeat($input, $multiplier)
@@ -3631,7 +3654,7 @@ class Math_BigInteger *
* @param $x String
* @param $shift Integer
- * @return String
+ * @return string
* @access private
*/
function _base256_lshift(&$x, $shift)
@@ -3660,7 +3683,7 @@ class Math_BigInteger *
* @param $x String
* @param $shift Integer
- * @return String
+ * @return string
* @access private
*/
function _base256_rshift(&$x, $shift)
@@ -3700,8 +3723,8 @@ class Math_BigInteger /**
* Converts 32-bit integers to bytes.
*
- * @param Integer $x
- * @return String
+ * @param int $x
+ * @return string
* @access private
*/
function _int2bytes($x)
@@ -3712,8 +3735,8 @@ class Math_BigInteger /**
* Converts bytes to 32-bit integers
*
- * @param String $x
- * @return Integer
+ * @param string $x
+ * @return int
* @access private
*/
function _bytes2int($x)
@@ -3727,10 +3750,10 @@ class Math_BigInteger *
* The ability to DER-encode integers is needed to create RSA public keys for use with OpenSSL
*
- * @see modPow()
+ * @see self::modPow()
* @access private
- * @param Integer $length
- * @return String
+ * @param int $length
+ * @return string
*/
function _encodeASN1Length($length)
{
@@ -3751,9 +3774,9 @@ class Math_BigInteger * we'll guarantee that the dividend is divisible by first subtracting the remainder.
*
* @access private
- * @param Integer $x
- * @param Integer $y
- * @return Integer
+ * @param int $x
+ * @param int $y
+ * @return int
*/
function _safe_divide($x, $y)
{
diff --git a/libs/phpseclib-1.0.0/Net/SCP.php b/libs/phpseclib-1.0.1/Net/SCP.php index faebc4b..df92bc1 100644 --- a/libs/phpseclib-1.0.0/Net/SCP.php +++ b/libs/phpseclib-1.0.1/Net/SCP.php @@ -51,7 +51,7 @@ /**#@+
* @access public
- * @see Net_SCP::put()
+ * @see self::put()
*/
/**
* Reads data from a local file.
@@ -65,8 +65,8 @@ define('NET_SCP_STRING', 2); /**#@+
* @access private
- * @see Net_SCP::_send()
- * @see Net_SCP::_receive()
+ * @see self::_send()
+ * @see self::_receive()
*/
/**
* SSH1 is being used.
@@ -90,7 +90,7 @@ class Net_SCP /**
* SSH Object
*
- * @var Object
+ * @var object
* @access private
*/
var $ssh;
@@ -98,7 +98,7 @@ class Net_SCP /**
* Packet Size
*
- * @var Integer
+ * @var int
* @access private
*/
var $packet_size;
@@ -106,7 +106,7 @@ class Net_SCP /**
* Mode
*
- * @var Integer
+ * @var int
* @access private
*/
var $mode;
@@ -116,9 +116,9 @@ class Net_SCP *
* Connects to an SSH server
*
- * @param String $host
- * @param optional Integer $port
- * @param optional Integer $timeout
+ * @param string $host
+ * @param int $port
+ * @param int $timeout
* @return Net_SCP
* @access public
*/
@@ -157,11 +157,11 @@ class Net_SCP * Currently, only binary mode is supported. As such, if the line endings need to be adjusted, you will need to take
* care of that, yourself.
*
- * @param String $remote_file
- * @param String $data
- * @param optional Integer $mode
- * @param optional Callable $callback
- * @return Boolean
+ * @param string $remote_file
+ * @param string $data
+ * @param int $mode
+ * @param callable $callback
+ * @return bool
* @access public
*/
function put($remote_file, $data, $mode = NET_SCP_STRING, $callback = null)
@@ -233,9 +233,9 @@ class Net_SCP * the operation was unsuccessful. If $local_file is defined, returns true or false depending on the success of the
* operation
*
- * @param String $remote_file
- * @param optional String $local_file
- * @return Mixed
+ * @param string $remote_file
+ * @param string $local_file
+ * @return mixed
* @access public
*/
function get($remote_file, $local_file = false)
@@ -291,7 +291,7 @@ class Net_SCP /**
* Sends a packet to an SSH server
*
- * @param String $data
+ * @param string $data
* @access private
*/
function _send($data)
@@ -309,7 +309,7 @@ class Net_SCP /**
* Receives a packet from an SSH server
*
- * @return String
+ * @return string
* @access private
*/
function _receive()
diff --git a/libs/phpseclib-1.0.0/Net/SFTP.php b/libs/phpseclib-1.0.1/Net/SFTP.php index 1c042cd..a30cff8 100644 --- a/libs/phpseclib-1.0.0/Net/SFTP.php +++ b/libs/phpseclib-1.0.1/Net/SFTP.php @@ -62,7 +62,7 @@ if (!class_exists('Net_SSH2')) { /**#@+
* @access public
- * @see Net_SFTP::getLog()
+ * @see self::getLog()
*/
/**
* Returns the message numbers
@@ -91,7 +91,7 @@ define('NET_SFTP_CHANNEL', 0x100); /**#@+
* @access public
- * @see Net_SFTP::put()
+ * @see self::put()
*/
/**
* Reads data from a local file.
@@ -129,8 +129,8 @@ class Net_SFTP extends Net_SSH2 /**
* Packet Types
*
- * @see Net_SFTP::Net_SFTP()
- * @var Array
+ * @see self::Net_SFTP()
+ * @var array
* @access private
*/
var $packet_types = array();
@@ -138,8 +138,8 @@ class Net_SFTP extends Net_SSH2 /**
* Status Codes
*
- * @see Net_SFTP::Net_SFTP()
- * @var Array
+ * @see self::Net_SFTP()
+ * @var array
* @access private
*/
var $status_codes = array();
@@ -150,8 +150,8 @@ class Net_SFTP extends Net_SSH2 * The request ID exists in the off chance that a packet is sent out-of-order. Of course, this library doesn't support
* concurrent actions, so it's somewhat academic, here.
*
- * @var Integer
- * @see Net_SFTP::_send_sftp_packet()
+ * @var int
+ * @see self::_send_sftp_packet()
* @access private
*/
var $request_id = false;
@@ -162,8 +162,8 @@ class Net_SFTP extends Net_SSH2 * The request ID exists in the off chance that a packet is sent out-of-order. Of course, this library doesn't support
* concurrent actions, so it's somewhat academic, here.
*
- * @var Integer
- * @see Net_SFTP::_get_sftp_packet()
+ * @var int
+ * @see self::_get_sftp_packet()
* @access private
*/
var $packet_type = -1;
@@ -171,8 +171,8 @@ class Net_SFTP extends Net_SSH2 /**
* Packet Buffer
*
- * @var String
- * @see Net_SFTP::_get_sftp_packet()
+ * @var string
+ * @see self::_get_sftp_packet()
* @access private
*/
var $packet_buffer = '';
@@ -180,8 +180,8 @@ class Net_SFTP extends Net_SSH2 /**
* Extensions supported by the server
*
- * @var Array
- * @see Net_SFTP::_initChannel()
+ * @var array
+ * @see self::_initChannel()
* @access private
*/
var $extensions = array();
@@ -189,8 +189,8 @@ class Net_SFTP extends Net_SSH2 /**
* Server SFTP version
*
- * @var Integer
- * @see Net_SFTP::_initChannel()
+ * @var int
+ * @see self::_initChannel()
* @access private
*/
var $version;
@@ -198,9 +198,9 @@ class Net_SFTP extends Net_SSH2 /**
* Current working directory
*
- * @var String
- * @see Net_SFTP::_realpath()
- * @see Net_SFTP::chdir()
+ * @var string
+ * @see self::_realpath()
+ * @see self::chdir()
* @access private
*/
var $pwd = false;
@@ -208,8 +208,8 @@ class Net_SFTP extends Net_SSH2 /**
* Packet Type Log
*
- * @see Net_SFTP::getLog()
- * @var Array
+ * @see self::getLog()
+ * @var array
* @access private
*/
var $packet_type_log = array();
@@ -217,8 +217,8 @@ class Net_SFTP extends Net_SSH2 /**
* Packet Log
*
- * @see Net_SFTP::getLog()
- * @var Array
+ * @see self::getLog()
+ * @var array
* @access private
*/
var $packet_log = array();
@@ -226,9 +226,9 @@ class Net_SFTP extends Net_SSH2 /**
* Error information
*
- * @see Net_SFTP::getSFTPErrors()
- * @see Net_SFTP::getLastSFTPError()
- * @var String
+ * @see self::getSFTPErrors()
+ * @see self::getLastSFTPError()
+ * @var string
* @access private
*/
var $sftp_errors = array();
@@ -239,10 +239,10 @@ class Net_SFTP extends Net_SSH2 * Rather than always having to open a directory and close it immediately there after to see if a file is a directory
* we'll cache the results.
*
- * @see Net_SFTP::_update_stat_cache()
- * @see Net_SFTP::_remove_from_stat_cache()
- * @see Net_SFTP::_query_stat_cache()
- * @var Array
+ * @see self::_update_stat_cache()
+ * @see self::_remove_from_stat_cache()
+ * @see self::_query_stat_cache()
+ * @var array
* @access private
*/
var $stat_cache = array();
@@ -250,9 +250,9 @@ class Net_SFTP extends Net_SSH2 /**
* Max SFTP Packet Size
*
- * @see Net_SFTP::Net_SFTP()
- * @see Net_SFTP::get()
- * @var Array
+ * @see self::Net_SFTP()
+ * @see self::get()
+ * @var array
* @access private
*/
var $max_sftp_packet;
@@ -260,9 +260,9 @@ class Net_SFTP extends Net_SSH2 /**
* Stat Cache Flag
*
- * @see Net_SFTP::disableStatCache()
- * @see Net_SFTP::enableStatCache()
- * @var Boolean
+ * @see self::disableStatCache()
+ * @see self::enableStatCache()
+ * @var bool
* @access private
*/
var $use_stat_cache = true;
@@ -270,9 +270,9 @@ class Net_SFTP extends Net_SSH2 /**
* Sort Options
*
- * @see Net_SFTP::_comparator()
- * @see Net_SFTP::setListOrder()
- * @var Array
+ * @see self::_comparator()
+ * @see self::setListOrder()
+ * @var array
* @access private
*/
var $sortOptions = array();
@@ -282,9 +282,9 @@ class Net_SFTP extends Net_SSH2 *
* Connects to an SFTP server
*
- * @param String $host
- * @param optional Integer $port
- * @param optional Integer $timeout
+ * @param string $host
+ * @param int $port
+ * @param int $timeout
* @return Net_SFTP
* @access public
*/
@@ -420,9 +420,9 @@ class Net_SFTP extends Net_SSH2 /**
* Login
*
- * @param String $username
- * @param optional String $password
- * @return Boolean
+ * @param string $username
+ * @param string $password
+ * @return bool
* @access public
*/
function login($username)
@@ -610,7 +610,7 @@ class Net_SFTP extends Net_SSH2 /**
* Returns the current directory name
*
- * @return Mixed
+ * @return mixed
* @access public
*/
function pwd()
@@ -621,8 +621,8 @@ class Net_SFTP extends Net_SSH2 /**
* Logs errors
*
- * @param String $response
- * @param optional Integer $status
+ * @param string $response
+ * @param int $status
* @access public
*/
function _logError($response, $status = -1)
@@ -647,9 +647,9 @@ class Net_SFTP extends Net_SSH2 * SFTP doesn't provide a mechanism by which the current working directory can be changed, so we'll emulate it. Returns
* the absolute (canonicalized) path.
*
- * @see Net_SFTP::chdir()
- * @param String $path
- * @return Mixed
+ * @see self::chdir()
+ * @param string $path
+ * @return mixed
* @access private
*/
function _realpath($path)
@@ -704,8 +704,8 @@ class Net_SFTP extends Net_SSH2 /**
* Changes the current directory
*
- * @param String $dir
- * @return Boolean
+ * @param string $dir
+ * @return bool
* @access public
*/
function chdir($dir)
@@ -766,9 +766,9 @@ class Net_SFTP extends Net_SSH2 /**
* Returns a list of files in the given directory
*
- * @param optional String $dir
- * @param optional Boolean $recursive
- * @return Mixed
+ * @param string $dir
+ * @param bool $recursive
+ * @return mixed
* @access public
*/
function nlist($dir = '.', $recursive = false)
@@ -779,10 +779,10 @@ class Net_SFTP extends Net_SSH2 /**
* Helper method for nlist
*
- * @param String $dir
- * @param Boolean $recursive
- * @param String $relativeDir
- * @return Mixed
+ * @param string $dir
+ * @param bool $recursive
+ * @param string $relativeDir
+ * @return mixed
* @access private
*/
function _nlist_helper($dir, $recursive, $relativeDir)
@@ -815,9 +815,9 @@ class Net_SFTP extends Net_SSH2 /**
* Returns a detailed list of files in the given directory
*
- * @param optional String $dir
- * @param optional Boolean $recursive
- * @return Mixed
+ * @param string $dir
+ * @param bool $recursive
+ * @return mixed
* @access public
*/
function rawlist($dir = '.', $recursive = false)
@@ -849,9 +849,9 @@ class Net_SFTP extends Net_SSH2 /**
* Reads a list, be it detailed or not, of files in the given directory
*
- * @param String $dir
- * @param optional Boolean $raw
- * @return Mixed
+ * @param string $dir
+ * @param bool $raw
+ * @return mixed
* @access private
*/
function _list($dir, $raw = true)
@@ -959,9 +959,9 @@ class Net_SFTP extends Net_SSH2 *
* Intended for use with uasort()
*
- * @param Array $a
- * @param Array $b
- * @return Integer
+ * @param array $a
+ * @param array $b
+ * @return int
* @access private
*/
function _comparator($a, $b)
@@ -1059,8 +1059,8 @@ class Net_SFTP extends Net_SSH2 *
* Files larger than 4GB will show up as being exactly 4GB.
*
- * @param String $filename
- * @return Mixed
+ * @param string $filename
+ * @return mixed
* @access public
*/
function size($filename)
@@ -1079,8 +1079,8 @@ class Net_SFTP extends Net_SSH2 /**
* Save files / directories to cache
*
- * @param String $path
- * @param Mixed $value
+ * @param string $path
+ * @param mixed $value
* @access private
*/
function _update_stat_cache($path, $value)
@@ -1123,8 +1123,8 @@ class Net_SFTP extends Net_SSH2 /**
* Remove files / directories from cache
*
- * @param String $path
- * @return Boolean
+ * @param string $path
+ * @return bool
* @access private
*/
function _remove_from_stat_cache($path)
@@ -1150,8 +1150,8 @@ class Net_SFTP extends Net_SSH2 *
* Mainly used by file_exists
*
- * @param String $dir
- * @return Mixed
+ * @param string $dir
+ * @return mixed
* @access private
*/
function _query_stat_cache($path)
@@ -1173,8 +1173,8 @@ class Net_SFTP extends Net_SSH2 *
* Returns an array on success and false otherwise.
*
- * @param String $filename
- * @return Mixed
+ * @param string $filename
+ * @return mixed
* @access public
*/
function stat($filename)
@@ -1230,8 +1230,8 @@ class Net_SFTP extends Net_SSH2 *
* Returns an array on success and false otherwise.
*
- * @param String $filename
- * @return Mixed
+ * @param string $filename
+ * @return mixed
* @access public
*/
function lstat($filename)
@@ -1296,9 +1296,9 @@ class Net_SFTP extends Net_SSH2 * Determines information without calling Net_SFTP::_realpath().
* The second parameter can be either NET_SFTP_STAT or NET_SFTP_LSTAT.
*
- * @param String $filename
- * @param Integer $type
- * @return Mixed
+ * @param string $filename
+ * @param int $type
+ * @return mixed
* @access private
*/
function _stat($filename, $type)
@@ -1325,9 +1325,9 @@ class Net_SFTP extends Net_SSH2 /**
* Truncates a file to a given length
*
- * @param String $filename
- * @param Integer $new_size
- * @return Boolean
+ * @param string $filename
+ * @param int $new_size
+ * @return bool
* @access public
*/
function truncate($filename, $new_size)
@@ -1342,10 +1342,10 @@ class Net_SFTP extends Net_SSH2 *
* If the file does not exist, it will be created.
*
- * @param String $filename
- * @param optional Integer $time
- * @param optional Integer $atime
- * @return Boolean
+ * @param string $filename
+ * @param int $time
+ * @param int $atime
+ * @return bool
* @access public
*/
function touch($filename, $time = null, $atime = null)
@@ -1393,10 +1393,10 @@ class Net_SFTP extends Net_SSH2 *
* Returns true on success or false on error.
*
- * @param String $filename
- * @param Integer $uid
- * @param optional Boolean $recursive
- * @return Boolean
+ * @param string $filename
+ * @param int $uid
+ * @param bool $recursive
+ * @return bool
* @access public
*/
function chown($filename, $uid, $recursive = false)
@@ -1413,10 +1413,10 @@ class Net_SFTP extends Net_SSH2 *
* Returns true on success or false on error.
*
- * @param String $filename
- * @param Integer $gid
- * @param optional Boolean $recursive
- * @return Boolean
+ * @param string $filename
+ * @param int $gid
+ * @param bool $recursive
+ * @return bool
* @access public
*/
function chgrp($filename, $gid, $recursive = false)
@@ -1432,10 +1432,10 @@ class Net_SFTP extends Net_SSH2 * Returns the new file permissions on success or false on error.
* If $recursive is true than this just returns true or false.
*
- * @param Integer $mode
- * @param String $filename
- * @param optional Boolean $recursive
- * @return Mixed
+ * @param int $mode
+ * @param string $filename
+ * @param bool $recursive
+ * @return mixed
* @access public
*/
function chmod($mode, $filename, $recursive = false)
@@ -1454,6 +1454,7 @@ class Net_SFTP extends Net_SSH2 return true;
}
+ $filename = $this->_realPath($filename);
// rather than return what the permissions *should* be, we'll return what they actually are. this will also
// tell us if the file actually exists.
// incidentally, SFTPv4+ adds an additional 32-bit integer field - flags - to the following:
@@ -1479,10 +1480,10 @@ class Net_SFTP extends Net_SSH2 /**
* Sets information about a file
*
- * @param String $filename
- * @param String $attr
- * @param Boolean $recursive
- * @return Boolean
+ * @param string $filename
+ * @param string $attr
+ * @param bool $recursive
+ * @return bool
* @access private
*/
function _setstat($filename, $attr, $recursive)
@@ -1538,10 +1539,10 @@ class Net_SFTP extends Net_SSH2 *
* Minimizes directory lookups and SSH_FXP_STATUS requests for speed.
*
- * @param String $path
- * @param String $attr
- * @param Integer $i
- * @return Boolean
+ * @param string $path
+ * @param string $attr
+ * @param int $i
+ * @return bool
* @access private
*/
function _setstat_recursive($path, $attr, &$i)
@@ -1608,8 +1609,8 @@ class Net_SFTP extends Net_SSH2 /**
* Return the target of a symbolic link
*
- * @param String $link
- * @return Mixed
+ * @param string $link
+ * @return mixed
* @access public
*/
function readlink($link)
@@ -1651,9 +1652,9 @@ class Net_SFTP extends Net_SSH2 *
* symlink() creates a symbolic link to the existing target with the specified name link.
*
- * @param String $target
- * @param String $link
- * @return Boolean
+ * @param string $target
+ * @param string $link
+ * @return bool
* @access public
*/
function symlink($target, $link)
@@ -1688,8 +1689,8 @@ class Net_SFTP extends Net_SSH2 /**
* Creates a directory.
*
- * @param String $dir
- * @return Boolean
+ * @param string $dir
+ * @return bool
* @access public
*/
function mkdir($dir, $mode = -1, $recursive = false)
@@ -1723,8 +1724,8 @@ class Net_SFTP extends Net_SSH2 /**
* Helper function for directory creation
*
- * @param String $dir
- * @return Boolean
+ * @param string $dir
+ * @return bool
* @access private
*/
function _mkdir_helper($dir, $attr)
@@ -1751,8 +1752,8 @@ class Net_SFTP extends Net_SSH2 /**
* Removes a directory.
*
- * @param String $dir
- * @return Boolean
+ * @param string $dir
+ * @return bool
* @access public
*/
function rmdir($dir)
@@ -1829,13 +1830,13 @@ class Net_SFTP extends Net_SSH2 *
* Setting $local_start to > 0 or $mode | NET_SFTP_RESUME_START doesn't do anything unless $mode | NET_SFTP_LOCAL_FILE.
*
- * @param String $remote_file
- * @param String|resource $data
- * @param optional Integer $mode
- * @param optional Integer $start
- * @param optional Integer $local_start
- * @param optional callable|null $progressCallback
- * @return Boolean
+ * @param string $remote_file
+ * @param string|resource $data
+ * @param int $mode
+ * @param int $start
+ * @param int $local_start
+ * @param callable|null $progressCallback
+ * @return bool
* @access public
* @internal ASCII mode for SFTPv4/5/6 can be supported by adding a new function - Net_SFTP::setMode().
*/
@@ -1917,10 +1918,7 @@ class Net_SFTP extends Net_SSH2 if ($local_start >= 0) {
fseek($fp, $local_start);
- } elseif ($mode & NET_SFTP_RESUME_START) {
- // do nothing
- } else {
- fseek($fp, $offset);
+ $size-= $local_start;
}
} elseif ($dataCallback) {
$size = 0;
@@ -1989,8 +1987,8 @@ class Net_SFTP extends Net_SSH2 * Sending an SSH_FXP_WRITE packet and immediately reading its response isn't as efficient as blindly sending out $i
* SSH_FXP_WRITEs, in succession, and then reading $i responses.
*
- * @param Integer $i
- * @return Boolean
+ * @param int $i
+ * @return bool
* @access private
*/
function _read_put_responses($i)
@@ -2015,8 +2013,8 @@ class Net_SFTP extends Net_SSH2 /**
* Close handle
*
- * @param String $handle
- * @return Boolean
+ * @param string $handle
+ * @return bool
* @access private
*/
function _close_handle($handle)
@@ -2051,11 +2049,11 @@ class Net_SFTP extends Net_SSH2 *
* $offset and $length can be used to download files in chunks.
*
- * @param String $remote_file
- * @param optional String $local_file
- * @param optional Integer $offset
- * @param optional Integer $length
- * @return Mixed
+ * @param string $remote_file
+ * @param string $local_file
+ * @param int $offset
+ * @param int $length
+ * @return mixed
* @access public
*/
function get($remote_file, $local_file = false, $offset = 0, $length = -1)
@@ -2167,9 +2165,9 @@ class Net_SFTP extends Net_SSH2 /**
* Deletes a file on the SFTP server.
*
- * @param String $path
- * @param Boolean $recursive
- * @return Boolean
+ * @param string $path
+ * @param bool $recursive
+ * @return bool
* @access public
*/
function delete($path, $recursive = true)
@@ -2217,9 +2215,9 @@ class Net_SFTP extends Net_SSH2 *
* Minimizes directory lookups and SSH_FXP_STATUS requests for speed.
*
- * @param String $path
- * @param Integer $i
- * @return Boolean
+ * @param string $path
+ * @param int $i
+ * @return bool
* @access private
*/
function _delete_recursive($path, &$i)
@@ -2284,8 +2282,8 @@ class Net_SFTP extends Net_SSH2 /**
* Checks whether a file or directory exists
*
- * @param String $path
- * @return Boolean
+ * @param string $path
+ * @return bool
* @access public
*/
function file_exists($path)
@@ -2307,8 +2305,8 @@ class Net_SFTP extends Net_SSH2 /**
* Tells whether the filename is a directory
*
- * @param String $path
- * @return Boolean
+ * @param string $path
+ * @return bool
* @access public
*/
function is_dir($path)
@@ -2323,8 +2321,8 @@ class Net_SFTP extends Net_SSH2 /**
* Tells whether the filename is a regular file
*
- * @param String $path
- * @return Boolean
+ * @param string $path
+ * @return bool
* @access public
*/
function is_file($path)
@@ -2339,8 +2337,8 @@ class Net_SFTP extends Net_SSH2 /**
* Tells whether the filename is a symbolic link
*
- * @param String $path
- * @return Boolean
+ * @param string $path
+ * @return bool
* @access public
*/
function is_link($path)
@@ -2355,8 +2353,8 @@ class Net_SFTP extends Net_SSH2 /**
* Gets last access time of file
*
- * @param String $path
- * @return Mixed
+ * @param string $path
+ * @return mixed
* @access public
*/
function fileatime($path)
@@ -2367,8 +2365,8 @@ class Net_SFTP extends Net_SSH2 /**
* Gets file modification time
*
- * @param String $path
- * @return Mixed
+ * @param string $path
+ * @return mixed
* @access public
*/
function filemtime($path)
@@ -2379,8 +2377,8 @@ class Net_SFTP extends Net_SSH2 /**
* Gets file permissions
*
- * @param String $path
- * @return Mixed
+ * @param string $path
+ * @return mixed
* @access public
*/
function fileperms($path)
@@ -2391,8 +2389,8 @@ class Net_SFTP extends Net_SSH2 /**
* Gets file owner
*
- * @param String $path
- * @return Mixed
+ * @param string $path
+ * @return mixed
* @access public
*/
function fileowner($path)
@@ -2403,8 +2401,8 @@ class Net_SFTP extends Net_SSH2 /**
* Gets file group
*
- * @param String $path
- * @return Mixed
+ * @param string $path
+ * @return mixed
* @access public
*/
function filegroup($path)
@@ -2415,8 +2413,8 @@ class Net_SFTP extends Net_SSH2 /**
* Gets file size
*
- * @param String $path
- * @return Mixed
+ * @param string $path
+ * @return mixed
* @access public
*/
function filesize($path)
@@ -2427,8 +2425,8 @@ class Net_SFTP extends Net_SSH2 /**
* Gets file type
*
- * @param String $path
- * @return Mixed
+ * @param string $path
+ * @return mixed
* @access public
*/
function filetype($path)
@@ -2461,9 +2459,9 @@ class Net_SFTP extends Net_SSH2 *
* Uses cache if appropriate.
*
- * @param String $path
- * @param String $prop
- * @return Mixed
+ * @param string $path
+ * @param string $prop
+ * @return mixed
* @access private
*/
function _get_stat_cache_prop($path, $prop)
@@ -2476,9 +2474,9 @@ class Net_SFTP extends Net_SSH2 *
* Uses cache if appropriate.
*
- * @param String $path
- * @param String $prop
- * @return Mixed
+ * @param string $path
+ * @param string $prop
+ * @return mixed
* @access private
*/
function _get_lstat_cache_prop($path, $prop)
@@ -2491,9 +2489,9 @@ class Net_SFTP extends Net_SSH2 *
* Uses cache if appropriate.
*
- * @param String $path
- * @param String $prop
- * @return Mixed
+ * @param string $path
+ * @param string $prop
+ * @return mixed
* @access private
*/
function _get_xstat_cache_prop($path, $prop, $type)
@@ -2520,9 +2518,9 @@ class Net_SFTP extends Net_SSH2 /**
* Renames a file or a directory on the SFTP server
*
- * @param String $oldname
- * @param String $newname
- * @return Boolean
+ * @param string $oldname
+ * @param string $newname
+ * @return bool
* @access public
*/
function rename($oldname, $newname)
@@ -2570,8 +2568,8 @@ class Net_SFTP extends Net_SSH2 *
* See '7. File Attributes' of draft-ietf-secsh-filexfer-13 for more info.
*
- * @param String $response
- * @return Array
+ * @param string $response
+ * @return array
* @access private
*/
function _parseAttributes(&$response)
@@ -2624,8 +2622,8 @@ class Net_SFTP extends Net_SSH2 *
* Quoting the SFTP RFC, "Implementations MUST NOT send bits that are not defined" but they seem to anyway
*
- * @param Integer $mode
- * @return Integer
+ * @param int $mode
+ * @return int
* @access private
*/
function _parseMode($mode)
@@ -2671,8 +2669,8 @@ class Net_SFTP extends Net_SSH2 *
* If the longname is in an unrecognized format bool(false) is returned.
*
- * @param String $longname
- * @return Mixed
+ * @param string $longname
+ * @return mixed
* @access private
*/
function _parseLongname($longname)
@@ -2700,11 +2698,11 @@ class Net_SFTP extends Net_SSH2 *
* See '6. General Packet Format' of draft-ietf-secsh-filexfer-13 for more info.
*
- * @param Integer $type
- * @param String $data
- * @see Net_SFTP::_get_sftp_packet()
+ * @param int $type
+ * @param string $data
+ * @see self::_get_sftp_packet()
* @see Net_SSH2::_send_channel_packet()
- * @return Boolean
+ * @return bool
* @access private
*/
function _send_sftp_packet($type, $data)
@@ -2744,8 +2742,8 @@ class Net_SFTP extends Net_SSH2 * There can be one SSH_MSG_CHANNEL_DATA messages containing two SFTP packets or there can be two SSH_MSG_CHANNEL_DATA
* messages containing one SFTP packet.
*
- * @see Net_SFTP::_send_sftp_packet()
- * @return String
+ * @see self::_send_sftp_packet()
+ * @return string
* @access private
*/
function _get_sftp_packet()
@@ -2817,7 +2815,7 @@ class Net_SFTP extends Net_SSH2 * Returns a string if NET_SFTP_LOGGING == NET_SFTP_LOG_COMPLEX, an array if NET_SFTP_LOGGING == NET_SFTP_LOG_SIMPLE and false if !defined('NET_SFTP_LOGGING')
*
* @access public
- * @return String or Array
+ * @return string or Array
*/
function getSFTPLog()
{
@@ -2838,7 +2836,7 @@ class Net_SFTP extends Net_SSH2 /**
* Returns all errors
*
- * @return String
+ * @return string
* @access public
*/
function getSFTPErrors()
@@ -2849,7 +2847,7 @@ class Net_SFTP extends Net_SSH2 /**
* Returns the last error
*
- * @return String
+ * @return string
* @access public
*/
function getLastSFTPError()
@@ -2860,7 +2858,7 @@ class Net_SFTP extends Net_SSH2 /**
* Get supported SFTP versions
*
- * @return Array
+ * @return array
* @access public
*/
function getSupportedVersions()
@@ -2875,8 +2873,8 @@ class Net_SFTP extends Net_SSH2 /**
* Disconnect
*
- * @param Integer $reason
- * @return Boolean
+ * @param int $reason
+ * @return bool
* @access private
*/
function _disconnect($reason)
diff --git a/libs/phpseclib-1.0.0/Net/SFTP/Stream.php b/libs/phpseclib-1.0.1/Net/SFTP/Stream.php index 107560f..a255341 100644 --- a/libs/phpseclib-1.0.0/Net/SFTP/Stream.php +++ b/libs/phpseclib-1.0.1/Net/SFTP/Stream.php @@ -47,14 +47,14 @@ class Net_SFTP_Stream *
* Rather than re-create the connection we re-use instances if possible
*
- * @var Array
+ * @var array
*/
static $instances;
/**
* SFTP instance
*
- * @var Object
+ * @var object
* @access private
*/
var $sftp;
@@ -62,7 +62,7 @@ class Net_SFTP_Stream /**
* Path
*
- * @var String
+ * @var string
* @access private
*/
var $path;
@@ -70,7 +70,7 @@ class Net_SFTP_Stream /**
* Mode
*
- * @var String
+ * @var string
* @access private
*/
var $mode;
@@ -78,7 +78,7 @@ class Net_SFTP_Stream /**
* Position
*
- * @var Integer
+ * @var int
* @access private
*/
var $pos;
@@ -86,7 +86,7 @@ class Net_SFTP_Stream /**
* Size
*
- * @var Integer
+ * @var int
* @access private
*/
var $size;
@@ -94,7 +94,7 @@ class Net_SFTP_Stream /**
* Directory entries
*
- * @var Array
+ * @var array
* @access private
*/
var $entries;
@@ -102,7 +102,7 @@ class Net_SFTP_Stream /**
* EOF flag
*
- * @var Boolean
+ * @var bool
* @access private
*/
var $eof;
@@ -112,7 +112,7 @@ class Net_SFTP_Stream *
* Technically this needs to be publically accessible so PHP can set it directly
*
- * @var Resource
+ * @var resource
* @access public
*/
var $context;
@@ -120,7 +120,7 @@ class Net_SFTP_Stream /**
* Notification callback function
*
- * @var Callable
+ * @var callable
* @access public
*/
var $notification;
@@ -128,8 +128,8 @@ class Net_SFTP_Stream /**
* Registers this class as a URL wrapper.
*
- * @param optional String $protocol The wrapper name to be registered.
- * @return Boolean True on success, false otherwise.
+ * @param string $protocol The wrapper name to be registered.
+ * @return bool True on success, false otherwise.
* @access public
*/
static function register($protocol = 'sftp')
@@ -165,13 +165,24 @@ class Net_SFTP_Stream * If "notification" is set as a context parameter the message code for successful login is
* NET_SSH2_MSG_USERAUTH_SUCCESS. For a failed login it's NET_SSH2_MSG_USERAUTH_FAILURE.
*
- * @param String $path
- * @return String
+ * @param string $path
+ * @return string
* @access private
*/
function _parse_path($path)
{
+ $orig = $path;
extract(parse_url($path) + array('port' => 22));
+ if (isset($query)) {
+ $path.= '?' . $query;
+ } elseif (preg_match('/(\?|\?#)$/', $orig)) {
+ $path.= '?';
+ }
+ if (isset($fragment)) {
+ $path.= '#' . $fragment;
+ } elseif ($orig[strlen($orig) - 1] == '#') {
+ $path.= '#';
+ }
if (!isset($host)) {
return false;
@@ -257,11 +268,11 @@ class Net_SFTP_Stream /**
* Opens file or URL
*
- * @param String $path
- * @param String $mode
- * @param Integer $options
- * @param String $opened_path
- * @return Boolean
+ * @param string $path
+ * @param string $mode
+ * @param int $options
+ * @param string $opened_path
+ * @return bool
* @access public
*/
function _stream_open($path, $mode, $options, &$opened_path)
@@ -302,8 +313,8 @@ class Net_SFTP_Stream /**
* Read from stream
*
- * @param Integer $count
- * @return Mixed
+ * @param int $count
+ * @return mixed
* @access public
*/
function _stream_read($count)
@@ -344,8 +355,8 @@ class Net_SFTP_Stream /**
* Write to stream
*
- * @param String $data
- * @return Mixed
+ * @param string $data
+ * @return mixed
* @access public
*/
function _stream_write($data)
@@ -379,7 +390,7 @@ class Net_SFTP_Stream /**
* Retrieve the current position of a stream
*
- * @return Integer
+ * @return int
* @access public
*/
function _stream_tell()
@@ -397,7 +408,7 @@ class Net_SFTP_Stream * will return false. do fread($fp, 1) and feof() will then return true. do fseek($fp, 10) on ablank file and feof()
* will return false. do fread($fp, 1) and feof() will then return true.
*
- * @return Boolean
+ * @return bool
* @access public
*/
function _stream_eof()
@@ -408,9 +419,9 @@ class Net_SFTP_Stream /**
* Seeks to specific location in a stream
*
- * @param Integer $offset
- * @param Integer $whence
- * @return Boolean
+ * @param int $offset
+ * @param int $whence
+ * @return bool
* @access public
*/
function _stream_seek($offset, $whence)
@@ -436,10 +447,10 @@ class Net_SFTP_Stream /**
* Change stream options
*
- * @param String $path
- * @param Integer $option
- * @param Mixed $var
- * @return Boolean
+ * @param string $path
+ * @param int $option
+ * @param mixed $var
+ * @return bool
* @access public
*/
function _stream_metadata($path, $option, $var)
@@ -470,8 +481,8 @@ class Net_SFTP_Stream /**
* Retrieve the underlaying resource
*
- * @param Integer $cast_as
- * @return Resource
+ * @param int $cast_as
+ * @return resource
* @access public
*/
function _stream_cast($cast_as)
@@ -482,8 +493,8 @@ class Net_SFTP_Stream /**
* Advisory file locking
*
- * @param Integer $operation
- * @return Boolean
+ * @param int $operation
+ * @return bool
* @access public
*/
function _stream_lock($operation)
@@ -498,9 +509,9 @@ class Net_SFTP_Stream * If newname exists, it will be overwritten. This is a departure from what Net_SFTP
* does.
*
- * @param String $path_from
- * @param String $path_to
- * @return Boolean
+ * @param string $path_from
+ * @param string $path_to
+ * @return bool
* @access public
*/
function _rename($path_from, $path_to)
@@ -550,9 +561,9 @@ class Net_SFTP_Stream * string longname
* ATTRS attrs
*
- * @param String $path
- * @param Integer $options
- * @return Boolean
+ * @param string $path
+ * @param int $options
+ * @return bool
* @access public
*/
function _dir_opendir($path, $options)
@@ -569,7 +580,7 @@ class Net_SFTP_Stream /**
* Read entry from directory handle
*
- * @return Mixed
+ * @return mixed
* @access public
*/
function _dir_readdir()
@@ -583,7 +594,7 @@ class Net_SFTP_Stream /**
* Rewind directory handle
*
- * @return Boolean
+ * @return bool
* @access public
*/
function _dir_rewinddir()
@@ -595,7 +606,7 @@ class Net_SFTP_Stream /**
* Close directory handle
*
- * @return Boolean
+ * @return bool
* @access public
*/
function _dir_closedir()
@@ -608,10 +619,10 @@ class Net_SFTP_Stream *
* Only valid $options is STREAM_MKDIR_RECURSIVE
*
- * @param String $path
- * @param Integer $mode
- * @param Integer $options
- * @return Boolean
+ * @param string $path
+ * @param int $mode
+ * @param int $options
+ * @return bool
* @access public
*/
function _mkdir($path, $mode, $options)
@@ -632,10 +643,10 @@ class Net_SFTP_Stream * STREAM_MKDIR_RECURSIVE is supposed to be set. Also, when I try it out with rmdir() I get 8 as
* $options. What does 8 correspond to?
*
- * @param String $path
- * @param Integer $mode
- * @param Integer $options
- * @return Boolean
+ * @param string $path
+ * @param int $mode
+ * @param int $options
+ * @return bool
* @access public
*/
function _rmdir($path, $options)
@@ -653,7 +664,7 @@ class Net_SFTP_Stream *
* See <http://php.net/fflush>. Always returns true because Net_SFTP doesn't cache stuff before writing
*
- * @return Boolean
+ * @return bool
* @access public
*/
function _stream_flush()
@@ -664,7 +675,7 @@ class Net_SFTP_Stream /**
* Retrieve information about a file resource
*
- * @return Mixed
+ * @return mixed
* @access public
*/
function _stream_stat()
@@ -679,8 +690,8 @@ class Net_SFTP_Stream /**
* Delete a file
*
- * @param String $path
- * @return Boolean
+ * @param string $path
+ * @return bool
* @access public
*/
function _unlink($path)
@@ -700,9 +711,9 @@ class Net_SFTP_Stream * might be worthwhile to reconstruct bits 12-16 (ie. the file type) if mode doesn't have them but we'll
* cross that bridge when and if it's reached
*
- * @param String $path
- * @param Integer $flags
- * @return Mixed
+ * @param string $path
+ * @param int $flags
+ * @return mixed
* @access public
*/
function _url_stat($path, $flags)
@@ -723,8 +734,8 @@ class Net_SFTP_Stream /**
* Truncate stream
*
- * @param Integer $new_size
- * @return Boolean
+ * @param int $new_size
+ * @return bool
* @access public
*/
function _stream_truncate($new_size)
@@ -745,10 +756,10 @@ class Net_SFTP_Stream * STREAM_OPTION_WRITE_BUFFER isn't supported for the same reason stream_flush isn't.
* The other two aren't supported because of limitations in Net_SFTP.
*
- * @param Integer $option
- * @param Integer $arg1
- * @param Integer $arg2
- * @return Boolean
+ * @param int $option
+ * @param int $arg1
+ * @param int $arg2
+ * @return bool
* @access public
*/
function _stream_set_option($option, $arg1, $arg2)
@@ -775,9 +786,9 @@ class Net_SFTP_Stream * If NET_SFTP_STREAM_LOGGING is defined all calls will be output on the screen and then (regardless of whether or not
* NET_SFTP_STREAM_LOGGING is enabled) the parameters will be passed through to the appropriate method.
*
- * @param String
- * @param Array
- * @return Mixed
+ * @param string
+ * @param array
+ * @return mixed
* @access public
*/
function __call($name, $arguments)
diff --git a/libs/phpseclib-1.0.0/Net/SSH1.php b/libs/phpseclib-1.0.1/Net/SSH1.php index ad0ee79..0d1264d 100644 --- a/libs/phpseclib-1.0.0/Net/SSH1.php +++ b/libs/phpseclib-1.0.1/Net/SSH1.php @@ -67,7 +67,7 @@ /**#@+
* Encryption Methods
*
- * @see Net_SSH1::getSupportedCiphers()
+ * @see self::getSupportedCiphers()
* @access public
*/
/**
@@ -127,7 +127,7 @@ define('NET_SSH1_CIPHER_BLOWFISH', 6); /**#@+
* Authentication Methods
*
- * @see Net_SSH1::getSupportedAuthentications()
+ * @see self::getSupportedAuthentications()
* @access public
*/
/**
@@ -162,7 +162,7 @@ define('NET_SSH1_TTY_OP_END', 0); /**
* The Response Type
*
- * @see Net_SSH1::_get_binary_packet()
+ * @see self::_get_binary_packet()
* @access private
*/
define('NET_SSH1_RESPONSE_TYPE', 1);
@@ -170,7 +170,7 @@ define('NET_SSH1_RESPONSE_TYPE', 1); /**
* The Response Data
*
- * @see Net_SSH1::_get_binary_packet()
+ * @see self::_get_binary_packet()
* @access private
*/
define('NET_SSH1_RESPONSE_DATA', 2);
@@ -178,7 +178,7 @@ define('NET_SSH1_RESPONSE_DATA', 2); /**#@+
* Execution Bitmap Masks
*
- * @see Net_SSH1::bitmap
+ * @see self::bitmap
* @access private
*/
define('NET_SSH1_MASK_CONSTRUCTOR', 0x00000001);
@@ -189,7 +189,7 @@ define('NET_SSH1_MASK_SHELL', 0x00000008); /**#@+
* @access public
- * @see Net_SSH1::getLog()
+ * @see self::getLog()
*/
/**
* Returns the message numbers
@@ -211,7 +211,7 @@ define('NET_SSH1_LOG_REALTIME_FILE', 4); /**#@+
* @access public
- * @see Net_SSH1::read()
+ * @see self::read()
*/
/**
* Returns when a string matching $expect exactly is found
@@ -235,7 +235,7 @@ class Net_SSH1 /**
* The SSH identifier
*
- * @var String
+ * @var string
* @access private
*/
var $identifier = 'SSH-1.5-phpseclib';
@@ -243,7 +243,7 @@ class Net_SSH1 /**
* The Socket Object
*
- * @var Object
+ * @var object
* @access private
*/
var $fsock;
@@ -251,7 +251,7 @@ class Net_SSH1 /**
* The cryptography object
*
- * @var Object
+ * @var object
* @access private
*/
var $crypto = false;
@@ -262,7 +262,7 @@ class Net_SSH1 * The bits that are set represent functions that have been called already. This is used to determine
* if a requisite function has been successfully executed. If not, an error should be thrown.
*
- * @var Integer
+ * @var int
* @access private
*/
var $bitmap = 0;
@@ -272,8 +272,8 @@ class Net_SSH1 *
* Logged for debug purposes
*
- * @see Net_SSH1::getServerKeyPublicExponent()
- * @var String
+ * @see self::getServerKeyPublicExponent()
+ * @var string
* @access private
*/
var $server_key_public_exponent;
@@ -283,8 +283,8 @@ class Net_SSH1 *
* Logged for debug purposes
*
- * @see Net_SSH1::getServerKeyPublicModulus()
- * @var String
+ * @see self::getServerKeyPublicModulus()
+ * @var string
* @access private
*/
var $server_key_public_modulus;
@@ -294,8 +294,8 @@ class Net_SSH1 *
* Logged for debug purposes
*
- * @see Net_SSH1::getHostKeyPublicExponent()
- * @var String
+ * @see self::getHostKeyPublicExponent()
+ * @var string
* @access private
*/
var $host_key_public_exponent;
@@ -305,8 +305,8 @@ class Net_SSH1 *
* Logged for debug purposes
*
- * @see Net_SSH1::getHostKeyPublicModulus()
- * @var String
+ * @see self::getHostKeyPublicModulus()
+ * @var string
* @access private
*/
var $host_key_public_modulus;
@@ -316,8 +316,8 @@ class Net_SSH1 *
* Logged for debug purposes
*
- * @see Net_SSH1::getSupportedCiphers()
- * @var Array
+ * @see self::getSupportedCiphers()
+ * @var array
* @access private
*/
var $supported_ciphers = array(
@@ -335,8 +335,8 @@ class Net_SSH1 *
* Logged for debug purposes
*
- * @see Net_SSH1::getSupportedAuthentications()
- * @var Array
+ * @see self::getSupportedAuthentications()
+ * @var array
* @access private
*/
var $supported_authentications = array(
@@ -349,8 +349,8 @@ class Net_SSH1 /**
* Server Identification
*
- * @see Net_SSH1::getServerIdentification()
- * @var String
+ * @see self::getServerIdentification()
+ * @var string
* @access private
*/
var $server_identification = '';
@@ -358,8 +358,8 @@ class Net_SSH1 /**
* Protocol Flags
*
- * @see Net_SSH1::Net_SSH1()
- * @var Array
+ * @see self::Net_SSH1()
+ * @var array
* @access private
*/
var $protocol_flags = array();
@@ -367,8 +367,8 @@ class Net_SSH1 /**
* Protocol Flag Log
*
- * @see Net_SSH1::getLog()
- * @var Array
+ * @see self::getLog()
+ * @var array
* @access private
*/
var $protocol_flag_log = array();
@@ -376,8 +376,8 @@ class Net_SSH1 /**
* Message Log
*
- * @see Net_SSH1::getLog()
- * @var Array
+ * @see self::getLog()
+ * @var array
* @access private
*/
var $message_log = array();
@@ -385,8 +385,8 @@ class Net_SSH1 /**
* Real-time log file pointer
*
- * @see Net_SSH1::_append_log()
- * @var Resource
+ * @see self::_append_log()
+ * @var resource
* @access private
*/
var $realtime_log_file;
@@ -394,8 +394,8 @@ class Net_SSH1 /**
* Real-time log file size
*
- * @see Net_SSH1::_append_log()
- * @var Integer
+ * @see self::_append_log()
+ * @var int
* @access private
*/
var $realtime_log_size;
@@ -403,8 +403,8 @@ class Net_SSH1 /**
* Real-time log file wrap boolean
*
- * @see Net_SSH1::_append_log()
- * @var Boolean
+ * @see self::_append_log()
+ * @var bool
* @access private
*/
var $realtime_log_wrap;
@@ -412,8 +412,8 @@ class Net_SSH1 /**
* Interactive Buffer
*
- * @see Net_SSH1::read()
- * @var Array
+ * @see self::read()
+ * @var array
* @access private
*/
var $interactiveBuffer = '';
@@ -421,7 +421,7 @@ class Net_SSH1 /**
* Timeout
*
- * @see Net_SSH1::setTimeout()
+ * @see self::setTimeout()
* @access private
*/
var $timeout;
@@ -429,7 +429,7 @@ class Net_SSH1 /**
* Current Timeout
*
- * @see Net_SSH1::_get_channel_packet()
+ * @see self::_get_channel_packet()
* @access private
*/
var $curTimeout;
@@ -437,7 +437,7 @@ class Net_SSH1 /**
* Log Boundary
*
- * @see Net_SSH1::_format_log
+ * @see self::_format_log()
* @access private
*/
var $log_boundary = ':';
@@ -445,7 +445,7 @@ class Net_SSH1 /**
* Log Long Width
*
- * @see Net_SSH1::_format_log
+ * @see self::_format_log()
* @access private
*/
var $log_long_width = 65;
@@ -453,7 +453,7 @@ class Net_SSH1 /**
* Log Short Width
*
- * @see Net_SSH1::_format_log
+ * @see self::_format_log()
* @access private
*/
var $log_short_width = 16;
@@ -461,9 +461,9 @@ class Net_SSH1 /**
* Hostname
*
- * @see Net_SSH1::Net_SSH1()
- * @see Net_SSH1::_connect()
- * @var String
+ * @see self::Net_SSH1()
+ * @see self::_connect()
+ * @var string
* @access private
*/
var $host;
@@ -471,9 +471,9 @@ class Net_SSH1 /**
* Port Number
*
- * @see Net_SSH1::Net_SSH1()
- * @see Net_SSH1::_connect()
- * @var Integer
+ * @see self::Net_SSH1()
+ * @see self::_connect()
+ * @var int
* @access private
*/
var $port;
@@ -486,9 +486,9 @@ class Net_SSH1 * however, is non-optional. There will be a timeout, whether or not you set it. If you don't it'll be
* 10 seconds. It is used by fsockopen() in that function.
*
- * @see Net_SSH1::Net_SSH1()
- * @see Net_SSH1::_connect()
- * @var Integer
+ * @see self::Net_SSH1()
+ * @see self::_connect()
+ * @var int
* @access private
*/
var $connectionTimeout;
@@ -496,9 +496,9 @@ class Net_SSH1 /**
* Default cipher
*
- * @see Net_SSH1::Net_SSH1()
- * @see Net_SSH1::_connect()
- * @var Integer
+ * @see self::Net_SSH1()
+ * @see self::_connect()
+ * @var int
* @access private
*/
var $cipher;
@@ -508,10 +508,10 @@ class Net_SSH1 *
* Connects to an SSHv1 server
*
- * @param String $host
- * @param optional Integer $port
- * @param optional Integer $timeout
- * @param optional Integer $cipher
+ * @param string $host
+ * @param int $port
+ * @param int $timeout
+ * @param int $cipher
* @return Net_SSH1
* @access public
*/
@@ -560,7 +560,7 @@ class Net_SSH1 /**
* Connect to an SSHv1 server
*
- * @return Boolean
+ * @return bool
* @access private
*/
function _connect()
@@ -727,9 +727,9 @@ class Net_SSH1 /**
* Login
*
- * @param String $username
- * @param optional String $password
- * @return Boolean
+ * @param string $username
+ * @param string $password
+ * @return bool
* @access public
*/
function login($username, $password = '')
@@ -800,7 +800,7 @@ class Net_SSH1 * $ssh->exec('ping 127.0.0.1'); on a Linux host will never return and will run indefinitely. setTimeout() makes it so it'll timeout.
* Setting $timeout to false or 0 will mean there is no timeout.
*
- * @param Mixed $timeout
+ * @param mixed $timeout
*/
function setTimeout($timeout)
{
@@ -821,9 +821,9 @@ class Net_SSH1 *
* Returns false on failure and the output, otherwise.
*
- * @see Net_SSH1::interactiveRead()
- * @see Net_SSH1::interactiveWrite()
- * @param String $cmd
+ * @see self::interactiveRead()
+ * @see self::interactiveWrite()
+ * @param string $cmd
* @return mixed
* @access public
*/
@@ -871,9 +871,9 @@ class Net_SSH1 /**
* Creates an interactive shell
*
- * @see Net_SSH1::interactiveRead()
- * @see Net_SSH1::interactiveWrite()
- * @return Boolean
+ * @see self::interactiveRead()
+ * @see self::interactiveWrite()
+ * @return bool
* @access private
*/
function _initShell()
@@ -915,9 +915,9 @@ class Net_SSH1 /**
* Inputs a command into an interactive shell.
*
- * @see Net_SSH1::interactiveWrite()
- * @param String $cmd
- * @return Boolean
+ * @see self::interactiveWrite()
+ * @param string $cmd
+ * @return bool
* @access public
*/
function write($cmd)
@@ -931,10 +931,10 @@ class Net_SSH1 * $expect can take the form of a string literal or, if $mode == NET_SSH1_READ_REGEX,
* a regular expression.
*
- * @see Net_SSH1::write()
- * @param String $expect
- * @param Integer $mode
- * @return Boolean
+ * @see self::write()
+ * @param string $expect
+ * @param int $mode
+ * @return bool
* @access public
*/
function read($expect, $mode = NET_SSH1_READ_SIMPLE)
@@ -971,9 +971,9 @@ class Net_SSH1 /**
* Inputs a command into an interactive shell.
*
- * @see Net_SSH1::interactiveRead()
- * @param String $cmd
- * @return Boolean
+ * @see self::interactiveRead()
+ * @param string $cmd
+ * @return bool
* @access public
*/
function interactiveWrite($cmd)
@@ -1007,8 +1007,8 @@ class Net_SSH1 * does not support ANSI escape sequences in Win32 Console applications", so if you're a Windows user,
* there's not going to be much recourse.
*
- * @see Net_SSH1::interactiveRead()
- * @return String
+ * @see self::interactiveRead()
+ * @return string
* @access public
*/
function interactiveRead()
@@ -1059,7 +1059,7 @@ class Net_SSH1 /**
* Disconnect
*
- * @param String $msg
+ * @param string $msg
* @access private
*/
function _disconnect($msg = 'Client Quit')
@@ -1096,8 +1096,8 @@ class Net_SSH1 * Also, this function could be improved upon by adding detection for the following exploit:
* http://www.securiteam.com/securitynews/5LP042K3FY.html
*
- * @see Net_SSH1::_send_binary_packet()
- * @return Array
+ * @see self::_send_binary_packet()
+ * @return array
* @access private
*/
function _get_binary_packet()
@@ -1172,9 +1172,9 @@ class Net_SSH1 *
* Returns true on success, false on failure.
*
- * @see Net_SSH1::_get_binary_packet()
- * @param String $data
- * @return Boolean
+ * @see self::_get_binary_packet()
+ * @param string $data
+ * @return bool
* @access private
*/
function _send_binary_packet($data)
@@ -1219,10 +1219,10 @@ class Net_SSH1 * we've reimplemented it. A more detailed discussion of the differences can be found after
* $crc_lookup_table's initialization.
*
- * @see Net_SSH1::_get_binary_packet()
- * @see Net_SSH1::_send_binary_packet()
- * @param String $data
- * @return Integer
+ * @see self::_get_binary_packet()
+ * @see self::_send_binary_packet()
+ * @param string $data
+ * @return int
* @access private
*/
function _crc($data)
@@ -1317,9 +1317,9 @@ class Net_SSH1 *
* Inspired by array_shift
*
- * @param String $string
- * @param optional Integer $index
- * @return String
+ * @param string $string
+ * @param int $index
+ * @return string
* @access private
*/
function _string_shift(&$string, $index = 1)
@@ -1336,9 +1336,9 @@ class Net_SSH1 * should be a number with the property that gcd($e, ($p - 1) * ($q - 1)) == 1. Could just make anything that
* calls this call modexp, instead, but I think this makes things clearer, maybe...
*
- * @see Net_SSH1::Net_SSH1()
+ * @see self::Net_SSH1()
* @param Math_BigInteger $m
- * @param Array $key
+ * @param array $key
* @return Math_BigInteger
* @access private
*/
@@ -1391,7 +1391,7 @@ class Net_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 array $array
* @access private
*/
function _define_array()
@@ -1414,7 +1414,7 @@ class Net_SSH1 * Returns a string if NET_SSH1_LOGGING == NET_SSH1_LOG_COMPLEX, an array if NET_SSH1_LOGGING == NET_SSH1_LOG_SIMPLE and false if !defined('NET_SSH1_LOGGING')
*
* @access public
- * @return String or Array
+ * @return array|false|string
*/
function getLog()
{
@@ -1437,10 +1437,10 @@ class Net_SSH1 /**
* Formats a log for printing
*
- * @param Array $message_log
- * @param Array $message_number_log
+ * @param array $message_log
+ * @param array $message_number_log
* @access private
- * @return String
+ * @return string
*/
function _format_log($message_log, $message_number_log)
{
@@ -1473,9 +1473,9 @@ class Net_SSH1 *
* For use with preg_replace_callback()
*
- * @param Array $matches
+ * @param array $matches
* @access private
- * @return String
+ * @return string
*/
function _format_log_helper($matches)
{
@@ -1488,8 +1488,8 @@ class Net_SSH1 * Returns, by default, the base-10 representation. If $raw_output is set to true, returns, instead,
* the raw bytes. This behavior is similar to PHP's md5() function.
*
- * @param optional Boolean $raw_output
- * @return String
+ * @param bool $raw_output
+ * @return string
* @access public
*/
function getServerKeyPublicExponent($raw_output = false)
@@ -1503,8 +1503,8 @@ class Net_SSH1 * Returns, by default, the base-10 representation. If $raw_output is set to true, returns, instead,
* the raw bytes. This behavior is similar to PHP's md5() function.
*
- * @param optional Boolean $raw_output
- * @return String
+ * @param bool $raw_output
+ * @return string
* @access public
*/
function getServerKeyPublicModulus($raw_output = false)
@@ -1518,8 +1518,8 @@ class Net_SSH1 * Returns, by default, the base-10 representation. If $raw_output is set to true, returns, instead,
* the raw bytes. This behavior is similar to PHP's md5() function.
*
- * @param optional Boolean $raw_output
- * @return String
+ * @param bool $raw_output
+ * @return string
* @access public
*/
function getHostKeyPublicExponent($raw_output = false)
@@ -1533,8 +1533,8 @@ class Net_SSH1 * Returns, by default, the base-10 representation. If $raw_output is set to true, returns, instead,
* the raw bytes. This behavior is similar to PHP's md5() function.
*
- * @param optional Boolean $raw_output
- * @return String
+ * @param bool $raw_output
+ * @return string
* @access public
*/
function getHostKeyPublicModulus($raw_output = false)
@@ -1549,8 +1549,8 @@ class Net_SSH1 * is set to true, returns, instead, an array of constants. ie. instead of array('Triple-DES in CBC mode'), you'll
* get array(NET_SSH1_CIPHER_3DES).
*
- * @param optional Boolean $raw_output
- * @return Array
+ * @param bool $raw_output
+ * @return array
* @access public
*/
function getSupportedCiphers($raw_output = false)
@@ -1565,8 +1565,8 @@ class Net_SSH1 * is set to true, returns, instead, an array of constants. ie. instead of array('password authentication'), you'll
* get array(NET_SSH1_AUTH_PASSWORD).
*
- * @param optional Boolean $raw_output
- * @return Array
+ * @param bool $raw_output
+ * @return array
* @access public
*/
function getSupportedAuthentications($raw_output = false)
@@ -1577,7 +1577,7 @@ class Net_SSH1 /**
* Return the server identification.
*
- * @return String
+ * @return string
* @access public
*/
function getServerIdentification()
@@ -1590,7 +1590,7 @@ class Net_SSH1 *
* Makes sure that only the last 1MB worth of packets will be logged
*
- * @param String $data
+ * @param string $data
* @access private
*/
function _append_log($protocol_flags, $message)
diff --git a/libs/phpseclib-1.0.0/Net/SSH2.php b/libs/phpseclib-1.0.1/Net/SSH2.php index 258fb8e..49c8e16 100644 --- a/libs/phpseclib-1.0.0/Net/SSH2.php +++ b/libs/phpseclib-1.0.1/Net/SSH2.php @@ -69,7 +69,7 @@ /**#@+
* Execution Bitmap Masks
*
- * @see Net_SSH2::bitmap
+ * @see self::bitmap
* @access private
*/
define('NET_SSH2_MASK_CONSTRUCTOR', 0x00000001);
@@ -92,8 +92,8 @@ define('NET_SSH2_MASK_WINDOW_ADJUST', 0x00000020); * open request, and 'sender channel' is the channel number allocated by
* the other side.
*
- * @see Net_SSH2::_send_channel_packet()
- * @see Net_SSH2::_get_channel_packet()
+ * @see self::_send_channel_packet()
+ * @see self::_get_channel_packet()
* @access private
*/
define('NET_SSH2_CHANNEL_EXEC', 0); // PuTTy uses 0x100
@@ -104,7 +104,7 @@ define('NET_SSH2_CHANNEL_AGENT_FORWARD', 3); /**#@+
* @access public
- * @see Net_SSH2::getLog()
+ * @see self::getLog()
*/
/**
* Returns the message numbers
@@ -126,7 +126,7 @@ define('NET_SSH2_LOG_REALTIME_FILE', 4); /**#@+
* @access public
- * @see Net_SSH2::read()
+ * @see self::read()
*/
/**
* Returns when a string matching $expect exactly is found
@@ -154,7 +154,7 @@ class Net_SSH2 /**
* The SSH identifier
*
- * @var String
+ * @var string
* @access private
*/
var $identifier;
@@ -162,7 +162,7 @@ class Net_SSH2 /**
* The Socket Object
*
- * @var Object
+ * @var object
* @access private
*/
var $fsock;
@@ -173,7 +173,7 @@ class Net_SSH2 * The bits that are set represent functions that have been called already. This is used to determine
* if a requisite function has been successfully executed. If not, an error should be thrown.
*
- * @var Integer
+ * @var int
* @access private
*/
var $bitmap = 0;
@@ -181,9 +181,9 @@ class Net_SSH2 /**
* Error information
*
- * @see Net_SSH2::getErrors()
- * @see Net_SSH2::getLastError()
- * @var String
+ * @see self::getErrors()
+ * @see self::getLastError()
+ * @var string
* @access private
*/
var $errors = array();
@@ -191,8 +191,8 @@ class Net_SSH2 /**
* Server Identifier
*
- * @see Net_SSH2::getServerIdentification()
- * @var mixed false or Array
+ * @see self::getServerIdentification()
+ * @var array|false
* @access private
*/
var $server_identifier = false;
@@ -200,8 +200,8 @@ class Net_SSH2 /**
* Key Exchange Algorithms
*
- * @see Net_SSH2::getKexAlgorithims()
- * @var mixed false or Array
+ * @see self::getKexAlgorithims()
+ * @var array|false
* @access private
*/
var $kex_algorithms = false;
@@ -209,8 +209,8 @@ class Net_SSH2 /**
* Minimum Diffie-Hellman Group Bit Size in RFC 4419 Key Exchange Methods
*
- * @see Net_SSH2::_key_exchange()
- * @var Integer
+ * @see self::_key_exchange()
+ * @var int
* @access private
*/
var $kex_dh_group_size_min = 1536;
@@ -218,8 +218,8 @@ class Net_SSH2 /**
* Preferred Diffie-Hellman Group Bit Size in RFC 4419 Key Exchange Methods
*
- * @see Net_SSH2::_key_exchange()
- * @var Integer
+ * @see self::_key_exchange()
+ * @var int
* @access private
*/
var $kex_dh_group_size_preferred = 2048;
@@ -227,8 +227,8 @@ class Net_SSH2 /**
* Maximum Diffie-Hellman Group Bit Size in RFC 4419 Key Exchange Methods
*
- * @see Net_SSH2::_key_exchange()
- * @var Integer
+ * @see self::_key_exchange()
+ * @var int
* @access private
*/
var $kex_dh_group_size_max = 4096;
@@ -236,8 +236,8 @@ class Net_SSH2 /**
* Server Host Key Algorithms
*
- * @see Net_SSH2::getServerHostKeyAlgorithms()
- * @var mixed false or Array
+ * @see self::getServerHostKeyAlgorithms()
+ * @var array|false
* @access private
*/
var $server_host_key_algorithms = false;
@@ -245,8 +245,8 @@ class Net_SSH2 /**
* Encryption Algorithms: Client to Server
*
- * @see Net_SSH2::getEncryptionAlgorithmsClient2Server()
- * @var mixed false or Array
+ * @see self::getEncryptionAlgorithmsClient2Server()
+ * @var array|false
* @access private
*/
var $encryption_algorithms_client_to_server = false;
@@ -254,8 +254,8 @@ class Net_SSH2 /**
* Encryption Algorithms: Server to Client
*
- * @see Net_SSH2::getEncryptionAlgorithmsServer2Client()
- * @var mixed false or Array
+ * @see self::getEncryptionAlgorithmsServer2Client()
+ * @var array|false
* @access private
*/
var $encryption_algorithms_server_to_client = false;
@@ -263,8 +263,8 @@ class Net_SSH2 /**
* MAC Algorithms: Client to Server
*
- * @see Net_SSH2::getMACAlgorithmsClient2Server()
- * @var mixed false or Array
+ * @see self::getMACAlgorithmsClient2Server()
+ * @var array|false
* @access private
*/
var $mac_algorithms_client_to_server = false;
@@ -272,8 +272,8 @@ class Net_SSH2 /**
* MAC Algorithms: Server to Client
*
- * @see Net_SSH2::getMACAlgorithmsServer2Client()
- * @var mixed false or Array
+ * @see self::getMACAlgorithmsServer2Client()
+ * @var array|false
* @access private
*/
var $mac_algorithms_server_to_client = false;
@@ -281,8 +281,8 @@ class Net_SSH2 /**
* Compression Algorithms: Client to Server
*
- * @see Net_SSH2::getCompressionAlgorithmsClient2Server()
- * @var mixed false or Array
+ * @see self::getCompressionAlgorithmsClient2Server()
+ * @var array|false
* @access private
*/
var $compression_algorithms_client_to_server = false;
@@ -290,8 +290,8 @@ class Net_SSH2 /**
* Compression Algorithms: Server to Client
*
- * @see Net_SSH2::getCompressionAlgorithmsServer2Client()
- * @var mixed false or Array
+ * @see self::getCompressionAlgorithmsServer2Client()
+ * @var array|false
* @access private
*/
var $compression_algorithms_server_to_client = false;
@@ -299,8 +299,8 @@ class Net_SSH2 /**
* Languages: Server to Client
*
- * @see Net_SSH2::getLanguagesServer2Client()
- * @var mixed false or Array
+ * @see self::getLanguagesServer2Client()
+ * @var array|false
* @access private
*/
var $languages_server_to_client = false;
@@ -308,8 +308,8 @@ class Net_SSH2 /**
* Languages: Client to Server
*
- * @see Net_SSH2::getLanguagesClient2Server()
- * @var mixed false or Array
+ * @see self::getLanguagesClient2Server()
+ * @var array|false
* @access private
*/
var $languages_client_to_server = false;
@@ -324,9 +324,9 @@ class Net_SSH2 *
* -- http://tools.ietf.org/html/rfc4253#section-6
*
- * @see Net_SSH2::Net_SSH2()
- * @see Net_SSH2::_send_binary_packet()
- * @var Integer
+ * @see self::Net_SSH2()
+ * @see self::_send_binary_packet()
+ * @var int
* @access private
*/
var $encrypt_block_size = 8;
@@ -334,9 +334,9 @@ class Net_SSH2 /**
* Block Size for Client to Server Encryption
*
- * @see Net_SSH2::Net_SSH2()
- * @see Net_SSH2::_get_binary_packet()
- * @var Integer
+ * @see self::Net_SSH2()
+ * @see self::_get_binary_packet()
+ * @var int
* @access private
*/
var $decrypt_block_size = 8;
@@ -344,8 +344,8 @@ class Net_SSH2 /**
* Server to Client Encryption Object
*
- * @see Net_SSH2::_get_binary_packet()
- * @var Object
+ * @see self::_get_binary_packet()
+ * @var object
* @access private
*/
var $decrypt = false;
@@ -353,8 +353,8 @@ class Net_SSH2 /**
* Client to Server Encryption Object
*
- * @see Net_SSH2::_send_binary_packet()
- * @var Object
+ * @see self::_send_binary_packet()
+ * @var object
* @access private
*/
var $encrypt = false;
@@ -362,8 +362,8 @@ class Net_SSH2 /**
* Client to Server HMAC Object
*
- * @see Net_SSH2::_send_binary_packet()
- * @var Object
+ * @see self::_send_binary_packet()
+ * @var object
* @access private
*/
var $hmac_create = false;
@@ -371,8 +371,8 @@ class Net_SSH2 /**
* Server to Client HMAC Object
*
- * @see Net_SSH2::_get_binary_packet()
- * @var Object
+ * @see self::_get_binary_packet()
+ * @var object
* @access private
*/
var $hmac_check = false;
@@ -384,8 +384,8 @@ class Net_SSH2 * For the client to server side, the HMAC object will make the HMAC as long as it needs to be. All we need to do is
* append it.
*
- * @see Net_SSH2::_get_binary_packet()
- * @var Integer
+ * @see self::_get_binary_packet()
+ * @var int
* @access private
*/
var $hmac_size = false;
@@ -393,8 +393,8 @@ class Net_SSH2 /**
* Server Public Host Key
*
- * @see Net_SSH2::getServerPublicHostKey()
- * @var String
+ * @see self::getServerPublicHostKey()
+ * @var string
* @access private
*/
var $server_public_host_key;
@@ -408,8 +408,8 @@ class Net_SSH2 *
* -- http://tools.ietf.org/html/rfc4253#section-7.2
*
- * @see Net_SSH2::_key_exchange()
- * @var String
+ * @see self::_key_exchange()
+ * @var string
* @access private
*/
var $session_id = false;
@@ -419,8 +419,8 @@ class Net_SSH2 *
* The current exchange hash
*
- * @see Net_SSH2::_key_exchange()
- * @var String
+ * @see self::_key_exchange()
+ * @var string
* @access private
*/
var $exchange_hash = false;
@@ -428,8 +428,8 @@ class Net_SSH2 /**
* Message Numbers
*
- * @see Net_SSH2::Net_SSH2()
- * @var Array
+ * @see self::Net_SSH2()
+ * @var array
* @access private
*/
var $message_numbers = array();
@@ -437,8 +437,8 @@ class Net_SSH2 /**
* Disconnection Message 'reason codes' defined in RFC4253
*
- * @see Net_SSH2::Net_SSH2()
- * @var Array
+ * @see self::Net_SSH2()
+ * @var array
* @access private
*/
var $disconnect_reasons = array();
@@ -446,8 +446,8 @@ class Net_SSH2 /**
* SSH_MSG_CHANNEL_OPEN_FAILURE 'reason codes', defined in RFC4254
*
- * @see Net_SSH2::Net_SSH2()
- * @var Array
+ * @see self::Net_SSH2()
+ * @var array
* @access private
*/
var $channel_open_failure_reasons = array();
@@ -456,8 +456,8 @@ class Net_SSH2 * Terminal Modes
*
* @link http://tools.ietf.org/html/rfc4254#section-8
- * @see Net_SSH2::Net_SSH2()
- * @var Array
+ * @see self::Net_SSH2()
+ * @var array
* @access private
*/
var $terminal_modes = array();
@@ -466,8 +466,8 @@ class Net_SSH2 * SSH_MSG_CHANNEL_EXTENDED_DATA's data_type_codes
*
* @link http://tools.ietf.org/html/rfc4254#section-5.2
- * @see Net_SSH2::Net_SSH2()
- * @var Array
+ * @see self::Net_SSH2()
+ * @var array
* @access private
*/
var $channel_extended_data_type_codes = array();
@@ -477,8 +477,8 @@ class Net_SSH2 *
* See 'Section 6.4. Data Integrity' of rfc4253 for more info.
*
- * @see Net_SSH2::_send_binary_packet()
- * @var Integer
+ * @see self::_send_binary_packet()
+ * @var int
* @access private
*/
var $send_seq_no = 0;
@@ -488,8 +488,8 @@ class Net_SSH2 *
* See 'Section 6.4. Data Integrity' of rfc4253 for more info.
*
- * @see Net_SSH2::_get_binary_packet()
- * @var Integer
+ * @see self::_get_binary_packet()
+ * @var int
* @access private
*/
var $get_seq_no = 0;
@@ -499,9 +499,9 @@ class Net_SSH2 *
* Maps client channels to server channels
*
- * @see Net_SSH2::_get_channel_packet()
- * @see Net_SSH2::exec()
- * @var Array
+ * @see self::_get_channel_packet()
+ * @see self::exec()
+ * @var array
* @access private
*/
var $server_channels = array();
@@ -512,9 +512,9 @@ class Net_SSH2 * If a client requests a packet from one channel but receives two packets from another those packets should
* be placed in a buffer
*
- * @see Net_SSH2::_get_channel_packet()
- * @see Net_SSH2::exec()
- * @var Array
+ * @see self::_get_channel_packet()
+ * @see self::exec()
+ * @var array
* @access private
*/
var $channel_buffers = array();
@@ -524,8 +524,8 @@ class Net_SSH2 *
* Contains the type of the last sent message
*
- * @see Net_SSH2::_get_channel_packet()
- * @var Array
+ * @see self::_get_channel_packet()
+ * @var array
* @access private
*/
var $channel_status = array();
@@ -535,8 +535,8 @@ class Net_SSH2 *
* Maximum packet size indexed by channel
*
- * @see Net_SSH2::_send_channel_packet()
- * @var Array
+ * @see self::_send_channel_packet()
+ * @var array
* @access private
*/
var $packet_size_client_to_server = array();
@@ -544,8 +544,8 @@ class Net_SSH2 /**
* Message Number Log
*
- * @see Net_SSH2::getLog()
- * @var Array
+ * @see self::getLog()
+ * @var array
* @access private
*/
var $message_number_log = array();
@@ -553,8 +553,8 @@ class Net_SSH2 /**
* Message Log
*
- * @see Net_SSH2::getLog()
- * @var Array
+ * @see self::getLog()
+ * @var array
* @access private
*/
var $message_log = array();
@@ -564,9 +564,9 @@ class Net_SSH2 *
* Bytes the other party can send before it must wait for the window to be adjusted (0x7FFFFFFF = 2GB)
*
- * @var Integer
- * @see Net_SSH2::_send_channel_packet()
- * @see Net_SSH2::exec()
+ * @var int
+ * @see self::_send_channel_packet()
+ * @see self::exec()
* @access private
*/
var $window_size = 0x7FFFFFFF;
@@ -576,8 +576,8 @@ class Net_SSH2 *
* Window size indexed by channel
*
- * @see Net_SSH2::_send_channel_packet()
- * @var Array
+ * @see self::_send_channel_packet()
+ * @var array
* @access private
*/
var $window_size_server_to_client = array();
@@ -587,8 +587,8 @@ class Net_SSH2 *
* Window size indexed by channel
*
- * @see Net_SSH2::_get_channel_packet()
- * @var Array
+ * @see self::_get_channel_packet()
+ * @var array
* @access private
*/
var $window_size_client_to_server = array();
@@ -598,8 +598,8 @@ class Net_SSH2 *
* Verified against $this->session_id
*
- * @see Net_SSH2::getServerPublicHostKey()
- * @var String
+ * @see self::getServerPublicHostKey()
+ * @var string
* @access private
*/
var $signature = '';
@@ -609,8 +609,8 @@ class Net_SSH2 *
* ssh-rsa or ssh-dss.
*
- * @see Net_SSH2::getServerPublicHostKey()
- * @var String
+ * @see self::getServerPublicHostKey()
+ * @var string
* @access private
*/
var $signature_format = '';
@@ -618,8 +618,8 @@ class Net_SSH2 /**
* Interactive Buffer
*
- * @see Net_SSH2::read()
- * @var Array
+ * @see self::read()
+ * @var array
* @access private
*/
var $interactiveBuffer = '';
@@ -629,9 +629,9 @@ class Net_SSH2 *
* Should never exceed NET_SSH2_LOG_MAX_SIZE
*
- * @see Net_SSH2::_send_binary_packet()
- * @see Net_SSH2::_get_binary_packet()
- * @var Integer
+ * @see self::_send_binary_packet()
+ * @see self::_get_binary_packet()
+ * @var int
* @access private
*/
var $log_size;
@@ -639,7 +639,7 @@ class Net_SSH2 /**
* Timeout
*
- * @see Net_SSH2::setTimeout()
+ * @see self::setTimeout()
* @access private
*/
var $timeout;
@@ -647,7 +647,7 @@ class Net_SSH2 /**
* Current Timeout
*
- * @see Net_SSH2::_get_channel_packet()
+ * @see self::_get_channel_packet()
* @access private
*/
var $curTimeout;
@@ -655,8 +655,8 @@ class Net_SSH2 /**
* Real-time log file pointer
*
- * @see Net_SSH2::_append_log()
- * @var Resource
+ * @see self::_append_log()
+ * @var resource
* @access private
*/
var $realtime_log_file;
@@ -664,8 +664,8 @@ class Net_SSH2 /**
* Real-time log file size
*
- * @see Net_SSH2::_append_log()
- * @var Integer
+ * @see self::_append_log()
+ * @var int
* @access private
*/
var $realtime_log_size;
@@ -673,8 +673,8 @@ class Net_SSH2 /**
* Has the signature been validated?
*
- * @see Net_SSH2::getServerPublicHostKey()
- * @var Boolean
+ * @see self::getServerPublicHostKey()
+ * @var bool
* @access private
*/
var $signature_validated = false;
@@ -682,7 +682,7 @@ class Net_SSH2 /**
* Real-time log file wrap boolean
*
- * @see Net_SSH2::_append_log()
+ * @see self::_append_log()
* @access private
*/
var $realtime_log_wrap;
@@ -690,7 +690,7 @@ class Net_SSH2 /**
* Flag to suppress stderr from output
*
- * @see Net_SSH2::enableQuietMode()
+ * @see self::enableQuietMode()
* @access private
*/
var $quiet_mode = false;
@@ -698,7 +698,7 @@ class Net_SSH2 /**
* Time of first network activity
*
- * @var Integer
+ * @var int
* @access private
*/
var $last_packet;
@@ -706,7 +706,7 @@ class Net_SSH2 /**
* Exit status returned from ssh if any
*
- * @var Integer
+ * @var int
* @access private
*/
var $exit_status;
@@ -714,8 +714,8 @@ class Net_SSH2 /**
* Flag to request a PTY when using exec()
*
- * @var Boolean
- * @see Net_SSH2::enablePTY()
+ * @var bool
+ * @see self::enablePTY()
* @access private
*/
var $request_pty = false;
@@ -723,7 +723,7 @@ class Net_SSH2 /**
* Flag set while exec() is running when using enablePTY()
*
- * @var Boolean
+ * @var bool
* @access private
*/
var $in_request_pty_exec = false;
@@ -731,7 +731,7 @@ class Net_SSH2 /**
* Flag set after startSubsystem() is called
*
- * @var Boolean
+ * @var bool
* @access private
*/
var $in_subsystem;
@@ -739,7 +739,7 @@ class Net_SSH2 /**
* Contents of stdError
*
- * @var String
+ * @var string
* @access private
*/
var $stdErrorLog;
@@ -747,8 +747,8 @@ class Net_SSH2 /**
* The Last Interactive Response
*
- * @see Net_SSH2::_keyboard_interactive_process()
- * @var String
+ * @see self::_keyboard_interactive_process()
+ * @var string
* @access private
*/
var $last_interactive_response = '';
@@ -756,8 +756,8 @@ class Net_SSH2 /**
* Keyboard Interactive Request / Responses
*
- * @see Net_SSH2::_keyboard_interactive_process()
- * @var Array
+ * @see self::_keyboard_interactive_process()
+ * @var array
* @access private
*/
var $keyboard_requests_responses = array();
@@ -768,9 +768,9 @@ class Net_SSH2 * Quoting from the RFC, "in some jurisdictions, sending a warning message before
* authentication may be relevant for getting legal protection."
*
- * @see Net_SSH2::_filter()
- * @see Net_SSH2::getBannerMessage()
- * @var String
+ * @see self::_filter()
+ * @see self::getBannerMessage()
+ * @var string
* @access private
*/
var $banner_message = '';
@@ -778,8 +778,8 @@ class Net_SSH2 /**
* Did read() timeout or return normally?
*
- * @see Net_SSH2::isTimeout()
- * @var Boolean
+ * @see self::isTimeout()
+ * @var bool
* @access private
*/
var $is_timeout = false;
@@ -787,8 +787,8 @@ class Net_SSH2 /**
* Log Boundary
*
- * @see Net_SSH2::_format_log()
- * @var String
+ * @see self::_format_log()
+ * @var string
* @access private
*/
var $log_boundary = ':';
@@ -796,8 +796,8 @@ class Net_SSH2 /**
* Log Long Width
*
- * @see Net_SSH2::_format_log()
- * @var Integer
+ * @see self::_format_log()
+ * @var int
* @access private
*/
var $log_long_width = 65;
@@ -805,8 +805,8 @@ class Net_SSH2 /**
* Log Short Width
*
- * @see Net_SSH2::_format_log()
- * @var Integer
+ * @see self::_format_log()
+ * @var int
* @access private
*/
var $log_short_width = 16;
@@ -814,9 +814,9 @@ class Net_SSH2 /**
* Hostname
*
- * @see Net_SSH2::Net_SSH2()
- * @see Net_SSH2::_connect()
- * @var String
+ * @see self::Net_SSH2()
+ * @see self::_connect()
+ * @var string
* @access private
*/
var $host;
@@ -824,9 +824,9 @@ class Net_SSH2 /**
* Port Number
*
- * @see Net_SSH2::Net_SSH2()
- * @see Net_SSH2::_connect()
- * @var Integer
+ * @see self::Net_SSH2()
+ * @see self::_connect()
+ * @var int
* @access private
*/
var $port;
@@ -834,10 +834,10 @@ class Net_SSH2 /**
* Number of columns for terminal window size
*
- * @see Net_SSH2::getWindowColumns()
- * @see Net_SSH2::setWindowColumns()
- * @see Net_SSH2::setWindowSize()
- * @var Integer
+ * @see self::getWindowColumns()
+ * @see self::setWindowColumns()
+ * @see self::setWindowSize()
+ * @var int
* @access private
*/
var $windowColumns = 80;
@@ -845,10 +845,10 @@ class Net_SSH2 /**
* Number of columns for terminal window size
*
- * @see Net_SSH2::getWindowRows()
- * @see Net_SSH2::setWindowRows()
- * @see Net_SSH2::setWindowSize()
- * @var Integer
+ * @see self::getWindowRows()
+ * @see self::setWindowRows()
+ * @see self::setWindowSize()
+ * @var int
* @access private
*/
var $windowRows = 24;
@@ -856,9 +856,9 @@ class Net_SSH2 /**
* Crypto Engine
*
- * @see Net_SSH2::setCryptoEngine()
- * @see Net_SSH2::_key_exchange()
- * @var Integer
+ * @see self::setCryptoEngine()
+ * @see self::_key_exchange()
+ * @var int
* @access private
*/
var $crypto_engine = false;
@@ -874,10 +874,12 @@ class Net_SSH2 /**
* Default Constructor.
*
- * @param String $host
- * @param optional Integer $port
- * @param optional Integer $timeout
- * @see Net_SSH2::login()
+ * $host can either be a string, representing the host, or a stream resource.
+ *
+ * @param mixed $host
+ * @param int $port
+ * @param int $timeout
+ * @see self::login()
* @return Net_SSH2
* @access public
*/
@@ -978,9 +980,16 @@ class Net_SSH2 34 => 'NET_SSH2_MSG_KEXDH_GEX_REQUEST')
);
- $this->host = $host;
- $this->port = $port;
- $this->timeout = $timeout;
+ if (is_resource($host)) {
+ $this->fsock = $host;
+ return;
+ }
+
+ if (is_string($host)) {
+ $this->host = $host;
+ $this->port = $port;
+ $this->timeout = $timeout;
+ }
}
/**
@@ -989,7 +998,7 @@ class Net_SSH2 * Possible $engine values:
* CRYPT_MODE_INTERNAL, CRYPT_MODE_MCRYPT
*
- * @param Integer $engine
+ * @param int $engine
* @access private
*/
function setCryptoEngine($engine)
@@ -1000,7 +1009,7 @@ class Net_SSH2 /**
* Connect to an SSHv2 server
*
- * @return Boolean
+ * @return bool
* @access private
*/
function _connect()
@@ -1013,23 +1022,24 @@ class Net_SSH2 $this->curTimeout = $this->timeout;
- $host = $this->host . ':' . $this->port;
-
$this->last_packet = strtok(microtime(), ' ') + strtok(''); // == microtime(true) in PHP5
- $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838
- $this->fsock = @fsockopen($this->host, $this->port, $errno, $errstr, $this->curTimeout);
- if (!$this->fsock) {
- user_error(rtrim("Cannot connect to $host. Error $errno. $errstr"));
- return false;
- }
- $elapsed = strtok(microtime(), ' ') + strtok('') - $start;
+ if (!is_resource($this->fsock)) {
+ $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838
+ $this->fsock = @fsockopen($this->host, $this->port, $errno, $errstr, $this->curTimeout);
+ if (!$this->fsock) {
+ $host = $this->host . ':' . $this->port;
+ user_error(rtrim("Cannot connect to $host. Error $errno. $errstr"));
+ return false;
+ }
+ $elapsed = strtok(microtime(), ' ') + strtok('') - $start;
- $this->curTimeout-= $elapsed;
+ $this->curTimeout-= $elapsed;
- if ($this->curTimeout <= 0) {
- $this->is_timeout = true;
- return false;
+ if ($this->curTimeout <= 0) {
+ $this->is_timeout = true;
+ return false;
+ }
}
/* According to the SSH2 specs,
@@ -1120,11 +1130,11 @@ class Net_SSH2 * You should overwrite this method in your own class if you want to use another identifier
*
* @access protected
- * @return String
+ * @return string
*/
function _generate_identifier()
{
- $identifier = 'SSH-2.0-phpseclib_0.3';
+ $identifier = 'SSH-2.0-phpseclib_1.0';
$ext = array();
if (extension_loaded('openssl')) {
@@ -1149,7 +1159,7 @@ class Net_SSH2 /**
* Key Exchange
*
- * @param String $kexinit_payload_server
+ * @param string $kexinit_payload_server
* @access private
*/
function _key_exchange($kexinit_payload_server)
@@ -1357,110 +1367,31 @@ class Net_SSH2 // here ends the second place.
// we need to decide upon the symmetric encryption algorithms before we do the diffie-hellman key exchange
- for ($i = 0; $i < count($encryption_algorithms) && !in_array($encryption_algorithms[$i], $this->encryption_algorithms_server_to_client); $i++) {
- }
- if ($i == count($encryption_algorithms)) {
- user_error('No compatible server to client encryption algorithms found');
- return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
- }
-
// we don't initialize any crypto-objects, yet - we do that, later. for now, we need the lengths to make the
// diffie-hellman key exchange as fast as possible
- $decrypt = $encryption_algorithms[$i];
- switch ($decrypt) {
- case '3des-cbc':
- case '3des-ctr':
- $decryptKeyLength = 24; // eg. 192 / 8
- break;
- case 'aes256-cbc':
- case 'aes256-ctr':
- case 'twofish-cbc':
- case 'twofish256-cbc':
- case 'twofish256-ctr':
- $decryptKeyLength = 32; // eg. 256 / 8
- break;
- case 'aes192-cbc':
- case 'aes192-ctr':
- case 'twofish192-cbc':
- case 'twofish192-ctr':
- $decryptKeyLength = 24; // eg. 192 / 8
- break;
- case 'aes128-cbc':
- case 'aes128-ctr':
- case 'twofish128-cbc':
- case 'twofish128-ctr':
- case 'blowfish-cbc':
- case 'blowfish-ctr':
- $decryptKeyLength = 16; // eg. 128 / 8
- break;
- case 'arcfour':
- case 'arcfour128':
- $decryptKeyLength = 16; // eg. 128 / 8
- break;
- case 'arcfour256':
- $decryptKeyLength = 32; // eg. 128 / 8
- break;
- case 'none':
- $decryptKeyLength = 0;
+ $decrypt = $this->_array_intersect_first($encryption_algorithms, $this->encryption_algorithms_server_to_client);
+ $decryptKeyLength = $this->_encryption_algorithm_to_key_size($decrypt);
+ if ($decryptKeyLength === null) {
+ user_error('No compatible server to client encryption algorithms found');
+ return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
}
- for ($i = 0; $i < count($encryption_algorithms) && !in_array($encryption_algorithms[$i], $this->encryption_algorithms_client_to_server); $i++) {
- }
- if ($i == count($encryption_algorithms)) {
+ $encrypt = $this->_array_intersect_first($encryption_algorithms, $this->encryption_algorithms_client_to_server);
+ $encryptKeyLength = $this->_encryption_algorithm_to_key_size($encrypt);
+ if ($encryptKeyLength === null) {
user_error('No compatible client to server encryption algorithms found');
return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
}
- $encrypt = $encryption_algorithms[$i];
- switch ($encrypt) {
- case '3des-cbc':
- case '3des-ctr':
- $encryptKeyLength = 24;
- break;
- case 'aes256-cbc':
- case 'aes256-ctr':
- case 'twofish-cbc':
- case 'twofish256-cbc':
- case 'twofish256-ctr':
- $encryptKeyLength = 32;
- break;
- case 'aes192-cbc':
- case 'aes192-ctr':
- case 'twofish192-cbc':
- case 'twofish192-ctr':
- $encryptKeyLength = 24;
- break;
- case 'aes128-cbc':
- case 'aes128-ctr':
- case 'twofish128-cbc':
- case 'twofish128-ctr':
- case 'blowfish-cbc':
- case 'blowfish-ctr':
- $encryptKeyLength = 16;
- break;
- case 'arcfour':
- case 'arcfour128':
- $encryptKeyLength = 16;
- break;
- case 'arcfour256':
- $encryptKeyLength = 32;
- break;
- case 'none':
- $encryptKeyLength = 0;
- }
-
$keyLength = $decryptKeyLength > $encryptKeyLength ? $decryptKeyLength : $encryptKeyLength;
// through diffie-hellman key exchange a symmetric key is obtained
- for ($i = 0; $i < count($kex_algorithms) && !in_array($kex_algorithms[$i], $this->kex_algorithms);
- $i++) {
- }
- if ($i == count($kex_algorithms)) {
+ $kex_algorithm = $this->_array_intersect_first($kex_algorithms, $this->kex_algorithms);
+ if ($kex_algorithm === false) {
user_error('No compatible key exchange algorithms found');
return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
}
-
- if (strpos($kex_algorithms[$i], 'diffie-hellman-group-exchange') === 0) {
+ if (strpos($kex_algorithm, 'diffie-hellman-group-exchange') === 0) {
$dh_group_sizes_packed = pack(
'NNN',
$this->kex_dh_group_size_min,
@@ -1507,7 +1438,7 @@ class Net_SSH2 $clientKexInitMessage = NET_SSH2_MSG_KEXDH_GEX_INIT;
$serverKexReplyMessage = NET_SSH2_MSG_KEXDH_GEX_REPLY;
} else {
- switch ($kex_algorithms[$i]) {
+ switch ($kex_algorithm) {
// see http://tools.ietf.org/html/rfc2409#section-6.2 and
// http://tools.ietf.org/html/rfc2412, appendex E
case 'diffie-hellman-group1-sha1':
@@ -1537,7 +1468,7 @@ class Net_SSH2 $serverKexReplyMessage = NET_SSH2_MSG_KEXDH_REPLY;
}
- switch ($kex_algorithms[$i]) {
+ switch ($kex_algorithm) {
case 'diffie-hellman-group-exchange-sha256':
$kexHash = new Crypt_Hash('sha256');
break;
@@ -1626,14 +1557,13 @@ class Net_SSH2 $this->session_id = $this->exchange_hash;
}
- for ($i = 0; $i < count($server_host_key_algorithms) && !in_array($server_host_key_algorithms[$i], $this->server_host_key_algorithms); $i++) {
- }
- if ($i == count($server_host_key_algorithms)) {
+ $server_host_key_algorithm = $this->_array_intersect_first($server_host_key_algorithms, $this->server_host_key_algorithms);
+ if ($server_host_key_algorithm === false) {
user_error('No compatible server host key algorithms found');
return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
}
- if ($public_key_format != $server_host_key_algorithms[$i] || $this->signature_format != $server_host_key_algorithms[$i]) {
+ if ($public_key_format != $server_host_key_algorithm || $this->signature_format != $server_host_key_algorithm) {
user_error('Server Host Key Algorithm Mismatch');
return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
}
@@ -1871,15 +1801,14 @@ class Net_SSH2 $this->decrypt->decrypt(str_repeat("\0", 1536));
}
- for ($i = 0; $i < count($mac_algorithms) && !in_array($mac_algorithms[$i], $this->mac_algorithms_client_to_server); $i++) {
- }
- if ($i == count($mac_algorithms)) {
+ $mac_algorithm = $this->_array_intersect_first($mac_algorithms, $this->mac_algorithms_client_to_server);
+ if ($mac_algorithm === false) {
user_error('No compatible client to server message authentication algorithms found');
return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
}
- $createKeyLength = 0; // ie. $mac_algorithms[$i] == 'none'
- switch ($mac_algorithms[$i]) {
+ $createKeyLength = 0; // ie. $mac_algorithm == 'none'
+ switch ($mac_algorithm) {
case 'hmac-sha2-256':
$this->hmac_create = new Crypt_Hash('sha256');
$createKeyLength = 32;
@@ -1901,16 +1830,15 @@ class Net_SSH2 $createKeyLength = 16;
}
- for ($i = 0; $i < count($mac_algorithms) && !in_array($mac_algorithms[$i], $this->mac_algorithms_server_to_client); $i++) {
- }
- if ($i == count($mac_algorithms)) {
+ $mac_algorithm = $this->_array_intersect_first($mac_algorithms, $this->mac_algorithms_server_to_client);
+ if ($mac_algorithm === false) {
user_error('No compatible server to client message authentication algorithms found');
return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
}
$checkKeyLength = 0;
$this->hmac_size = 0;
- switch ($mac_algorithms[$i]) {
+ switch ($mac_algorithm) {
case 'hmac-sha2-256':
$this->hmac_check = new Crypt_Hash('sha256');
$checkKeyLength = 32;
@@ -1949,35 +1877,72 @@ class Net_SSH2 }
$this->hmac_check->setKey(substr($key, 0, $checkKeyLength));
- for ($i = 0; $i < count($compression_algorithms) && !in_array($compression_algorithms[$i], $this->compression_algorithms_server_to_client); $i++) {
- }
- if ($i == count($compression_algorithms)) {
+ $compression_algorithm = $this->_array_intersect_first($compression_algorithms, $this->compression_algorithms_server_to_client);
+ if ($compression_algorithm === false) {
user_error('No compatible server to client compression algorithms found');
return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
}
- $this->decompress = $compression_algorithms[$i] == 'zlib';
+ $this->decompress = $compression_algorithm == 'zlib';
- for ($i = 0; $i < count($compression_algorithms) && !in_array($compression_algorithms[$i], $this->compression_algorithms_client_to_server); $i++) {
- }
- if ($i == count($compression_algorithms)) {
+ $compression_algorithm = $this->_array_intersect_first($compression_algorithms, $this->compression_algorithms_client_to_server);
+ if ($compression_algorithm === false) {
user_error('No compatible client to server compression algorithms found');
return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
}
- $this->compress = $compression_algorithms[$i] == 'zlib';
+ $this->compress = $compression_algorithm == 'zlib';
return true;
}
/**
+ * Maps an encryption algorithm name to the number of key bytes.
+ *
+ * @param string $algorithm Name of the encryption algorithm
+ * @return int|null Number of bytes as an integer or null for unknown
+ * @access private
+ */
+ function _encryption_algorithm_to_key_size($algorithm)
+ {
+ switch ($algorithm) {
+ case 'none':
+ return 0;
+ case 'aes128-cbc':
+ case 'aes128-ctr':
+ case 'arcfour':
+ case 'arcfour128':
+ case 'blowfish-cbc':
+ case 'blowfish-ctr':
+ case 'twofish128-cbc':
+ case 'twofish128-ctr':
+ return 16;
+ case '3des-cbc':
+ case '3des-ctr':
+ case 'aes192-cbc':
+ case 'aes192-ctr':
+ case 'twofish192-cbc':
+ case 'twofish192-ctr':
+ return 24;
+ case 'aes256-cbc':
+ case 'aes256-ctr':
+ case 'arcfour256':
+ case 'twofish-cbc':
+ case 'twofish256-cbc':
+ case 'twofish256-ctr':
+ return 32;
+ }
+ return null;
+ }
+
+ /**
* Login
*
* The $password parameter can be a plaintext password, a Crypt_RSA object or an array
*
- * @param String $username
- * @param Mixed $password
- * @param Mixed $...
- * @return Boolean
- * @see _login
+ * @param string $username
+ * @param mixed $password
+ * @param mixed $...
+ * @return bool
+ * @see self::_login()
* @access public
*/
function login($username)
@@ -1989,11 +1954,11 @@ class Net_SSH2 /**
* Login Helper
*
- * @param String $username
- * @param Mixed $password
- * @param Mixed $...
- * @return Boolean
- * @see _login_helper
+ * @param string $username
+ * @param mixed $password
+ * @param mixed $...
+ * @return bool
+ * @see self::_login_helper()
* @access private
*/
function _login($username)
@@ -2020,9 +1985,9 @@ class Net_SSH2 /**
* Login Helper
*
- * @param String $username
- * @param optional String $password
- * @return Boolean
+ * @param string $username
+ * @param string $password
+ * @return bool
* @access private
* @internal It might be worthwhile, at some point, to protect against {@link http://tools.ietf.org/html/rfc4251#section-9.3.9 traffic analysis}
* by sending dummy SSH_MSG_IGNORE messages.
@@ -2198,9 +2163,9 @@ class Net_SSH2 *
* See {@link http://tools.ietf.org/html/rfc4256 RFC4256} for details. This is not a full-featured keyboard-interactive authenticator.
*
- * @param String $username
- * @param String $password
- * @return Boolean
+ * @param string $username
+ * @param string $password
+ * @return bool
* @access private
*/
function _keyboard_interactive_login($username, $password)
@@ -2230,8 +2195,8 @@ class Net_SSH2 /**
* Handle the keyboard-interactive requests / responses.
*
- * @param String $responses...
- * @return Boolean
+ * @param string $responses...
+ * @return bool
* @access private
*/
function _keyboard_interactive_process()
@@ -2344,9 +2309,9 @@ class Net_SSH2 /**
* Login with an ssh-agent provided key
*
- * @param String $username
+ * @param string $username
* @param System_SSH_Agent $agent
- * @return Boolean
+ * @return bool
* @access private
*/
function _ssh_agent_login($username, $agent)
@@ -2365,9 +2330,9 @@ class Net_SSH2 /**
* Login with an RSA private key
*
- * @param String $username
+ * @param string $username
* @param Crypt_RSA $password
- * @return Boolean
+ * @return bool
* @access private
* @internal It might be worthwhile, at some point, to protect against {@link http://tools.ietf.org/html/rfc4251#section-9.3.9 traffic analysis}
* by sending dummy SSH_MSG_IGNORE messages.
@@ -2472,7 +2437,7 @@ class Net_SSH2 * $ssh->exec('ping 127.0.0.1'); on a Linux host will never return and will run indefinitely. setTimeout() makes it so it'll timeout.
* Setting $timeout to false or 0 will mean there is no timeout.
*
- * @param Mixed $timeout
+ * @param mixed $timeout
* @access public
*/
function setTimeout($timeout)
@@ -2496,9 +2461,9 @@ class Net_SSH2 * If $callback is set to false then Net_SSH2::_get_channel_packet(NET_SSH2_CHANNEL_EXEC) will need to be called manually.
* In all likelihood, this is not a feature you want to be taking advantage of.
*
- * @param String $command
- * @param optional Callback $callback
- * @return String
+ * @param string $command
+ * @param Callback $callback
+ * @return string
* @access public
*/
function exec($command, $callback = null)
@@ -2644,9 +2609,9 @@ class Net_SSH2 /**
* Creates an interactive shell
*
- * @see Net_SSH2::read()
- * @see Net_SSH2::write()
- * @return Boolean
+ * @see self::read()
+ * @see self::write()
+ * @return bool
* @access private
*/
function _initShell()
@@ -2748,9 +2713,9 @@ class Net_SSH2 /**
* Return the channel to be used with read() / write()
*
- * @see Net_SSH2::read()
- * @see Net_SSH2::write()
- * @return Integer
+ * @see self::read()
+ * @see self::write()
+ * @return int
* @access public
*/
function _get_interactive_channel()
@@ -2768,7 +2733,7 @@ class Net_SSH2 /**
* Return an available open channel
*
- * @return Integer
+ * @return int
* @access public
*/
function _get_open_channel()
@@ -2789,10 +2754,10 @@ class Net_SSH2 * Returns when there's a match for $expect, which can take the form of a string literal or,
* if $mode == NET_SSH2_READ_REGEX, a regular expression.
*
- * @see Net_SSH2::write()
- * @param String $expect
- * @param Integer $mode
- * @return String
+ * @see self::write()
+ * @param string $expect
+ * @param int $mode
+ * @return string
* @access public
*/
function read($expect = '', $mode = NET_SSH2_READ_SIMPLE)
@@ -2835,9 +2800,9 @@ class Net_SSH2 /**
* Inputs a command into an interactive shell.
*
- * @see Net_SSH2::read()
- * @param String $cmd
- * @return Boolean
+ * @see self::read()
+ * @param string $cmd
+ * @return bool
* @access public
*/
function write($cmd)
@@ -2864,9 +2829,9 @@ class Net_SSH2 * returns that and then that that was passed into stopSubsystem() but that'll be saved for a future date and implemented
* if there's sufficient demand for such a feature.
*
- * @see Net_SSH2::stopSubsystem()
- * @param String $subsystem
- * @return Boolean
+ * @see self::stopSubsystem()
+ * @param string $subsystem
+ * @return bool
* @access public
*/
function startSubsystem($subsystem)
@@ -2927,8 +2892,8 @@ class Net_SSH2 /**
* Stops a subsystem.
*
- * @see Net_SSH2::startSubsystem()
- * @return Boolean
+ * @see self::startSubsystem()
+ * @return bool
* @access public
*/
function stopSubsystem()
@@ -2991,7 +2956,7 @@ class Net_SSH2 /**
* Is the connection still active?
*
- * @return boolean
+ * @return bool
* @access public
*/
function isConnected()
@@ -3000,12 +2965,23 @@ class Net_SSH2 }
/**
+ * Have you successfully been logged in?
+ *
+ * @return bool
+ * @access public
+ */
+ function isAuthenticated()
+ {
+ return (bool) ($this->bitmap & NET_SSH2_MASK_LOGIN);
+ }
+
+ /**
* Gets Binary Packets
*
* See '6. Binary Packet Protocol' of rfc4253 for more info.
*
- * @see Net_SSH2::_send_binary_packet()
- * @return String
+ * @see self::_send_binary_packet()
+ * @return string
* @access private
*/
function _get_binary_packet()
@@ -3097,8 +3073,8 @@ class Net_SSH2 *
* Because some binary packets need to be ignored...
*
- * @see Net_SSH2::_get_binary_packet()
- * @return String
+ * @see self::_get_binary_packet()
+ * @return string
* @access private
*/
function _filter($payload)
@@ -3246,11 +3222,11 @@ class Net_SSH2 /**
* Returns whether Quiet Mode is enabled or not
*
- * @see Net_SSH2::enableQuietMode()
- * @see Net_SSH2::disableQuietMode()
+ * @see self::enableQuietMode()
+ * @see self::disableQuietMode()
*
* @access public
- * @return boolean
+ * @return bool
*/
function isQuietModeEnabled()
{
@@ -3280,11 +3256,11 @@ class Net_SSH2 /**
* Returns whether request-pty is enabled or not
*
- * @see Net_SSH2::enablePTY()
- * @see Net_SSH2::disablePTY()
+ * @see self::enablePTY()
+ * @see self::disablePTY()
*
* @access public
- * @return boolean
+ * @return bool
*/
function isPTYEnabled()
{
@@ -3297,7 +3273,7 @@ class Net_SSH2 * Returns the data as a string if it's available and false if not.
*
* @param $client_channel
- * @return Mixed
+ * @return mixed
* @access private
*/
function _get_channel_packet($client_channel, $skip_extended = false)
@@ -3512,10 +3488,10 @@ class Net_SSH2 *
* See '6. Binary Packet Protocol' of rfc4253 for more info.
*
- * @param String $data
- * @param optional String $logged
- * @see Net_SSH2::_get_binary_packet()
- * @return Boolean
+ * @param string $data
+ * @param string $logged
+ * @see self::_get_binary_packet()
+ * @return bool
* @access private
*/
function _send_binary_packet($data, $logged = null)
@@ -3573,7 +3549,7 @@ class Net_SSH2 *
* Makes sure that only the last 1MB worth of packets will be logged
*
- * @param String $data
+ * @param string $data
* @access private
*/
function _append_log($message_number, $message)
@@ -3649,9 +3625,9 @@ class Net_SSH2 *
* Spans multiple SSH_MSG_CHANNEL_DATAs if appropriate
*
- * @param Integer $client_channel
- * @param String $data
- * @return Boolean
+ * @param int $client_channel
+ * @param string $data
+ * @return bool
* @access private
*/
function _send_channel_packet($client_channel, $data)
@@ -3697,9 +3673,9 @@ class Net_SSH2 * and for SFTP channels are presumably closed when the client disconnects. This functions is intended
* for SCP more than anything.
*
- * @param Integer $client_channel
- * @param Boolean $want_reply
- * @return Boolean
+ * @param int $client_channel
+ * @param bool $want_reply
+ * @return bool
* @access private
*/
function _close_channel($client_channel, $want_reply = false)
@@ -3731,8 +3707,8 @@ class Net_SSH2 /**
* Disconnect
*
- * @param Integer $reason
- * @return Boolean
+ * @param int $reason
+ * @return bool
* @access private
*/
function _disconnect($reason)
@@ -3751,9 +3727,9 @@ class Net_SSH2 *
* Inspired by array_shift
*
- * @param String $string
- * @param optional Integer $index
- * @return String
+ * @param string $string
+ * @param int $index
+ * @return string
* @access private
*/
function _string_shift(&$string, $index = 1)
@@ -3770,7 +3746,7 @@ class Net_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 array $array
* @access private
*/
function _define_array()
@@ -3793,7 +3769,7 @@ class Net_SSH2 * Returns a string if NET_SSH2_LOGGING == NET_SSH2_LOG_COMPLEX, an array if NET_SSH2_LOGGING == NET_SSH2_LOG_SIMPLE and false if !defined('NET_SSH2_LOGGING')
*
* @access public
- * @return String or Array
+ * @return array|false|string
*/
function getLog()
{
@@ -3816,10 +3792,10 @@ class Net_SSH2 /**
* Formats a log for printing
*
- * @param Array $message_log
- * @param Array $message_number_log
+ * @param array $message_log
+ * @param array $message_number_log
* @access private
- * @return String
+ * @return string
*/
function _format_log($message_log, $message_number_log)
{
@@ -3852,9 +3828,9 @@ class Net_SSH2 *
* For use with preg_replace_callback()
*
- * @param Array $matches
+ * @param array $matches
* @access private
- * @return String
+ * @return string
*/
function _format_log_helper($matches)
{
@@ -3878,9 +3854,28 @@ class Net_SSH2 }
/**
+ * Returns the first value of the intersection of two arrays or false if
+ * the intersection is empty. The order is defined by the first parameter.
+ *
+ * @param array $array1
+ * @param array $array2
+ * @return mixed False if intersection is empty, else intersected value.
+ * @access private
+ */
+ function _array_intersect_first($array1, $array2)
+ {
+ foreach ($array1 as $value) {
+ if (in_array($value, $array2)) {
+ return $value;
+ }
+ }
+ return false;
+ }
+
+ /**
* Returns all errors
*
- * @return String
+ * @return string
* @access public
*/
function getErrors()
@@ -3891,18 +3886,22 @@ class Net_SSH2 /**
* Returns the last error
*
- * @return String
+ * @return string
* @access public
*/
function getLastError()
{
- return $this->errors[count($this->errors) - 1];
+ $count = count($this->errors);
+
+ if ($count > 0) {
+ return $this->errors[$count - 1];
+ }
}
/**
* Return the server identification.
*
- * @return String
+ * @return string
* @access public
*/
function getServerIdentification()
@@ -3915,7 +3914,7 @@ class Net_SSH2 /**
* Return a list of the key exchange algorithms the server supports.
*
- * @return Array
+ * @return array
* @access public
*/
function getKexAlgorithms()
@@ -3928,7 +3927,7 @@ class Net_SSH2 /**
* Return a list of the host key (public key) algorithms the server supports.
*
- * @return Array
+ * @return array
* @access public
*/
function getServerHostKeyAlgorithms()
@@ -3941,7 +3940,7 @@ class Net_SSH2 /**
* Return a list of the (symmetric key) encryption algorithms the server supports, when receiving stuff from the client.
*
- * @return Array
+ * @return array
* @access public
*/
function getEncryptionAlgorithmsClient2Server()
@@ -3954,7 +3953,7 @@ class Net_SSH2 /**
* Return a list of the (symmetric key) encryption algorithms the server supports, when sending stuff to the client.
*
- * @return Array
+ * @return array
* @access public
*/
function getEncryptionAlgorithmsServer2Client()
@@ -3967,7 +3966,7 @@ class Net_SSH2 /**
* Return a list of the MAC algorithms the server supports, when receiving stuff from the client.
*
- * @return Array
+ * @return array
* @access public
*/
function getMACAlgorithmsClient2Server()
@@ -3980,7 +3979,7 @@ class Net_SSH2 /**
* Return a list of the MAC algorithms the server supports, when sending stuff to the client.
*
- * @return Array
+ * @return array
* @access public
*/
function getMACAlgorithmsServer2Client()
@@ -3993,7 +3992,7 @@ class Net_SSH2 /**
* Return a list of the compression algorithms the server supports, when receiving stuff from the client.
*
- * @return Array
+ * @return array
* @access public
*/
function getCompressionAlgorithmsClient2Server()
@@ -4006,7 +4005,7 @@ class Net_SSH2 /**
* Return a list of the compression algorithms the server supports, when sending stuff to the client.
*
- * @return Array
+ * @return array
* @access public
*/
function getCompressionAlgorithmsServer2Client()
@@ -4019,7 +4018,7 @@ class Net_SSH2 /**
* Return a list of the languages the server supports, when sending stuff to the client.
*
- * @return Array
+ * @return array
* @access public
*/
function getLanguagesServer2Client()
@@ -4032,7 +4031,7 @@ class Net_SSH2 /**
* Return a list of the languages the server supports, when receiving stuff from the client.
*
- * @return Array
+ * @return array
* @access public
*/
function getLanguagesClient2Server()
@@ -4048,7 +4047,7 @@ class Net_SSH2 * Quoting from the RFC, "in some jurisdictions, sending a warning message before
* authentication may be relevant for getting legal protection."
*
- * @return String
+ * @return string
* @access public
*/
function getBannerMessage()
@@ -4062,7 +4061,7 @@ class Net_SSH2 * Caching this the first time you connect to a server and checking the result on subsequent connections
* is recommended. Returns false if the server signature is not signed correctly with the public host key.
*
- * @return Mixed
+ * @return mixed
* @access public
*/
function getServerPublicHostKey()
@@ -4207,7 +4206,7 @@ class Net_SSH2 /**
* Returns the exit status of an SSH command or false.
*
- * @return Integer or false
+ * @return false|int
* @access public
*/
function getExitStatus()
@@ -4221,7 +4220,7 @@ class Net_SSH2 /**
* Returns the number of columns for the terminal window size.
*
- * @return Integer
+ * @return int
* @access public
*/
function getWindowColumns()
@@ -4232,7 +4231,7 @@ class Net_SSH2 /**
* Returns the number of rows for the terminal window size.
*
- * @return Integer
+ * @return int
* @access public
*/
function getWindowRows()
@@ -4243,7 +4242,7 @@ class Net_SSH2 /**
* Sets the number of columns for the terminal window size.
*
- * @param Integer $value
+ * @param int $value
* @access public
*/
function setWindowColumns($value)
@@ -4254,7 +4253,7 @@ class Net_SSH2 /**
* Sets the number of rows for the terminal window size.
*
- * @param Integer $value
+ * @param int $value
* @access public
*/
function setWindowRows($value)
@@ -4265,8 +4264,8 @@ class Net_SSH2 /**
* Sets the number of columns and rows for the terminal window size.
*
- * @param Integer $columns
- * @param Integer $rows
+ * @param int $columns
+ * @param int $rows
* @access public
*/
function setWindowSize($columns = 80, $rows = 24)
diff --git a/libs/phpseclib-1.0.0/System/SSH/Agent.php b/libs/phpseclib-1.0.1/System/SSH/Agent.php index f831f59..d5ed548 100644 --- a/libs/phpseclib-1.0.0/System/SSH/Agent.php +++ b/libs/phpseclib-1.0.1/System/SSH/Agent.php @@ -101,32 +101,32 @@ class System_SSH_Agent_Identity *
* @var Crypt_RSA
* @access private
- * @see System_SSH_Agent_Identity::getPublicKey()
+ * @see self::getPublicKey()
*/
var $key;
/**
* Key Blob
*
- * @var String
+ * @var string
* @access private
- * @see System_SSH_Agent_Identity::sign()
+ * @see self::sign()
*/
var $key_blob;
/**
* Socket Resource
*
- * @var Resource
+ * @var resource
* @access private
- * @see System_SSH_Agent_Identity::sign()
+ * @see self::sign()
*/
var $fsock;
/**
* Default Constructor.
*
- * @param Resource $fsock
+ * @param resource $fsock
* @return System_SSH_Agent_Identity
* @access private
*/
@@ -155,7 +155,7 @@ class System_SSH_Agent_Identity * Called by System_SSH_Agent::requestIdentities(). The key blob could be extracted from $this->key
* but this saves a small amount of computation.
*
- * @param String $key_blob
+ * @param string $key_blob
* @access private
*/
function setPublicKeyBlob($key_blob)
@@ -168,8 +168,8 @@ class System_SSH_Agent_Identity *
* Wrapper for $this->key->getPublicKey()
*
- * @param Integer $format optional
- * @return Mixed
+ * @param int $format optional
+ * @return mixed
* @access public
*/
function getPublicKey($format = null)
@@ -183,7 +183,7 @@ class System_SSH_Agent_Identity * Doesn't do anything as ssh-agent doesn't let you pick and choose the signature mode. ie.
* ssh-agent's only supported mode is CRYPT_RSA_SIGNATURE_PKCS1
*
- * @param Integer $mode
+ * @param int $mode
* @access public
*/
function setSignatureMode($mode)
@@ -195,8 +195,8 @@ class System_SSH_Agent_Identity *
* See "2.6.2 Protocol 2 private key signature request"
*
- * @param String $message
- * @return String
+ * @param string $message
+ * @return string
* @access public
*/
function sign($message)
@@ -235,7 +235,7 @@ class System_SSH_Agent /**
* Socket Resource
*
- * @var Resource
+ * @var resource
* @access private
*/
var $fsock;
@@ -295,7 +295,7 @@ class System_SSH_Agent * See "2.5.2 Requesting a list of protocol 2 keys"
* Returns an array containing zero or more System_SSH_Agent_Identity objects
*
- * @return Array
+ * @return array
* @access public
*/
function requestIdentities()
@@ -321,7 +321,9 @@ class System_SSH_Agent $length = current(unpack('N', fread($this->fsock, 4)));
$key_blob = fread($this->fsock, $length);
$length = current(unpack('N', fread($this->fsock, 4)));
- $key_comment = fread($this->fsock, $length);
+ if ($length) {
+ $key_comment = fread($this->fsock, $length);
+ }
$length = current(unpack('N', substr($key_blob, 0, 4)));
$key_type = substr($key_blob, 4, $length);
switch ($key_type) {
@@ -354,7 +356,7 @@ class System_SSH_Agent * be requested when a channel is opened
*
* @param Net_SSH2 $ssh
- * @return Boolean
+ * @return bool
* @access public
*/
function startSSHForwarding($ssh)
@@ -368,7 +370,7 @@ class System_SSH_Agent * Request agent forwarding of remote server
*
* @param Net_SSH2 $ssh
- * @return Boolean
+ * @return bool
* @access private
*/
function _request_forwarding($ssh)
@@ -424,7 +426,7 @@ class System_SSH_Agent /**
* Forward data to SSH Agent and return data reply
*
- * @param String $data
+ * @param string $data
* @return data from SSH Agent
* @access private
*/
diff --git a/libs/phpseclib-1.0.0/System/SSH_Agent.php b/libs/phpseclib-1.0.1/System/SSH_Agent.php index 2800ea0..2800ea0 100644 --- a/libs/phpseclib-1.0.0/System/SSH_Agent.php +++ b/libs/phpseclib-1.0.1/System/SSH_Agent.php diff --git a/libs/phpseclib-1.0.0/openssl.cnf b/libs/phpseclib-1.0.1/openssl.cnf index 58a1261..58a1261 100644 --- a/libs/phpseclib-1.0.0/openssl.cnf +++ b/libs/phpseclib-1.0.1/openssl.cnf |