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

253 Commits

Author SHA1 Message Date
Hans-Jürgen Petrich
e71ec8f4c8 CS adjustments 2013-05-25 18:10:20 +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
72fa880aa2 BL/TF optimizations. 3DES: +20% speed
- Blowfish/Twofish small optimizations

- 3DES +20% speedup from Patrick's commit:
f596c577cf
2013-05-23 01:11:08 +07:00
Patrick Monnerat
f596c577cf DES: move IP/inverse IP transforms out of the round loop in inline_crypt_setup().
This is another 20% runtime gain on triple DES.
2013-05-21 16:01:10 +02:00
Hans-Jürgen Petrich
55ff00cc35 Crypt_Base
Crypt_Base() implementation
2013-05-20 13:19:38 +07:00
Hans-Jürgen Petrich
448be87e83 Twofish: bugfix in setPasswort()
fixed bug in setPasswort()... (occurred only in Twofish.php)
2013-05-19 23:35:06 +07:00
Hans-Jürgen Petrich
b242259d17 optimizations 2013-05-13 12:41:52 +07:00
terrafrost
0bdf39c83b Merge pull request #101 from johnsterling/rsa-comment
Add support for custom RSA key comments.
2013-05-08 08:11:20 -07:00
Veres Lajos
dd2a4ddff2 typofixes 2013-05-08 15:34:07 +01:00
terrafrost
c89db52e39 Twofish: make CS more consistent 2013-05-07 23:23:07 -05:00
John Sterling
c1244805cf Add support for custom RSA key comments.
Add ivar and set/getComment() instead of constant. Also parse comment from applicable formats in loadKey().
2013-05-05 19:38:34 -04:00
Hans-Jürgen Petrich
dcac12003a Blowfish
Blowfish implementation
2013-05-05 09:32:00 +07:00
terrafrost
3ac29adff1 Merge remote-tracking branch 'petrich/master' into twofish 2013-05-03 01:43:43 -05:00
terrafrost
232d3e2725 Random: remove comment for old code 2013-05-01 08:13:41 -05:00
terrafrost
65a6c85450 Merge branch 'master' of https://github.com/phpseclib/phpseclib 2013-05-01 00:33:13 -05:00
terrafrost
cb36b811a0 Random: use constant for windows test
BigInteger: Docblock adjustments
2013-05-01 00:30:01 -05:00
Hans-Jürgen Petrich
be47960908 Twofish
Twofish implementation
2013-04-30 17:26:14 +07:00
Hans-Jürgen Petrich
6b7c1da103 DES: removed debug code
removed debug code
2013-04-30 14:53:27 +07:00
Hans-Jürgen Petrich
c4752cbeba DES / 3DES Performance Update
DES / 3DES Performance Update.
Inline en/decrypting gives additional ~25% performance.
100% compatible with the current DES/TribleDES.php
Strong testet on Windows/Linux 32/64bit with php4/5.0/5.1//5.2/5.3/5.4
2013-04-25 14:16:10 +07:00
Patrick Monnerat
a13684584c DES: fix file permissions. 2013-04-24 11:02:01 +02:00
Patrick Monnerat
a8e5ccf895 DES: pre-permuted tables version. 2013-04-24 11:00:11 +02:00
terrafrost
f16d8ba6b2 Hash: docblock updates 2013-04-20 20:09:42 -05:00
terrafrost
700d28f642 RSA: apply terite's changes to RSA.php too 2013-04-08 01:04:52 -05:00
terrafrost
c5bd12dd14 RSA: Add CRYPT_RSA_PKCS15_COMPAT mode 2013-03-23 14:13:24 -05:00
terrafrost
11a6b1a1af RSA: only use OpenSSL if openssl.cnf file exists 2013-03-21 10:43:27 -05:00
terrafrost
35f5c83d36 Random: CS adjustment 2013-03-09 21:15:01 -06:00
Hans-Jürgen Petrich
ee84c4b41d $plaintext should be $ciphertext 2013-03-06 18:14:27 +07:00
terrafrost
994c2c6c79 Rijndael, TripleDES: $block not defined in these either 2013-03-05 00:19:11 -06:00
terrafrost
5f64ab67ab DES: $block wasn't defined 2013-03-04 08:25:40 -06:00
terrafrost
c4b3288851 TripleDES, Rijndael: Fix overflow in OFB mode 2013-03-03 17:30:30 -06:00
terrafrost
7ce05ed591 Merge branch 'master' of https://github.com/phpseclib/phpseclib 2013-03-03 11:30:54 -06:00
terrafrost
15817a416e DES: Fix memory leak in OFB mode 2013-03-03 11:30:03 -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
terrafrost
bf3ca6312e DES: Fix memory leak with CTR mode 2013-03-03 00:31:48 -06:00
terrafrost
eb860d275e RSA: Add support for AES-256-CBC 2013-02-27 20:00:20 -06: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
Patrick Monnerat
90ff746ad1 Make all sources 7-bit ASCII. 2013-02-20 19:25:47 +01:00
Gemorroj
cc2c844d0e some minor fixes 2013-02-20 16:46:13 +03:00
Hans-Jürgen Petrich
93f9922410 Small CS fix [2] 2013-02-07 00:45:03 +07:00
Hans-Jürgen Petrich
323396df3c Small CS fix 2013-02-03 23:19:09 +07:00
Hans-Jürgen Petrich
b4bbb27ef6 AES: Performance update
Performance update for AES
2013-01-31 00:59:53 +07:00
terrafrost
13eb688c90 AES, RC4: CS adjustments 2013-01-30 08:39:02 -06: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
terrafrost
7894fd98f5 Merge pull request #65 from petrich/patch-3
Rijndael: Performance update
2013-01-26 16:29:26 -08:00
terrafrost
01be859b44 Merge pull request #66 from petrich/patch-5
AES: Performance update
2013-01-26 16:29:10 -08:00
terrafrost
d774476bcf RC4: keys were never being set in continuous mode 2013-01-26 11:16:42 -06:00
Hans-Jürgen Petrich
7dceef6ef4 AES: Performance update
Performance update for AES
Related to: https://github.com/phpseclib/phpseclib/pull/65
2013-01-26 16:58:31 +07:00
Hans-Jürgen Petrich
c95b997fa7 Rijndael: Performance update
Performance update for Rijndael
2013-01-26 16:54:19 +07:00
terrafrost
111544428e Merge pull request #63 from petrich/patch-3
Rijndael: little code optimizing
2013-01-25 21:52:40 -08:00
Hans-Jürgen Petrich
376b2759c9 RC4: fixed ContinuousBuffer() using MODE_MCRYPT
Fixed multiple calls to ContinuousBuffer() using MODE_MCRYPT
2013-01-21 21:01:37 +07:00
Hans-Jürgen Petrich
d81563d6f3 Rijndael: little code optimizing
little code optimizing
2013-01-21 15:46:44 +07:00
terrafrost
45976002c7 Merge pull request #61 from petrich/patch-3
AES: Fixed CFB decrypt() using MODE_MCRYPT and ContinuousBuffer
2013-01-20 22:57:43 -08:00
Hans-Jürgen Petrich
bfab4c47f9 DES: Fixed CFB decrypt() using MODE_MCRYPT and ContinuousBuffer
DES: Fixed small bug from commit d94f1b252d (DES.php in line 739-740)
in CFB decrypt() using CRYPT_DES_MODE_MCRYPT and enableContinuousBuffer()
2013-01-21 10:15:13 +07:00
Hans-Jürgen Petrich
2deea8b491 AES: Fixed CFB decrypt() using MODE_MCRYPT and ContinuousBuffer
AES: Fixed small bug from commit d94f1b252d (AES.php in line 425-426)
in CFB decrypt() using CRYPT_AES_MODE_MCRYPT and enableContinuousBuffer()
2013-01-21 10:08:49 +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
Hans-Jürgen Petrich
f7dc23a18e 3DES: Fixed ContinuousBuffer() in CTR/CFB/OFB
FIXED: multiple calls to enable/enableContinuousBuffer() work's now in CTR/CFB/OFB
FIXED: "Illegal string offset" and strlen(array()) Warning/Notice
Performance improvement in CFB Mode with enableContinuousBuffer() using MODE_MCRYPT
2013-01-14 21:23:20 +07:00
Hans-Jürgen Petrich
c624c785ee DES: Fixed CFB/OFB and continuousBuffer
FIXED: multiple calls to enable/disableCMode() will work now
FIXED: CFB/OFB modes
FIXED: "Illegal string offset" and strlen(array()) Warning/Notice
2013-01-13 01:48:48 +07: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
7c0926d94a Merge remote-tracking branch 'origin/petrich'
Conflicts:
	phpseclib/Crypt/AES.php
