1
0
mirror of https://github.com/danog/tgseclib.git synced 2024-12-02 09:37:45 +01:00
Commit Graph

137 Commits

Author SHA1 Message Date
Clint Nelissen
fe742e18d7 Namespaced Crypt Package 2014-12-16 16:16:54 -08:00
terrafrost
c5f74eb3a3 Merge branch 'master' of https://github.com/phpseclib/phpseclib into openssl-support 2014-12-13 14:15:34 -06:00
terrafrost
8d8c2693c5 Crypt: rm @version stuff 2014-12-13 14:13:24 -06:00
terrafrost
f5f9c3d409 Crypt: replace CRYPT_MODE_INTERNAL/MCRYPT/OPENSSL with CRYPT_ENGINE_* 2014-12-13 13:58:41 -06:00
Andreas Fischer
c4b103468c Merge pull request #549 from bantu/fix-547
Change copyright years from roman numeral to decimal numbers.

* bantu/fix-547:
  Change copyright years from roman numeral to decimal numbers.

Conflicts:
	phpseclib/System/SSH_Agent.php
2014-12-10 00:06:08 +01:00
Andreas Fischer
0efae5a91e Change copyright years from roman numeral to decimal numbers. 2014-12-10 00:04:08 +01:00
Clint Nelissen
0305a4827c Moved globally defined constants to class constants 2014-12-09 10:46:30 -08:00
Andreas Fischer
638e62d60a Remove LICENSE text from source code files. 2014-12-03 18:49:33 +01:00
terrafrost
866b690248 Crypt: CS adjustments 2014-11-29 09:52:14 -06:00
terrafrost
f6e0c4b506 Crypt: add OpenSSL support
aside from the addition of OpenSSL support a few other changes have been included:

- setEngine(), as added by petrich, is depricated (not that it was ever in trunk to begin with)
  it has been replaced with isValidEngine() and setPreferredEngine().
- replace _generate_xor() with increment_str()
  _increment_str() had extra functionality that wasn't being used. ie. it could concatenate
  multiple successive string increments to one another automatically. but not only was that
  functionality not used - it also made the function less versatile. _increment_str() can be
  used more easily for iterative brute forcing (for example)
- rename Crypt_Base::_stringShift to Crypt_Base::_string_shift (for consistency)
- more expansive unit test coverage
2014-11-29 07:39:21 -06:00
terrafrost
c8b55b8929 Rijndael: calling $rijndael->setEngine() didn't have any effect
(CRYPT_RIJNDAEL_MODE constant was always over-riding it)
2014-10-12 00:52:52 -05:00
terrafrost
beb3d0db79 Merge remote-tracking branch 'petrich/master' into petrich
Conflicts:
	phpseclib/Crypt/AES.php
	phpseclib/Crypt/Base.php
	phpseclib/Crypt/Blowfish.php
	phpseclib/Crypt/DES.php
	phpseclib/Crypt/RC2.php
	phpseclib/Crypt/RC4.php
	phpseclib/Crypt/Rijndael.php
	phpseclib/Crypt/TripleDES.php
	phpseclib/Crypt/Twofish.php
2014-10-11 22:56:32 -05:00
Andreas Fischer
6ba2b374e5 Merge branch 'master' into php5
* master:
  AES: don't do mcrypt unit tests if mcrypt extension is not available
  AES: a few final changes
  AES: set CRYPT_RIJNDAEL_MODE as well in unit tests
  AES: CS changes to unit tests
  AES: more unit test fixes
  AES: unit test updates
  AES: more unit test fixes
  AES: add new lines to end of unit tests
  AES: CS adjustments to unit tests
  AES: first attempt at unit tests for key padding
  Rijndael, AES: adjustments to what key sizes are and aren't allowed
