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

528 Commits

Author SHA1 Message Date
Gemorroj
1e3e44e3c6 revert == instead === 2013-02-20 17:55:44 +03:00
Gemorroj
cc2c844d0e some minor fixes 2013-02-20 16:46:13 +03:00
terrafrost
4334d381b9 BigInteger: E_NOTICE: bitwise_xor and bitwise_or had parameters of array_pad mixed up 2013-02-17 18:53:36 -06:00
terrafrost
60b66e3726 SFTP: Add chown and chgrp. 2013-02-17 18:23:35 -06:00
terrafrost
4a96cc8024 Use base-2**26 on systems with 32-bit ints and base-2**31 on systems with 64-bit ints 2013-02-17 17:52:59 -06:00
terrafrost
0333805f5c SSH2: Add isConnected() function 2013-02-16 14:58:12 -06:00
terrafrost
25c7e7bd96 SFTP: Add touch function
Also make it so chmod will auto-switch the filename / permissions if they're not in the "right" order (PHP's chmod and ftp_chmod order them differently from each other so this'll make phpseclib consistent with both)
2013-02-14 12:10:36 -06:00
terrafrost
faaa52774f SFTP: Add the ability to write to specific parts of files 2013-02-12 20:45:09 -06:00
Mike Kruk
d7e4678fc4 Use enablePTY() to get a PTY with exec() calls. While exec() is running
you can use read() and write() to interact with the shell.
2013-02-08 17:04:52 -05:00
Hans-Jürgen Petrich
93f9922410 Small CS fix [2] 2013-02-07 00:45:03 +07:00
terrafrost
dba98cd57f Merge branch 'master' of https://github.com/phpseclib/phpseclib 2013-02-05 07:55:06 -06:00
terrafrost
5910f7c14f Update date format in File/X509.php
Update it to be consistent with bdd42c448b

Thanks runaway518!
2013-02-05 07:53:36 -06: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
e7336e6b54 add size checking to binary packets in Net/SSH2.php (thanks ?????? ????????!) 2013-01-26 00:17:23 -06: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
882e019062 Merge pull request #59 from tamagokun/set_exit_status
Get the exit status in ssh
2013-01-20 09:09:45 -08: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
Mike Kruk
efdec7b118 Extract the exit_status if given to us from SSH. 2013-01-17 13:47:42 -05: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
terrafrost
efe8cc45e5 Merge branch 'petrich' 2013-01-14 01:17:06 -06:00
terrafrost
5d49af105f SSH2: $this->channel_buffers is an array - not a string 2013-01-13 11:36:57 -06:00
terrafrost
94ca5e1d0c SSH1,SSH2: strpos expects string - not array 2013-01-13 10:49:03 -06: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
bccce5802c SSH2: Use strlen instead of empty 2013-01-12 10:46:19 -06:00
terrafrost
b8768c8d11 SSH1: Make it so SSH packets spanning multiple TCP/IP packets can be rcvd 2013-01-12 10:45:35 -06:00
terrafrost
bbed0916cd SSH2: Make $stop be after all network activity 2013-01-11 18:38:38 -06:00
terrafrost
ab7f65d436 SSH1: Added setTimeout()
Note that interactiveRead() was left untouched.
2013-01-11 18:36:58 -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
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
d90caa17e3 SSH1: CS adjustments 2013-01-11 00:31:49 -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
46baf1815f SSH1: Fix E_NOTICE 2013-01-10 00:42:53 -06:00
terrafrost
c3ee632587 SSH1: fix "Expected SSH_SMSG_SUCCESS" error 2013-01-09 23:56:33 -06:00
terrafrost
b1c96faf90 SSH1: Packets shown in log were encrypted 2013-01-09 22:54:11 -06: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
2ead31dac2 rm debug code 2013-01-09 00:07:54 -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
10d9671601 SSH1: Fix E_NOTICE (thanks nosx!) 2013-01-08 11:15:28 -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
aa3da09747 Add limited SPKAC support 2012-12-19 00:21:55 -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
885d7e0f24 SFTP: Make get() work correctly when files are being written to for partial transfers 2012-12-16 02:34:49 -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
terrafrost
a731220785 Fix E_NOTICE in SFTP.php (thanks dlgoodchild!) 2012-12-14 08:45:35 -06:00
terrafrost
65193d9a25 SFTP: Add $offset and $length get() function 2012-12-11 19:54:48 -06:00
terrafrost
7401d148f8 Remove unused lines
The MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_GMP case is already handled earlier
2012-12-11 18:38:45 -06:00
Patrick Monnerat
18fc6b7712 X509: Fix typo: ';' --> ':' 2012-12-10 12:27:07 +01: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
27f6012d62 Make it so extension OIDs can be File_ASN1_Elements 2012-12-01 10:52:10 -06:00
terrafrost
d130d2274d Make the save*() functions save in multiple formats
Currently only PEM and DER supported.