2013-01-11 18:06:43 -06:00
terrafrost
74e61deb4f AES: CFB: decrypted strings were being truncated 2013-01-11 15:30:06 -06:00
terrafrost
4a1cbfa7fd Merge remote-tracking branch 'petrich/patch-3' into petrich
Conflicts:
	phpseclib/Crypt/AES.php
2013-01-10 23:49:59 -06:00
terrafrost
bbd62f6490 AES: CFB mode fix 2013-01-10 20:42:38 -06:00
terrafrost
5ce9ad6a42 Random: $urandom -> $fp 2013-01-10 13:19:31 -06:00
Hans-Jürgen Petrich
20461866ef AES: Fix broken CFB and disableContinuousBuffer()
Related to: https://github.com/phpseclib/phpseclib/pull/45
2013-01-10 23:27:12 +07:00
terrafrost
d741def23c AES: Fix broken CFB and disableContinuousBuffer()
Quoting from petrich's pull request (from which this commit was inspired):

Fixed: Broken CFB in continuous mode when using CRYPT_AES_MODE_MCRYPT (related to: #39 )
Fixed: Multiple calls to enable/disableContinuousBuffer()
Fixed: Some PHP Notice/Warnings about strlen(array())
2013-01-09 17:39:57 -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
a890c6d127 Merge remote-tracking branch 'origin/petrich' 2013-01-06 19:14:05 -06:00
terrafrost
5e882d57fe Merge remote-tracking branch 'origin/petrich' 2013-01-06 19:10:25 -06:00
terrafrost
edc6d9cf5b AES.php in mcrypt mode always treated CFB as though it was a continuous cipher 2013-01-06 19:09:43 -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
terrafrost
fba455dfb2 Merge remote-tracking branch 'petrich/patch-2' into petrich
Conflicts:
	phpseclib/Crypt/Rijndael.php
2013-01-05 17:54:22 -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
terrafrost
c1244dd339 CFB didn't always work in continuous mode 2013-01-04 20:53:23 -06: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
e4ccaef7bf Make PEM lines be 64 bytes long instead of 72
Also, add more notes to Crypt_Random's comments
2012-12-18 07:11:24 -06:00
terrafrost
7f5e9f404a Random: expand on the explanations as to how things work 2012-12-17 08:41:47 -06:00
terrafrost
35832fe2a1 Refactor crypt_random (renaming it to crypt_random_string)
...and update all the calls to it accordingly
2012-12-16 02:20:16 -06:00
Patrick Monnerat
06779a92de Merge branch 'master' of https://github.com/phpseclib/phpseclib into pmexts 2012-12-10 12:10:06 +01:00
Patrick Monnerat
f039a6ebc2 RSA: Allow changing openssl configuration file. X509: process HoldInstructionCode.
Also fixes HoldInstruction* OIDs.
2012-12-10 12:07:49 +01:00
terrafrost
3c6ae4312f The user_error in _handle_error shouldn't be replaced.. 2012-11-29 00:19: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
fbf3ba353e Null pad RSA ciphertext's to be the length of the modulo and improve XML parsing 2012-11-19 23:00:04 -06:00
terrafrost
2a1909fd71 Set $this->paddable to true in a few missing places 2012-11-16 02:59:06 -06:00
Patrick Monnerat
26b842be5b X509: compute public key identifiers.
Force subject public key identifier when signing a CA.
2012-10-29 18:21:25 +01:00
terrafrost
7ba006ccdc Add getSize() function to Crypt_RSA 2012-10-07 18:53:26 -05:00
terrafrost
ee25c73a44 Three fixes
- Ingore white space in keys
- Handle negative numbers in the same way OpenSSL seems to handle them
- Fix signature verification (thanks Richard Odekerken!)
2012-09-29 14:32:27 -05:00
terrafrost
13eed6147a Do CRYPT_DES_MODE_CBC instead of CRYPT_MODE_DES_CBC 2012-09-22 11:38:09 -05:00
terrafrost
6686e203e7 Reformat keys even if private key format is the same OpenSSL uses
As is private keys weren't being encrypted when a private key was being set and OpenSSL was being used.

Thanks TeigneuX!
2012-09-18 05:17:14 -05:00
terrafrost
26776b486e Update a few comments 2012-09-03 01:42:50 -05:00
terrafrost
a3781bd172 Changing the public key format broke File_X509 2012-09-03 01:32:57 -05:00
terrafrost
2f8d1055ea Use OpenSSL for Math_BigInteger::modPow speedups
Also, make Crypt_RSA's public keys compatible with OpenSSL and make it so __toString will return the key even when it's the public key that's loaded and it hasn't been set as the public key.
2012-08-26 01:36:34 -05:00
terrafrost
6c4fcd34d3 Misc fixes
- make it so '' is a legit password and doesn't unset the pw to pass bantu's unit tests (unit test could have been updated too but whatever)
- make it so not passing in any parameters to Crypt_RSA::setPassword() works without E_NOTICE or E_WARNING as per example in docs
- add missing phpdoc headers to File_ANSI
- cryan -> cyan in File_ANSI
2012-08-23 08:59:49 -05:00