2014-08-15 16:27:36 +02:00
terrafrost
35fd2888ea Rijndael, AES: adjustments to what key sizes are and aren't allowed 2014-08-13 09:56:49 -05:00
Andreas Fischer
67aedc240b Change constructors from class name to __construct().
This has been produced as follows:
<?php
$replace = $files = [];
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($argv[1]));
foreach ($it as $fileinfo) {
    if ($fileinfo->getExtension() === 'php') {
        $file = $fileinfo->getPathname();
        $content = file_get_contents($file);
        $files[$file] = $content;
        $tokens = token_get_all($content);
        foreach ($tokens as $key => $value) {
            if ($value[0] === T_CLASS) {
                $class = $tokens[$key + 2][1];
                $replace += array(
                    "$class::$class(" => "$class::__construct(",
                    "parent::$class(" => "parent::__construct(",
                    "function $class(" => "function __construct(",
                );
            }
        }
    }
}
foreach ($files as $file => $content) {
    file_put_contents(
        $file,
        str_replace(
            array_keys($replace),
            array_values($replace),
            $content
        )
    );
}
2014-06-16 17:06:34 +02:00
Andreas Fischer
d38886c2a9 Always correctly link to the constructor of Crypt_Base. 2014-06-16 16:42:18 +02:00
Andreas Fischer
91e78c2106 Remove unnecessary constructors. 2014-06-16 16:14:35 +02:00
Andreas Fischer
e6f87318f5 Adjust documentation to coding guidelines: No () around include. 2014-06-01 23:28:49 +02:00
Andreas Fischer
fb1296bbec Drop meaningless, outdated, inconsistent version tags in doc blocks.
find phpseclib -type f -name "*.php" -exec sed -i '/@version/d' {} \;
2014-03-11 15:58:33 +01:00
Veres Lajos
930a3fb4d2 typofixes - https://github.com/vlajos/misspell_fixer 2014-03-05 23:41:20 +00:00
Andreas Fischer
56f1ada5c1 CS: Each file MUST end with exactly one newline character 2014-02-10 14:51:35 +01:00
Hans-Jürgen Petrich
50f46959ed Ciphers: Adding setEngine() and some optimizations
Ciphers: Adding setEngine() and some optimizations
2014-01-31 06:13:14 +07:00
Andreas Fischer
f0f029b2c1 CS: Fix "PEAR.Commenting.ClassComment.WrongTagOrder" sniff. 2013-12-11 18:33:18 +01:00
Andreas Fischer
3db1fbb072 CS: Fix "PEAR.Commenting.FileComment.TagIndent" sniff. 2013-12-10 20:10:37 +01:00
Andreas Fischer
6d1fb9f7db CS: Fix "PEAR.Files.IncludingFile.UseIncludeOnce" sniff. 2013-12-06 01:03:34 +01:00
Andreas Fischer
bc6ff96292 Fix "PEAR.Files.IncludingFile.BracketsNotRequired" sniff. 2013-12-05 23:17:40 +01:00
Andreas Fischer
e09f1b730e CodeSniffer: Fix PEAR.Classes.ClassDeclaration.OpenBraceNewLine sniff. 2013-12-03 19:34:41 +01:00
Marc Philip Scholten
3bfd884813 Removed vim comments
Reformated files
2013-11-23 19:42:26 +01:00
Hans-Jürgen Petrich
89ea2da86b Crypt_*: CS and comments
- Crypt_* Some CS
- Crypt_Base: better comments for phpseclib developers
- Crypt_Base::_createInlineCryptFunction(): better namespace for
internal variables (all now prefixed with an underscore to avoid
conflicts)
2013-06-26 11:50:40 +07:00
terrafrost
7b3434c01f Merge remote-tracking branch 'origin/master' into Crypt_Base
Conflicts:
	phpseclib/Crypt/DES.php
	phpseclib/Crypt/RC4.php
2013-06-11 14:59:13 -05:00
Andreas Fischer
727dba5905 [remove-svn-version-lines] Remove useless @version: $Id$ lines.
These lines served some purpose on SVN, but are now useless on Git. They
actually do harm as they might make people think their files are older
than they actually are.
2013-06-02 18:50:46 +02:00
Hans-Jürgen Petrich
fb8d185804 Base/AES/Rijndael: Optimizations
- Base/Rijndael/AES: Comments updated.

- Base: removed __desctructor(). Re:
https://github.com/phpseclib/phpseclib/issues/107

- Base: setPassword() will use >= php-5.5's new (faster) hash_pbkdf2()
function if availalbe/possible. 100% compatible to the internal
implementation. Strong testet with all
hashes/iterations/lengths/ciphers.

- Rijndael: Runtime engine-switch: Will now use mcrypt (in case of
128/192/256-bit block/keys), if possible. Otherwise MODE_INTERNAL.