Also make fuzzing enhancements
2012-11-30 08:31:16 -06: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
862253784d Merge branch 'master' of https://github.com/phpseclib/phpseclib 2012-11-28 08:24:00 -06:00
terrafrost
1f6cc77c11 Merge remote-tracking branch 'origin/noauth' 2012-11-28 08:21:36 -06:00
terrafrost
dbc10491e7 Fix an E_NOTICE (thanks chubbypama!) 2012-11-28 08:17:57 -06:00
terrafrost
ff94576315 Remove unused fields from pack() 2012-11-27 14:38:30 -06:00
terrafrost
8ea452ed31 type in comment
(testing out github.com's edit via web interface)
2012-11-27 10:11:49 -06:00
terrafrost
0b9f743343 Add getChain() function
Also improve loading of raw certs
2012-11-25 23:06:58 -06:00
terrafrost
76cb693d62 CS adjustments, make it so PEM-encoded CRLs can be read (again) and make it so already decoded CSRs and CRLs can be read 2012-11-23 19:04:04 -06:00
terrafrost
346bc5dcc8 Make it so none is a supported authentication method 2012-11-22 14:25:57 -06:00
terrafrost
875cef8bbd Revamp logging 2012-11-22 13:08:30 -06:00
terrafrost
6c33012a4a Suppress further error messages if connection is prematurely disconnected 2012-11-22 12:11: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
7e120a0f30 Make validateSignature() behave more intuitively 2012-11-19 21:10:22 -06:00
terrafrost
126c396a51 More CS adjustments 2012-11-18 16:29:15 -06:00
terrafrost
406e7e90e9 CS adjustments 2012-11-18 16:16:11 -06:00
terrafrost
2a1909fd71 Set $this->paddable to true in a few missing places 2012-11-16 02:59:06 -06:00
Patrick Monnerat
8f6cd4f91f Merge branch 'master' of https://github.com/phpseclib/phpseclib into pmexts 2012-11-14 16:35:00 +01:00
Patrick Monnerat
a61d7ba29b X509: *Attribute() functions may now handle single values. 2012-11-14 16:33:32 +01:00
terrafrost
8cf6bb0b1c SSH1: Fix E_NOTICE (thanks dayton967!) 2012-11-14 04:34:33 -06:00
terrafrost
691f4d1e62 Make it so loadCA() doesn't have to be called before loadX509() or loadCRL() 2012-11-13 00:43:45 -06:00
terrafrost
d492d19748 X509: Missing $ 2012-11-13 00:37:54 -06:00
terrafrost
1fd87dcd35 Fix bug in listRevoked() and make it so getSubjectDN() doesn't return issuer DN for CRLs 2012-11-13 00:33:15 -06:00
terrafrost
1abc7e742b X509: CSRs and CRLs didn't have the signatureSubject variable saved properly 2012-11-12 23:51:41 -06:00
terrafrost
661eb8db3f Missing ; 2012-11-12 01:05:24 -06:00
terrafrost
0e0eebf456 CS adjustments, make loadXXX() take in binary data, and make getDN() == getIssuerDN() for CRLs 2012-11-12 00:46:03 -06:00
terrafrost
1ff798da47 Merge branch 'master' of https://github.com/phpseclib/phpseclib 2012-11-09 22:24:23 -06:00
terrafrost
6bc46d42e0 Only save the directory if it was able to be successfully created 2012-11-09 22:22:02 -06:00
Patrick Monnerat
ac8d0172eb Merge branch 'master' of https://github.com/phpseclib/phpseclib into pmexts 2012-11-08 12:51:07 +01:00
Patrick Monnerat
7fbf089e32 X509: Do not use memory-wasting create_function() 2012-11-08 12:45:17 +01:00
Patrick Monnerat
4ad2ffe9d7 Merge branch 'master' of https://github.com/phpseclib/phpseclib into pmexts 2012-11-08 12:23:03 +01:00
terrafrost
9ead66143d Updates to mkdir() (thanks easy-dev!) 2012-11-07 23:35:23 -06:00
Patrick Monnerat
dde23464a1 X509: Fix typo. 2012-11-07 16:29:18 +01:00
Patrick Monnerat
5ef4f9900a X509: Suppress {get|set|remove}CRLExtension() functions: non *CRL* functions are now polymorphic. 2012-11-07 16:23:01 +01:00
Patrick Monnerat
d980a91360 X509: Fix DirectoryString syntax 2012-11-07 16:21:23 +01:00
Patrick Monnerat
9860f020c3 X509: Fix typo. 2012-11-07 15:41:41 +01:00
Patrick Monnerat
9b2a6d68f4 X509: Add CSR attributes handling support and CSR extension requests. 2012-11-07 15:35:10 +01:00
Patrick Monnerat
d9ab2d7f10 ASN1: Improve input SEQUENCE and SET mapping, better syntax error detection. 2012-11-07 15:23:54 +01:00
Patrick Monnerat
bf2107eaa8 X509: Suppress {get|set|remove}CRLExtension() functions: non *CRL* functions are now polymorphic. 2012-11-07 15:18:55 +01:00
Patrick Monnerat
1a0ae1ff76 X509: Fix DirectoryString syntax. 2012-11-07 15:03:58 +01:00
Patrick Monnerat
0afed5b65b X509: adjust comments 2012-11-05 12:08:20 +01:00
Patrick Monnerat
916dcff8a8 ASN1/X509: implement limited string conversion. Add getDN() options.
Warning: converted strings must not be used for matching DNs.
2012-11-02 16:53:32 +01: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
Patrick Monnerat
64c3b309bd ASN1: little optimization for better performance. 2012-10-25 17:54:02 +02:00
Patrick Monnerat
c1c9c38fe6 X509: Avoid an "undefined" error and define netscape-ca-policy-url OID. 2012-10-24 13:36:18 +02:00
Patrick Monnerat
2d34c291f0 ASN1: _decode_ber should now accept a FILE_ASN1_Element object as source. 2012-10-24 11:42:13 +02:00
Patrick Monnerat
340ee0cd2d ASN1/X509: latch effective type of ANY fields as an additional indexing level. 2012-10-23 13:37:51 +02:00
terrafrost
9e803fe374 Return $this->publicKey if it's available in getPublicKey() function 2012-10-22 00:27:26 -05:00
terrafrost
bdd42c448b Change default date format
This change stems from the fact that date('T') on PHP 4 (and possibly 5.0/5.1/etc) returns "Central Daylight Time" vs PHP 5, which returns "CDT".  "CDT" is parsable by strtotime - "Central Daylight Time" is not.

There will still be some dates that won't properly decode, however, on PHP 4.  Those dates would seem to be due to this (from php.net):

"On systems where time_t is a 32bit signed integer, as most common today, the valid range for year is somewhere between 1901 and 2038. However, before PHP 5.1.0 this range was limited from 1970 to 2038 on some systems (e.g. Windows)."
2012-10-19 07:19:22 -05:00
Patrick Monnerat
4c5163234b ASN1: Fix default value optimization upon encoding.
Also encode SETs as SEQUENCEs since order is not important.
2012-10-18 12:38:43 +02:00
terrafrost
ce250ea546 Rename $keyIdentifier to $currentKeyIdentifier
$KeyIdentifier (upper case) is already defined and although it doesn't cause any problems with $keyIdentifier (lower case) I still think it's poor practice
2012-10-18 00:37:48 -05:00
terrafrost
8758ca8517 Merge pull request #24 from monnerat/crl
Certificate Revocation Lists
2012-10-16 04:34:34 -07:00
terrafrost
eba3fbe13e Suppress Warning messages
Warning messages would appear if recursive deletes or chmods were
attempted.  Also, doing pwd() when . was / would return //.
2012-10-13 19:42:01 -05:00
Patrick Monnerat
2c7c7b9679 X509, ASN1: Fix CS and indent. Remove tabs. 2012-10-12 16:17:34 +02:00
monnerat
ef96f777c3 X509: setSerialNumber(): new optional parameter $base 2012-10-12 03:29:25 +01:00
monnerat
711d44f0e5 X509: implement CRLs. 2012-10-12 03:13:39 +01:00
monnerat
6da490d00a X509: new setExtension() method. 2012-10-12 03:03:21 +01:00
monnerat
bc7a59bc8c X509: factorize some code in prevision of CRL support. 2012-10-12 02:56:23 +01:00
monnerat
73b0d05ddc X509: set-up key identifier upon certificate loading. 2012-10-12 02:42:19 +01:00
monnerat
4f634aaca8 X509: avoid some "undefined" errors. 2012-10-12 02:37:55 +01:00
monnerat
2c8ad5ee72 ASN1: _encode_der(): do not encode optional fields with value set to default. 2012-10-12 01:07:01 +01:00
monnerat
a75de60478 ASN1: asn1map(): fix handling of optional CHOICE and ANY children in SEQUENCE. 2012-10-12 01:04:24 +01:00
monnerat
b05cff1320 ASN1: process input NULL fields. 2012-10-12 01:01:20 +01:00
monnerat
50962f9cd3 ASN1: asn1map(): do not rely on input fields to determine mapping parameters. 2012-10-12 00:58:36 +01:00
monnerat
d9a3dafa0a ASN1: Support enumerated types by processing them as integers. 2012-10-12 00:51:42 +01:00
terrafrost
35d6910bf3 Revisions to _logError() function 2012-10-09 07:27:42 -05:00
terrafrost
827090c562 Update comments 2012-10-09 01:00:47 -05:00
terrafrost
c65f5ba0e5 Add SFTPv2 support
Thanks bitvise for providing an SFTP client that does SFTPv2 and to faceleg for bringing the issue to my attention!
2012-10-09 00:56:50 -05:00
terrafrost
7ba006ccdc Add getSize() function to Crypt_RSA 2012-10-07 18:53:26 -05:00