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