AES: Soucecode reducing. After all, now, AES.php is virtually nothing
other than a wrapper to Rijndael.php::new
Crypt_Rijndael()->setBlockLength(128). No different in speed or
functionality, but fixed block_size.
2013-06-02 16:21:32 +07:00
Hans-Jürgen Petrich
53276ba4a1 AES: inconsistencey with 160 / 224-bits keys
re: https://github.com/phpseclib/phpseclib/issues/110
2013-06-01 08:00:04 +07:00
Hans-Jürgen Petrich
35f1b8dc2b Method namings 2013-05-25 14:08:17 +07:00
Hans-Jürgen Petrich
5429504aee CS adjustment 2013-05-25 11:22:25 +07:00
Hans-Jürgen Petrich
995c09cb67 CS and method namings 2013-05-25 09:05:24 +07:00
Hans-Jürgen Petrich
55ff00cc35 Crypt_Base
Crypt_Base() implementation
2013-05-20 13:19:38 +07:00
Veres Lajos
dd2a4ddff2 typofixes 2013-05-08 15:34:07 +01:00
terrafrost
994c2c6c79 Rijndael, TripleDES: $block not defined in these either 2013-03-05 00:19:11 -06:00
terrafrost
c4b3288851 TripleDES, Rijndael: Fix overflow in OFB mode 2013-03-03 17:30:30 -06:00
Hans-Jürgen Petrich
eff0bb21c5 3DES/Rijndael/AES: Fix memory leak with CTR mode
Related to: https://github.com/phpseclib/phpseclib/issues/77
2013-03-03 17:26:41 +07:00
Hans-Jürgen Petrich
e90708297a Removed Debug function...
Removed Debug function...
2013-02-25 17:54:06 +07:00
Hans-Jürgen Petrich
afa5465e63 AES/Rijndael Performance Update [3]
Performance Update for AES/Rijndael
2013-02-25 12:19:51 +07:00
terrafrost
248e3bb085 Undo last commit 2013-01-30 08:37:50 -06:00
terrafrost
bfb04dcf4d Add __construct() constructor to make namespace'ing easier for those wishing to do it 2013-01-29 22:09:31 -06:00
terrafrost
6765cb3b2b Rijndael, AES: CS adjustments 2013-01-27 01:21:28 -06:00
Hans-Jürgen Petrich
c95b997fa7 Rijndael: Performance update
Performance update for Rijndael
2013-01-26 16:54:19 +07:00
Hans-Jürgen Petrich
d81563d6f3 Rijndael: little code optimizing
little code optimizing
2013-01-21 15:46:44 +07:00
terrafrost
d94f1b252d AES, DES, RC4, Rijndael, TripleDES: multiple changes
- apply petrich's TripleDES / CFB decrypt to AES and DES
- make DES use the updated _generate_xor
- correct a comment typo
2013-01-20 10:11:19 -06:00
terrafrost
76a24dc546 AES: $pos will always be 0 in the last if statement for CFB 2013-01-11 18:09:28 -06:00
terrafrost
e71fc97913 Revamp SSH1 logging and go back to using user_error
(_handle_error returned the line number in _handle_error - not the line number triggering the error)
2013-01-08 22:09:27 -06:00
terrafrost
fc2bf41588 Fix E_NOTICEs in the rewritten CFB mode 2013-01-06 19:08:36 -06:00
terrafrost
1626c0a3c7 CS adjustments to petrich's code and optimizations 2013-01-05 17:55:30 -06:00
Hans-Jürgen Petrich
d1f71cc5a7 Fixed CFB Decrypt(). Fixed OFB warnings
Fixed/rewritten: Decrypt() in CFB mode to work clean with enableContinuousBuffer()

Fixed: PHP's strlen(array()) warning in OFB mode,

Fixed: disableContinuousBuffer() clear's now also the $enbuffer/$debuffer arrays so that multiple calls to enable/disableContinuousBuffer() will work without old buffers
2013-01-05 16:23:35 +07:00
Hans-Jürgen Petrich
359e38b4d4 fixed corrupted decrypt() in CTR mode
$buffer['encrypted'] (which is always empty) should be $buffer['ciphertext'] or buffered stream will get corrupt...

