aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/vendor/phpseclib
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-07-27 10:05:23 +0200
committerCharles Cabergs <me@cacharle.xyz>2020-07-27 10:05:23 +0200
commit5bf66662a9bdd62c5bccab15e607cd95cfb8fcab (patch)
tree39a1a4629749056191c05dfd899f931701b7acf3 /srcs/phpmyadmin/vendor/phpseclib
parent5afd237bbd22028b85532b8c0b3fcead49a00764 (diff)
downloadft_server-5bf66662a9bdd62c5bccab15e607cd95cfb8fcab.tar.gz
ft_server-5bf66662a9bdd62c5bccab15e607cd95cfb8fcab.tar.bz2
ft_server-5bf66662a9bdd62c5bccab15e607cd95cfb8fcab.zip
Removed wordpress and phpmyadmin, my server doesn't handle it well and it brings shame on my famillyHEADmaster
Diffstat (limited to 'srcs/phpmyadmin/vendor/phpseclib')
-rw-r--r--srcs/phpmyadmin/vendor/phpseclib/phpseclib/AUTHORS6
-rw-r--r--srcs/phpmyadmin/vendor/phpseclib/phpseclib/BACKERS.md7
-rw-r--r--srcs/phpmyadmin/vendor/phpseclib/phpseclib/LICENSE20
-rw-r--r--srcs/phpmyadmin/vendor/phpseclib/phpseclib/README.md87
-rw-r--r--srcs/phpmyadmin/vendor/phpseclib/phpseclib/appveyor.yml27
-rw-r--r--srcs/phpmyadmin/vendor/phpseclib/phpseclib/composer.json76
-rw-r--r--srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php126
-rw-r--r--srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php2708
-rw-r--r--srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php274
-rw-r--r--srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php936
-rw-r--r--srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php16
-rw-r--r--srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/openssl.cnf6
12 files changed, 0 insertions, 4289 deletions
diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/AUTHORS b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/AUTHORS
deleted file mode 100644
index a08b309..0000000
--- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/AUTHORS
+++ /dev/null
@@ -1,6 +0,0 @@
-phpseclib Lead Developer: TerraFrost (Jim Wigginton)
-
-phpseclib Developers: monnerat (Patrick Monnerat)
- bantu (Andreas Fischer)
- petrich (Hans-Jürgen Petrich)
- GrahamCampbell (Graham Campbell)
diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/BACKERS.md b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/BACKERS.md
deleted file mode 100644
index e9f3784..0000000
--- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/BACKERS.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Backers
-
-phpseclib ongoing development is made possible by [Tidelift](https://tidelift.com/subscription/pkg/packagist-phpseclib-phpseclib?utm_source=packagist-phpseclib-phpseclib&utm_medium=referral&utm_campaign=readme) and by contributions by users like you. Thank you.
-
-## Backers
-
-- Zane Hooper \ No newline at end of file
diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/LICENSE b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/LICENSE
deleted file mode 100644
index e7214eb..0000000
--- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2011-2019 TerraFrost and other contributors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file
diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/README.md b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/README.md
deleted file mode 100644
index ce201c9..0000000
--- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/README.md
+++ /dev/null
@@ -1,87 +0,0 @@
-# phpseclib - PHP Secure Communications Library
-
-[![Build Status](https://travis-ci.org/phpseclib/phpseclib.svg?branch=2.0)](https://travis-ci.org/phpseclib/phpseclib)
-
-## Supporting phpseclib
-
-- [Become a backer or sponsor on Patreon](https://www.patreon.com/phpseclib)
-- [One-time donation via PayPal or crypto-currencies](http://sourceforge.net/donate/index.php?group_id=198487)
-- [Subscribe to Tidelift](https://tidelift.com/subscription/pkg/packagist-phpseclib-phpseclib?utm_source=packagist-phpseclib-phpseclib&utm_medium=referral&utm_campaign=readme)
-
-## Introduction
-
-MIT-licensed pure-PHP implementations of an arbitrary-precision integer
-arithmetic library, fully PKCS#1 (v2.1) compliant RSA, DES, 3DES, RC4, Rijndael,
-AES, Blowfish, Twofish, SSH-1, SSH-2, SFTP, and X.509
-
-* [Browse Git](https://github.com/phpseclib/phpseclib)
-* [Code Coverage Report](https://coverage.phpseclib.org/2.0/latest/)
-
-## Documentation
-
-* [Documentation / Manual](http://phpseclib.sourceforge.net/)
-* [API Documentation](https://api.phpseclib.org/2.0/) (generated by Sami)
-
-## Branches
-
-### master
-
-* Development Branch
-* Unstable API
-* Do not use in production
-
-### 2.0
-
-* Long term support (LTS) release
-* Modernized version of 1.0
-* Minimum PHP version: 5.3.3
-* PSR-4 autoloading with namespace rooted at `\phpseclib`
-* Install via Composer: `composer require phpseclib/phpseclib:~2.0`
-
-### 1.0
-
-* Long term support (LTS) release
-* PHP4 compatible
-* Composer compatible (PSR-0 autoloading)
-* Install using Composer: `composer require phpseclib/phpseclib:~1.0`
-* Install using PEAR: See [phpseclib PEAR Channel Documentation](http://phpseclib.sourceforge.net/pear.htm)
-* [Download 1.0.17 as ZIP](http://sourceforge.net/projects/phpseclib/files/phpseclib1.0.17.zip/download)
-
-## Security contact information
-
-To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.
-
-## Support
-
-Need Support?
-
-* [Checkout Questions and Answers on Stack Overflow](http://stackoverflow.com/questions/tagged/phpseclib)
-* [Create a Support Ticket on GitHub](https://github.com/phpseclib/phpseclib/issues/new)
-* [Browse the Support Forum](http://www.frostjedi.com/phpbb/viewforum.php?f=46) (no longer in use)
-
-## Contributing
-
-1. Fork the Project
-
-2. Ensure you have Composer installed (see [Composer Download Instructions](https://getcomposer.org/download/))
-
-3. Install Development Dependencies
-
- ``` sh
- composer install
- ```
-
-4. Create a Feature Branch
-
-5. (Recommended) Run the Test Suite
-
- ``` sh
- vendor/bin/phpunit
- ```
-6. (Recommended) Check whether your code conforms to our Coding Standards by running
-
- ``` sh
- vendor/bin/phing -f build/build.xml sniff
- ```
-
-7. Send us a Pull Request
diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/appveyor.yml b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/appveyor.yml
deleted file mode 100644
index 210a903..0000000
--- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/appveyor.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-build: false
-shallow_clone: false
-platform:
- - x86
- - x64
-clone_folder: C:\projects\phpseclib
-
-install:
- - cinst -y OpenSSL.Light
- - SET PATH=C:\Program Files\OpenSSL;%PATH%
- - sc config wuauserv start= auto
- - net start wuauserv
- - cinst -y php --version 5.6.30
- - cd c:\tools\php56
- - copy php.ini-production php.ini
- - echo date.timezone="UTC" >> php.ini
- - echo extension_dir=ext >> php.ini
- - echo extension=php_openssl.dll >> php.ini
- - echo extension=php_gmp.dll >> php.ini
- - cd C:\projects\phpseclib
- - SET PATH=C:\tools\php56;%PATH%
- - php.exe -r "readfile('http://getcomposer.org/installer');" | php.exe
- - php.exe composer.phar install --prefer-source --no-interaction
-
-test_script:
- - cd C:\projects\phpseclib
- - vendor\bin\phpunit.bat tests/Windows32Test.php \ No newline at end of file
diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/composer.json b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/composer.json
deleted file mode 100644
index b4e8a1c..0000000
--- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/composer.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "name": "phpseclib/phpseclib",
- "type": "library",
- "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
- "keywords": [
- "security",
- "crypto",
- "cryptography",
- "encryption",
- "signature",
- "signing",
- "rsa",
- "aes",
- "blowfish",
- "twofish",
- "ssh",
- "sftp",
- "x509",
- "x.509",
- "asn1",
- "asn.1",
- "BigInteger"
- ],
- "homepage": "http://phpseclib.sourceforge.net",
- "license": "MIT",
- "authors": [
- {
- "name": "Jim Wigginton",
- "email": "terrafrost@php.net",
- "role": "Lead Developer"
- },
- {
- "name": "Patrick Monnerat",
- "email": "pm@datasphere.ch",
- "role": "Developer"
- },
- {
- "name": "Andreas Fischer",
- "email": "bantu@phpbb.com",
- "role": "Developer"
- },
- {
- "name": "Hans-Jürgen Petrich",
- "email": "petrich@tronic-media.com",
- "role": "Developer"
- },
- {
- "name": "Graham Campbell",
- "email": "graham@alt-three.com",
- "role": "Developer"
- }
- ],
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phing/phing": "~2.7",
- "phpunit/phpunit": "^4.8.35|^5.7|^6.0",
- "sami/sami": "~2.0",
- "squizlabs/php_codesniffer": "~2.0"
- },
- "suggest": {
- "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
- "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations.",
- "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
- "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations."
- },
- "autoload": {
- "files": [
- "phpseclib/bootstrap.php"
- ],
- "psr-4": {
- "phpseclib\\": "phpseclib/"
- }
- }
-}
diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php
deleted file mode 100644
index 7d8cb8b..0000000
--- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-
-/**
- * Pure-PHP implementation of AES.
- *
- * Uses mcrypt, if available/possible, and an internal implementation, otherwise.
- *
- * PHP version 5
- *
- * NOTE: Since AES.php is (for compatibility and phpseclib-historical reasons) virtually
- * just a wrapper to Rijndael.php you may consider using Rijndael.php instead of
- * to save one include_once().
- *
- * 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 \phpseclib\Crypt\AES extends \phpseclib\Crypt\Rijndael, some functions are available to be called that, in the context of AES, don't
- * 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:
- * <code>
- * <?php
- * include 'vendor/autoload.php';
- *
- * $aes = new \phpseclib\Crypt\AES();
- *
- * $aes->setKey('abcdefghijklmnop');
- *
- * $size = 10 * 1024;
- * $plaintext = '';
- * for ($i = 0; $i < $size; $i++) {
- * $plaintext.= 'a';
- * }
- *
- * echo $aes->decrypt($aes->encrypt($plaintext));
- * ?>
- * </code>
- *
- * @category Crypt
- * @package AES
- * @author Jim Wigginton <terrafrost@php.net>
- * @copyright 2008 Jim Wigginton
- * @license http://www.opensource.org/licenses/mit-license.html MIT License
- * @link http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Crypt;
-
-/**
- * Pure-PHP implementation of AES.
- *
- * @package AES
- * @author Jim Wigginton <terrafrost@php.net>
- * @access public
- */
-class AES extends Rijndael
-{
- /**
- * Dummy function
- *
- * Since \phpseclib\Crypt\AES extends \phpseclib\Crypt\Rijndael, this function is, technically, available, but it doesn't do anything.
- *
- * @see \phpseclib\Crypt\Rijndael::setBlockLength()
- * @access public
- * @param int $length
- */
- function setBlockLength($length)
- {
- return;
- }
-
- /**
- * Sets the key length
- *
- * Valid key lengths are 128, 192, and 256. If the length is less than 128, it will be rounded up to
- * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount.
- *
- * @see \phpseclib\Crypt\Rijndael:setKeyLength()
- * @access public
- * @param int $length
- */
- function setKeyLength($length)
- {
- switch ($length) {
- case 160:
- $length = 192;
- break;
- case 224:
- $length = 256;
- }
- parent::setKeyLength($length);
- }
-
- /**
- * Sets the key.
- *
- * Rijndael supports five different key lengths, AES only supports three.
- *
- * @see \phpseclib\Crypt\Rijndael:setKey()
- * @see setKeyLength()
- * @access public
- * @param string $key
- */
- function setKey($key)
- {
- parent::setKey($key);
-
- if (!$this->explicit_key_length) {
- $length = strlen($key);
- switch (true) {
- case $length <= 16:
- $this->key_length = 16;
- break;
- case $length <= 24:
- $this->key_length = 24;
- break;
- default:
- $this->key_length = 32;
- }
- $this->_setEngine();
- }
- }
-}
diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php
deleted file mode 100644
index 03b176e..0000000
--- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php
+++ /dev/null
@@ -1,2708 +0,0 @@
-<?php
-
-/**
- * Base Class for all \phpseclib\Crypt\* cipher classes
- *
- * PHP version 5
- *
- * Internally for phpseclib developers:
- * If you plan to add a new cipher class, please note following rules:
- *
- * - The new \phpseclib\Crypt\* cipher class should extend \phpseclib\Crypt\Base
- *
- * - Following methods are then required to be overridden/overloaded:
- *
- * - _encryptBlock()
- *
- * - _decryptBlock()
- *
- * - _setupKey()
- *
- * - All other methods are optional to be overridden/overloaded
- *
- * - Look at the source code of the current ciphers how they extend \phpseclib\Crypt\Base
- * and take one of them as a start up for the new cipher class.
- *
- * - Please read all the other comments/notes/hints here also for each class var/method
- *
- * @category Crypt
- * @package Base
- * @author Jim Wigginton <terrafrost@php.net>
- * @author Hans-Juergen Petrich <petrich@tronic-media.com>
- * @copyright 2007 Jim Wigginton
- * @license http://www.opensource.org/licenses/mit-license.html MIT License
- * @link http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Crypt;
-
-/**
- * Base Class for all \phpseclib\Crypt\* cipher classes
- *
- * @package Base
- * @author Jim Wigginton <terrafrost@php.net>
- * @author Hans-Juergen Petrich <petrich@tronic-media.com>
- */
-abstract class Base
-{
- /**#@+
- * @access public
- * @see \phpseclib\Crypt\Base::encrypt()
- * @see \phpseclib\Crypt\Base::decrypt()
- */
- /**
- * Encrypt / decrypt using the Counter mode.
- *
- * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode.
- *
- * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29
- */
- const MODE_CTR = -1;
- /**
- * Encrypt / decrypt using the Electronic Code Book mode.
- *
- * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29
- */
- const MODE_ECB = 1;
- /**
- * Encrypt / decrypt using the Code Book Chaining mode.
- *
- * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29
- */
- const MODE_CBC = 2;
- /**
- * Encrypt / decrypt using the Cipher Feedback mode.
- *
- * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29
- */
- const MODE_CFB = 3;
- /**
- * Encrypt / decrypt using the Cipher Feedback mode (8bit)
- */
- const MODE_CFB8 = 38;
- /**
- * Encrypt / decrypt using the Output Feedback mode.
- *
- * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29
- */
- const MODE_OFB = 4;
- /**
- * Encrypt / decrypt using streaming mode.
- */
- const MODE_STREAM = 5;
- /**#@-*/
-
- /**
- * Whirlpool available flag
- *
- * @see \phpseclib\Crypt\Base::_hashInlineCryptFunction()
- * @var bool
- * @access private
- */
- static $WHIRLPOOL_AVAILABLE;
-
- /**#@+
- * @access private
- * @see \phpseclib\Crypt\Base::__construct()
- */
- /**
- * Base value for the internal implementation $engine switch
- */
- const ENGINE_INTERNAL = 1;
- /**
- * Base value for the mcrypt implementation $engine switch
- */
- const ENGINE_MCRYPT = 2;
- /**
- * Base value for the mcrypt implementation $engine switch
- */
- const ENGINE_OPENSSL = 3;
- /**#@-*/
-
- /**
- * The Encryption Mode
- *
- * @see self::__construct()
- * @var int
- * @access private
- */
- var $mode;
-
- /**
- * The Block Length of the block cipher
- *
- * @var int
- * @access private
- */
- var $block_size = 16;
-
- /**
- * The Key
- *
- * @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";
-
- /**
- * The Initialization Vector
- *
- * @see self::setIV()
- * @var string
- * @access private
- */
- var $iv;
-
- /**
- * A "sliding" Initialization Vector
- *
- * @see self::enableContinuousBuffer()
- * @see self::_clearBuffers()
- * @var string
- * @access private
- */
- var $encryptIV;
-
- /**
- * A "sliding" Initialization Vector
- *
- * @see self::enableContinuousBuffer()
- * @see self::_clearBuffers()
- * @var string
- * @access private
- */
- var $decryptIV;
-
- /**
- * Continuous Buffer status
- *
- * @see self::enableContinuousBuffer()
- * @var bool
- * @access private
- */
- var $continuousBuffer = false;
-
- /**
- * Encryption buffer for CTR, OFB and CFB modes
- *
- * @see self::encrypt()
- * @see self::_clearBuffers()
- * @var array
- * @access private
- */
- var $enbuffer;
-
- /**
- * Decryption buffer for CTR, OFB and CFB modes
- *
- * @see self::decrypt()
- * @see self::_clearBuffers()
- * @var array
- * @access private
- */
- var $debuffer;
-
- /**
- * mcrypt resource for encryption
- *
- * 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 self::encrypt()
- * @var resource
- * @access private
- */
- var $enmcrypt;
-
- /**
- * mcrypt resource for decryption
- *
- * 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 self::decrypt()
- * @var resource
- * @access private
- */
- var $demcrypt;
-
- /**
- * Does the enmcrypt resource need to be (re)initialized?
- *
- * @see \phpseclib\Crypt\Twofish::setKey()
- * @see \phpseclib\Crypt\Twofish::setIV()
- * @var bool
- * @access private
- */
- var $enchanged = true;
-
- /**
- * Does the demcrypt resource need to be (re)initialized?
- *
- * @see \phpseclib\Crypt\Twofish::setKey()
- * @see \phpseclib\Crypt\Twofish::setIV()
- * @var bool
- * @access private
- */
- var $dechanged = true;
-
- /**
- * mcrypt resource for CFB mode
- *
- * mcrypt's CFB mode, in (and only in) buffered context,
- * is broken, so phpseclib implements the CFB mode by it self,
- * even when the mcrypt php extension is available.
- *
- * In order to do the CFB-mode work (fast) phpseclib
- * use a separate ECB-mode mcrypt resource.
- *
- * @link http://phpseclib.sourceforge.net/cfb-demo.phps
- * @see self::encrypt()
- * @see self::decrypt()
- * @see self::_setupMcrypt()
- * @var resource
- * @access private
- */
- var $ecb;
-
- /**
- * Optimizing value while CFB-encrypting
- *
- * Only relevant if $continuousBuffer enabled
- * and $engine == self::ENGINE_MCRYPT
- *
- * It's faster to re-init $enmcrypt if
- * $buffer bytes > $cfb_init_len than
- * using the $ecb resource furthermore.
- *
- * This value depends of the chosen cipher
- * and the time it would be needed for it's
- * initialization [by mcrypt_generic_init()]
- * which, typically, depends on the complexity
- * on its internaly Key-expanding algorithm.
- *
- * @see self::encrypt()
- * @var int
- * @access private
- */
- var $cfb_init_len = 600;
-
- /**
- * Does internal cipher state need to be (re)initialized?
- *
- * @see self::setKey()
- * @see self::setIV()
- * @see self::disableContinuousBuffer()
- * @var bool
- * @access private
- */
- var $changed = true;
-
- /**
- * Padding status
- *
- * @see self::enablePadding()
- * @var bool
- * @access private
- */
- var $padding = true;
-
- /**
- * Is the mode one that is paddable?
- *
- * @see self::__construct()
- * @var bool
- * @access private
- */
- var $paddable = false;
-
- /**
- * Holds which crypt engine internaly should be use,
- * which will be determined automatically on __construct()
- *
- * Currently available $engines are:
- * - self::ENGINE_OPENSSL (very fast, php-extension: openssl, extension_loaded('openssl') required)
- * - self::ENGINE_MCRYPT (fast, php-extension: mcrypt, extension_loaded('mcrypt') required)
- * - self::ENGINE_INTERNAL (slower, pure php-engine, no php-extension required)
- *
- * @see self::_setEngine()
- * @see self::encrypt()
- * @see self::decrypt()
- * @var int
- * @access private
- */
- var $engine;
-
- /**
- * Holds the preferred crypt engine
- *
- * @see self::_setEngine()
- * @see self::setPreferredEngine()
- * @var int
- * @access private
- */
- var $preferredEngine;
-
- /**
- * The mcrypt specific name of the cipher
- *
- * Only used if $engine == self::ENGINE_MCRYPT
- *
- * @link http://www.php.net/mcrypt_module_open
- * @link http://www.php.net/mcrypt_list_algorithms
- * @see self::_setupMcrypt()
- * @var string
- * @access private
- */
- var $cipher_name_mcrypt;
-
- /**
- * The openssl specific name of the cipher
- *
- * Only used if $engine == self::ENGINE_OPENSSL
- *
- * @link http://www.php.net/openssl-get-cipher-methods
- * @var string
- * @access private
- */
- var $cipher_name_openssl;
-
- /**
- * The openssl specific name of the cipher in ECB mode
- *
- * If OpenSSL does not support the mode we're trying to use (CTR)
- * it can still be emulated with ECB mode.
- *
- * @link http://www.php.net/openssl-get-cipher-methods
- * @var string
- * @access private
- */
- var $cipher_name_openssl_ecb;
-
- /**
- * The default salt used by setPassword()
- *
- * @see self::setPassword()
- * @var string
- * @access private
- */
- var $password_default_salt = 'phpseclib/salt';
-
- /**
- * The name of the performance-optimized callback function
- *
- * Used by encrypt() / decrypt()
- * only if $engine == self::ENGINE_INTERNAL
- *
- * @see self::encrypt()
- * @see self::decrypt()
- * @see self::_setupInlineCrypt()
- * @see self::$use_inline_crypt
- * @var Callback
- * @access private
- */
- var $inline_crypt;
-
- /**
- * Holds whether performance-optimized $inline_crypt() can/should be used.
- *
- * @see self::encrypt()
- * @see self::decrypt()
- * @see self::inline_crypt
- * @var mixed
- * @access private
- */
- var $use_inline_crypt;
-
- /**
- * If OpenSSL can be used in ECB but not in CTR we can emulate CTR
- *
- * @see self::_openssl_ctr_process()
- * @var bool
- * @access private
- */
- var $openssl_emulate_ctr = false;
-
- /**
- * Determines what options are passed to openssl_encrypt/decrypt
- *
- * @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.
- *
- * $mode could be:
- *
- * - self::MODE_ECB
- *
- * - self::MODE_CBC
- *
- * - self::MODE_CTR
- *
- * - self::MODE_CFB
- *
- * - self::MODE_OFB
- *
- * If not explicitly set, self::MODE_CBC will be used.
- *
- * @param int $mode
- * @access public
- */
- function __construct($mode = self::MODE_CBC)
- {
- // $mode dependent settings
- switch ($mode) {
- case self::MODE_ECB:
- $this->paddable = true;
- $this->mode = self::MODE_ECB;
- break;
- case self::MODE_CTR:
- case self::MODE_CFB:
- case self::MODE_CFB8:
- case self::MODE_OFB:
- case self::MODE_STREAM:
- $this->mode = $mode;
- break;
- case self::MODE_CBC:
- default:
- $this->paddable = true;
- $this->mode = self::MODE_CBC;
- }
-
- $this->_setEngine();
-
- // Determining whether inline crypting can be used by the cipher
- if ($this->use_inline_crypt !== false) {
- $this->use_inline_crypt = version_compare(PHP_VERSION, '5.3.0') >= 0 || function_exists('create_function');
- }
- }
-
- /**
- * Sets the initialization vector. (optional)
- *
- * SetIV is not required when self::MODE_ECB (or ie for AES: \phpseclib\Crypt\AES::MODE_ECB) is being used. If not explicitly set, it'll be assumed
- * to be all zero's.
- *
- * @access public
- * @param string $iv
- * @internal Can be overwritten by a sub class, but does not have to be
- */
- function setIV($iv)
- {
- if ($this->mode == self::MODE_ECB) {
- return;
- }
-
- $this->iv = $iv;
- $this->changed = true;
- }
-
- /**
- * 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.
- * If the key not fits the length(s) of the cipher it will paded with null bytes
- * up to the closest valid key length. If the key is more than max length,
- * we trim the excess bits.
- *
- * If the key is not explicitly set, it'll be assumed to be all null bytes.
- *
- * @access public
- * @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();
- }
-
- /**
- * Sets the password.
- *
- * Depending on what $method is set to, setPassword()'s (optional) parameters are as follows:
- * {@link http://en.wikipedia.org/wiki/PBKDF2 pbkdf2} or pbkdf1:
- * $hash, $salt, $count, $dkLen
- *
- * Where $hash (default = sha1) currently supports the following hashes: see: Crypt/Hash.php
- *
- * @see Crypt/Hash.php
- * @param string $password
- * @param string $method
- * @return bool
- * @access public
- * @internal Could, but not must, extend by the child Crypt_* class
- */
- function setPassword($pa