Example:
define('CRYPT_AES_MODE',CRYPT_AES_MODE_INTERNAL);//in MODE_MCRYPT all is fine
$aes = new Crypt_AES(CRYPT_AES_MODE_CTR);
$aes->setKey(':-8');
$aes->enableContinuousBuffer();
$plaintext = ':-):-):-):-):-):-)';
for($i=0; $i<strlen($plaintext); $i++) {
 echo $aes->Decrypt($aes->Encrypt($plaintext[$i]));
}

Output:
:-):-):-):-):-):-(

Expected:
:-):-):-):-):-):-)


After Bugfix, output is:
:-):-):-):-):-):-)
2013-01-04 14:23:34 +07:00
terrafrost
61ad80fd64 More strlen() / empty() changes 2013-01-03 00:26:27 -06:00
terrafrost
9b4240c104 Use !empty('0') instead of strlen('0')
Thanks petrich!
2013-01-03 00:21:09 -06:00
terrafrost
3caaa91160 Replace user_error() with new _handle_error() function
To use exceptions do define('PHPSECLIB_USE_EXCEPTIONS', true).

To have the exceptions thrown by phpseclib be of a certain class define PHPSECLIB_EXCEPTION_CLASS.
2012-11-28 23:33:15 -06:00
terrafrost
dfe264594f Merge pull request #9 from bantu/feature/consistent-file-endings
[feature/consistent-file-endings] Remove ?> and make sure there is an empty line at the end of files.
2012-06-16 21:06:15 -07:00
terrafrost
ccd2b6ae78 - PBKDF2 updates 2012-06-16 16:42:54 -05:00
Andreas Fischer
eb64dfef7d [feature/consistent-file-endings] Make sure files have empty line at the end. 2012-06-11 10:34:07 +02:00
Jim Wigginton
019edc6694 - the key has to be truncated before setKey() is called or else it'll be rounded up to the nearest key size - not down
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@190 21d32557-59b3-4da0-833f-c5933fad653e
2011-11-25 00:11:19 +00:00
Jim Wigginton
b1c7fed946 - the IV wasn't resetting when mcrypt was being used
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@186 21d32557-59b3-4da0-833f-c5933fad653e
2011-11-16 06:53:36 +00:00
Jim Wigginton
a00a5e6ba4 - add pbkdf2 support via setPassword()
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@185 21d32557-59b3-4da0-833f-c5933fad653e
2011-11-13 02:23:56 +00:00
Jim Wigginton
d7c43d03a2 - fix bug with pure-PHP CTR mode (thanks, Max!)
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@177 21d32557-59b3-4da0-833f-c5933fad653e
2011-09-04 16:23:50 +00:00
Jim Wigginton
96471cf1dd - fix an E_NOTE error in Rijndael.php (thanks, tchamness!)
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@164 21d32557-59b3-4da0-833f-c5933fad653e
2011-06-04 16:10:05 +00:00
Jim Wigginton
392d96445e - add support for PuTTY and XML formatted RSA keys
- remove ?>'s from PHP_Compat files
- update LICENSE block
- make it so NET_SSH2_MSG_USERAUTH_PK_OK records direction and time

git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@152 21d32557-59b3-4da0-833f-c5933fad653e
2011-04-18 12:17:40 +00:00
Jim Wigginton
bf49338fa9 - the ciphertext wasn't being null padded correctly when it wasn't a multiple of the block size (thanks Elledan!)
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@139 21d32557-59b3-4da0-833f-c5933fad653e
2010-12-04 14:48:06 +00:00
Jim Wigginton
354a0965e8 - AES should try to auto-predict the size of keys when the size isn't specified; last update interfered with that
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@137 21d32557-59b3-4da0-833f-c5933fad653e
2010-12-02 03:38:22 +00:00
Jim Wigginton
4d4cc0e0f5 - keys should now be null padded if they're too short
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@136 21d32557-59b3-4da0-833f-c5933fad653e
2010-12-01 05:09:01 +00:00
Jim Wigginton
66b5dad728 - rm debug code
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@133 21d32557-59b3-4da0-833f-c5933fad653e
2010-11-20 14:45:42 +00:00
Jim Wigginton
b94a467999 - change license to the less restrictive MIT license (if people want to modify phpseclib and distribute binaries of it [whatever that means for PHP] without including the source code I don't care); two of the three PHP_Compat stuff still uses the LGPL since I didn't author them but they're only needed, anyway, if you're using phpseclib on PHP4.
- add svn:eol-style: LF to all files
- fixed pear.php.net bug # 18037 (thanks, nounours!)

git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@130 21d32557-59b3-4da0-833f-c5933fad653e
2010-11-13 19:28:20 +00:00
Jim Wigginton
2140de74d0 - fixed a warning in Crypt_Rijndael
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@123 21d32557-59b3-4da0-833f-c5933fad653e
2010-09-26 05:02:10 +00:00
Jim Wigginton
76655b8bf9 - CFB mode is now supported as a stream cipher
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@122 21d32557-59b3-4da0-833f-c5933fad653e
2010-09-26 03:10:20 +00:00
Jim Wigginton
202c3b64e9 - added support for OFB and CFB modes (with the caveat that CFB mode isn't currently supported as a stream cipher)
- improvements to the fix to the bug Suby found
- fixed bug whereby CTR mode gave different results in mcrypt and internal modes when the continuous buffer was enabled and the plaintext being encrypted wasn't a multiple of the block size
- undid the fix for the bug f.dammassa found (thanks, j31!)


git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@120 21d32557-59b3-4da0-833f-c5933fad653e
2010-09-12 21:58:54 +00:00
Jim Wigginton
d77c85218d - removed setMCrypt from the Crypt_* objects (you can achieve the same effect by doing ini_set('mcrypt.algorithms_dir', $path))
- added support for CTR mode to the various Crypt_* objects


git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@83 21d32557-59b3-4da0-833f-c5933fad653e
2010-02-09 06:10:26 +00:00
Jim Wigginton
1841949aaf - removed debug code
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@78 21d32557-59b3-4da0-833f-c5933fad653e
2010-01-23 17:36:49 +00:00
Jim Wigginton
7ecd481002 - fixes to Math_BigInteger::_barrett()
- speed ups based on <http://blog.libssh2.org/index.php?/archives/21-Compiled-Variables.html>.


git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@74 21d32557-59b3-4da0-833f-c5933fad653e
2010-01-04 07:59:01 +00:00
Jim Wigginton
9bd3c793d3 - an inability to unpad doesn't necessarily mean that padding is enabled when it shouldn't be - it might also mean that the key being used is the wrong one.
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@67 21d32557-59b3-4da0-833f-c5933fad653e
2009-12-06 07:26:52 +00:00
Jim Wigginton
a4e72f7811 - replaced list(...) = unpack('...') calls with extract(unpack('...')) (thanks martinu!)
- added pure-php implementations of md2, sha256, and sha512 to Crypt_Hash
- added setPrecision() to Math_BigInteger
- other small fixes


git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@56 21d32557-59b3-4da0-833f-c5933fad653e
2009-11-23 19:06:07 +00:00
Jim Wigginton
f50e880c41 - accommodate new Math_BigInteger updates
- fix a typo in Crypt_Rijndael's comments


git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@54 21d32557-59b3-4da0-833f-c5933fad653e
2009-11-03 22:03:43 +00:00
Jim Wigginton
65119f79d7 - small cosmetic issues
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@49 21d32557-59b3-4da0-833f-c5933fad653e
2009-10-07 20:53:19 +00:00
Jim Wigginton
a90471b937 - fixed a few bad constants (thanks, YeongGwon Jeong!)
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@41 21d32557-59b3-4da0-833f-c5933fad653e
2009-08-09 03:53:28 +00:00
Jim Wigginton
c17f22ead9 - Crypt_Rijndael has issues when setKey() isn't called, as well
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@34 21d32557-59b3-4da0-833f-c5933fad653e
2009-05-27 16:25:35 +00:00
Jim Wigginton
9194759d58 - cosmetic changes to the code
- encryption should work even when setKey() isn't called
- padding wasn't always done when it should have been


git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@33 21d32557-59b3-4da0-833f-c5933fad653e
2009-05-27 16:15:23 +00:00
Jim Wigginton
39de68ab48 - [bug] Crypt_Rijndael calculated IVs incorrectly
- [new] renamed Crypt_HMAC to Crypt_Hash and revised the API
- [new] added Crypt_AES
- [new] added AES support to Net_SSH2


git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@21 21d32557-59b3-4da0-833f-c5933fad653e
2009-02-16 22:22:13 +00:00
Jim Wigginton
c30f3b7e9a - pure-PHP implementation of Rijndael
git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@20 21d32557-59b3-4da0-833f-c5933fad653e
2009-02-01 15:37:25 +00:00