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

1010 Commits

Author SHA1 Message Date
terrafrost
085fb0ebb8 SSH: update getServerPublicHostKey() to use new _connect() method 2014-08-06 14:42:08 -05:00
terrafrost
88d6517d93 Hash: add sha256-96 and sha512-96
IPSec uses them and some versions of OpenSSH use them (even though RFC6668 makes no mention of them)
2014-08-05 23:27:11 -05:00
terrafrost
5b019b22d9 SSH2: fix if statement for conditional _connect() call 2014-08-05 19:30:14 -05:00
terrafrost
dffef50838 simplify calls to $this->_connect() 2014-08-04 20:11:34 -05:00
Andreas Fischer
e4516fb453 Merge branch 'master' into php5
* master:
  Add some test cases for SHA512.
  Use toBits() as there is no bits property.
  SSH2: Disallow the none MAC.
2014-07-26 17:20:09 +02:00
Andreas Fischer
737c8a9d0f Use toBits() as there is no bits property. 2014-07-26 13:43:57 +02:00
Andreas Fischer
2ccb301c4c Merge pull request #425 from bantu/ssh-remove-none-mac
SSH2: Disallow the none MAC.

* bantu/ssh-remove-none-mac:
  SSH2: Disallow the none MAC.
2014-07-26 13:14:39 +02:00
Andreas Fischer
fed60fe8ac Merge branch 'master' into php5
* master:
  ssh-hmac-sha2-256: Remove whitespace at end of line.
  Added RFC6668
  Add hmac-sha2-256 MAC support
2014-07-26 13:11:29 +02:00
Andreas Fischer
4be4533a6e ssh-hmac-sha2-256: Remove whitespace at end of line. 2014-07-26 13:02:52 +02:00
terrafrost
49079fa1b4 SSH2: make it so negotiated algorithms can be seen before login 2014-07-25 10:03:31 -05:00
Dag Wieers
1a330b68e2 Added RFC6668
Added the requested changed.
2014-07-25 14:10:01 +02:00
Dag Wieers
86d17c6989 Add hmac-sha2-256 MAC support
This small patch adds hmac-sha2-256 support separately as requested in #423.

Some security standards now recommend to disable MD5 and SHA1, and use SHA2 instead. This change was tested using SHA2 against RHEL6's OpenSSH v5.3p1 and Solaris 11. And was also tested with RHEL5's OpenSSH 4.3p2 which doesn't include SHA2.
2014-07-25 12:28:08 +02:00
Andreas Fischer
1aecc5e3d8 SSH2: Disallow the none MAC. 2014-07-25 12:18:11 +02:00
Andreas Fischer
bb1c36893f Merge branch 'master' into php5
* master:
  Do not check filename over and over again, remove '.' and '..' from the map instead.
2014-07-24 17:32:38 +02:00
Andreas Fischer
880bc9d9e6 Merge pull request #420 from bantu/sftp-skip-current-dir-by-removal
SFTP: Do not check filename over and over again, remove '.' and '..' from the map instead.

* bantu/sftp-skip-current-dir-by-removal:
  Do not check filename over and over again, remove '.' and '..' from the map instead.
2014-07-24 17:32:38 +02:00
Andreas Fischer
8862b3c97a Merge branch 'master' into php5
* master:
  Only fclose($fp) when $mode & NET_SFTP_LOCAL_FILE.
2014-07-24 17:04:25 +02:00
Andreas Fischer
48a2613cde Merge pull request #421 from bantu/issue/418
SFTP: Only fclose($fp) when $mode & NET_SFTP_LOCAL_FILE.

* bantu/issue/418:
  Only fclose($fp) when $mode & NET_SFTP_LOCAL_FILE.
2014-07-24 17:04:24 +02:00
Andreas Fischer
47695777f8 Merge branch 'master' into php5
* master:
  Net_SFTP::_list() only takes two parameters.
2014-07-24 17:02:47 +02:00
Andreas Fischer
952d2166bf Net_SFTP::_list() only takes two parameters. 2014-07-24 11:09:37 +02:00
Andreas Fischer
695d1e9038 Only fclose($fp) when $mode & NET_SFTP_LOCAL_FILE. 2014-07-24 11:06:24 +02:00
Andreas Fischer
84a9a300d4 Do not check filename over and over again, remove '.' and '..' from the map instead. 2014-07-24 11:00:55 +02:00
Andreas Fischer
f0d0158c2b Merge branch 'master' into php5
* master:
  Comment out (potentially) insecure ciphers arcfour and none.
2014-07-22 16:09:16 +02:00
Andreas Fischer
a0a23cbaf1 Merge pull request #406 from bantu/remove-ssh-arcfour
Remove the arcfour and none ciphers from SSH2.

* bantu/remove-ssh-arcfour:
  Comment out (potentially) insecure ciphers arcfour and none.
2014-07-22 16:09:14 +02:00
Andreas Fischer
ae913d64c3 Merge branch 'master' into php5
* master:
  SSH2: don't remove old $this->bitmap values
2014-07-21 23:53:34 +02:00
terrafrost
9dd3db4a49 SSH2: don't remove old $this->bitmap values 2014-07-21 16:41:39 -05:00
Andreas Fischer
84ac305704 Comment out (potentially) insecure ciphers arcfour and none. 2014-07-21 12:16:49 +02:00
Andreas Fischer
025a637053 Merge branch 'master' into php5
* master:
  Make Net_SSH2::isConnected() return a boolean instead of int.
2014-07-20 23:31:30 +02:00
Andreas Fischer
678d0cc792 Make Net_SSH2::isConnected() return a boolean instead of int. 2014-07-20 23:03:06 +02:00
Andreas Fischer
c2f2f4a764 Merge branch 'master' into php5
* master:
  SSH2: make isConnected return true if even if we're not logged in
2014-07-20 23:00:32 +02:00
Andreas Fischer
cc64ef9d3f Merge pull request #412 from terrafrost/ssh2-connected
SSH2: make isConnected return true if even if we're not logged in

* terrafrost/ssh2-connected:
  SSH2: make isConnected return true if even if we're not logged in
2014-07-20 23:00:30 +02:00
Andreas Fischer
d29ad3afa9 Merge branch 'master' into php5
* master:
  SFTP: stat cache fixes
  SFTP: return $sftp object in new unit test method
  SFTP: add unit test for stat cache fix
2014-07-20 21:41:51 +02:00
terrafrost
ac2fc96263 SSH2: make isConnected return true if even if we're not logged in 2014-07-20 11:24:16 -05:00
terrafrost
a84861bb52 SFTP: stat cache fixes 2014-07-19 21:31:58 -05:00
Andreas Fischer
8e0b9b2d64 Merge branch 'master' into php5
* master:
  SFTP: fix an issue with the stat cache
  README: update download link to latest version
2014-07-12 12:08:36 +02:00
terrafrost
fe7fd97b59 SFTP: fix an issue with the stat cache 2014-07-11 12:14:26 -05:00
Andreas Fischer
d198756a76 Merge branch 'master' into php5
* master:
  SCP: always encapsulate filenames within double quotes
  SCP: add support for file names with spaces
2014-07-05 17:40:07 +02:00
Andreas Fischer
ba24e04729 Merge pull request #394 from terrafrost/scp-spaces
SCP: add support for file names with spaces

* terrafrost/scp-spaces:
  SCP: always encapsulate filenames within double quotes
  SCP: add support for file names with spaces
2014-07-05 17:40:01 +02:00
terrafrost
aec33901fc SCP: always encapsulate filenames within double quotes 2014-07-03 13:36:24 -05:00
Andreas Fischer
970c55d6cc Remove side-effect from Net/SFTP/Stream.php. 2014-06-27 14:22:47 +02:00
Andreas Fischer
d25d115747 Merge branch 'master' into php5
* master:
  Use get_called_class() if available.
  Add Net_SFTP_Stream::register() for easier autoloading.
  Add unit test for (to be added) Net_SFTP_Stream::register().
2014-06-27 14:14:18 +02:00
terrafrost
9edf905939 SCP: add support for file names with spaces 2014-06-26 20:41:43 -05:00
Andreas Fischer
0f672dde52 Use get_called_class() if available. 2014-06-27 00:35:19 +02:00
Andreas Fischer
73f961cb7d Add Net_SFTP_Stream::register() for easier autoloading. 2014-06-27 00:22:41 +02:00
Andreas Fischer
510d5e1778 Merge branch 'master' into php5
* master:
  SFTP: return $sftp object in unit tests
  SFTP: fix unit test
  SFTP: syntax error in unit test
  SFTP: add unit tests for symlinks
  SFTP: add readlink and symlink functions
2014-06-23 16:37:56 +02:00
Andreas Fischer
949cfcc867 Merge pull request #386 from terrafrost/symlink
SFTP: add readlink and symlink functions

* terrafrost/symlink:
  SFTP: return $sftp object in unit tests
  SFTP: fix unit test
  SFTP: syntax error in unit test
  SFTP: add unit tests for symlinks
  SFTP: add readlink and symlink functions
2014-06-23 16:37:55 +02:00
Andreas Fischer
ca4f6a21eb Merge branch 'master' into php5
* master:
  Removed white-spaces from line ends
  Allow setting the terminal window size
2014-06-23 16:36:23 +02:00
liutec
10597aed64 Removed white-spaces from line ends 2014-06-22 22:30:52 +03:00
liutec
8e1df6e3c3 Allow setting the terminal window size 2014-06-20 13:04:17 +03:00
Andreas Fischer
b50ef2dc64 Replace phpseclib_resolve_include_path with stream_resolve_include_path. 2014-06-19 16:14:15 +02:00
Andreas Fischer
f85d333912 Merge branch 'master' into php5
* master:
  phpseclib_is_includable() -> phpseclib_resolve_include_path()
  Drop Net_SSH2::_is_includable() method.
  Random: a few changes to the stream_resolve_include_path_function
  Replace stream_resolve_include_path with phpseclib_is_includable.
  Random: add explanatory comment
  SSH2: replace _is_includable() with stream_resolve_include_path
  Random: include the Crypt_* classes if they're available

Conflicts:
	tests/bootstrap.php
2014-06-19 16:09:23 +02:00
Andreas Fischer
709c7c4d48 Merge pull request #385 from bantu/a-random-change
Random: include the Crypt_* classes if they're available

* bantu/a-random-change:
  phpseclib_is_includable() -> phpseclib_resolve_include_path()
  Drop Net_SSH2::_is_includable() method.
  Random: a few changes to the stream_resolve_include_path_function
  Replace stream_resolve_include_path with phpseclib_is_includable.
  Random: add explanatory comment
  SSH2: replace _is_includable() with stream_resolve_include_path
  Random: include the Crypt_* classes if they're available
2014-06-19 16:08:59 +02:00
Andreas Fischer
fd65c55720 phpseclib_is_includable() -> phpseclib_resolve_include_path() 2014-06-19 14:57:09 +02:00
Andreas Fischer
1afbea613d Drop Net_SSH2::_is_includable() method. 2014-06-18 23:41:26 +02:00
terrafrost
96ccca2817 Random: a few changes to the stream_resolve_include_path_function 2014-06-18 22:03:09 +02:00
terrafrost
a65b820b54 SFTP: add readlink and symlink functions 2014-06-18 11:34:50 -05:00
Andreas Fischer
9c90beaf82 Replace stream_resolve_include_path with phpseclib_is_includable. 2014-06-17 14:38:24 +02:00
Andreas Fischer
563b8af6ce Merge branch 'master' into php5
* master:
  SSH2: rm redundant part of SSH2 unit test
  SSH2: add unit test for getServerPublicHostKey
  SSH2: make it so you can verify server public host key without logging on
2014-06-17 11:37:37 +02:00
Andreas Fischer
9716d9b7e5 Merge pull request #380 from terrafrost/server-host-key
SSH2: make it so you can verify server public host key without logging on

* terrafrost/server-host-key:
  SSH2: rm redundant part of SSH2 unit test
  SSH2: add unit test for getServerPublicHostKey
  SSH2: make it so you can verify server public host key without logging on
2014-06-17 11:37:36 +02:00
Andreas Fischer
8ba3dd0846 Merge branch 'master' into php5
* master:
  Crypt/Base: readability improvement
  RSA: CS adjustments
  RSA: rename PUBLIC_FORMAT_PKCS1_RAW -> PUBLIC_FORMAT_PKCS8
  RSA: add PKCS8 unit tests
  RSA: add support for saving encrypted PKCS8 keys
  Crypt/Base: adjust default key size for pbkdf1
  RSA: add support for loading PKCS8 encrypted private keys
  Crypt/Base: add support for pbkdf1
  RSA: add support for saving to PKCS8 (unencrypted)
2014-06-17 00:36:54 +02:00
Andreas Fischer
f807d8799e Merge pull request #370 from terrafrost/pkcs8
RSA: add support for PKCS8 encoded private keys

* terrafrost/pkcs8:
  Crypt/Base: readability improvement
  RSA: CS adjustments
  RSA: rename PUBLIC_FORMAT_PKCS1_RAW -> PUBLIC_FORMAT_PKCS8
  RSA: add PKCS8 unit tests
  RSA: add support for saving encrypted PKCS8 keys
  Crypt/Base: adjust default key size for pbkdf1
  RSA: add support for loading PKCS8 encrypted private keys
  Crypt/Base: add support for pbkdf1
  RSA: add support for saving to PKCS8 (unencrypted)
2014-06-17 00:36:54 +02:00
Andreas Fischer
b56c6a535e HHVM does not like it when we call an non-existent parent constructor. 2014-06-16 22:18:19 +02:00
terrafrost
5f56781261 SSH2: make it so you can verify server public host key without logging on 2014-06-16 10:19:34 -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
ac449e1965 Merge branch 'master' into php5
* master:
  Always correctly link to the constructor of Crypt_Base.
2014-06-16 17:03:52 +02:00
Andreas Fischer
765154f54e Merge pull request #378 from bantu/UselessOverridingMethod
Always correctly link to the constructor of Crypt_Base.

* bantu/UselessOverridingMethod:
  Always correctly link to the constructor of Crypt_Base.
2014-06-16 17:03:51 +02:00
Andreas Fischer
fc417115be Merge branch 'master' into php5
* master:
  BigInteger: one more change to the comments
  BigInteger: update comments
  BigInteger: unit test update
  BigInteger: change argument names for random / randomPrime
  BigInteger: fix unit tests
  BigInteger: fix syntax error
  BigInteger: make it so you can do $min->random($max)

Conflicts:
	phpseclib/Math/BigInteger.php
2014-06-16 17:00:00 +02:00
terrafrost
0bafe1e6c6 Crypt/Base: readability improvement 2014-06-16 09:57:04 -05:00
Andreas Fischer
088e31b6ea Merge pull request #373 from terrafrost/another-random-change
BigInteger: make it so you can do $min->random($max)

* terrafrost/another-random-change:
  BigInteger: one more change to the comments
  BigInteger: update comments
  BigInteger: unit test update
  BigInteger: change argument names for random / randomPrime
  BigInteger: fix unit tests
  BigInteger: fix syntax error
  BigInteger: make it so you can do $min->random($max)
2014-06-16 16:54:00 +02:00
terrafrost
82b5e02f06 Random: add explanatory comment 2014-06-16 09:53:55 -05:00
terrafrost
4401b7e21e SSH2: replace _is_includable() with stream_resolve_include_path 2014-06-16 09:47:13 -05:00
Andreas Fischer
d38886c2a9 Always correctly link to the constructor of Crypt_Base. 2014-06-16 16:42:18 +02:00
terrafrost
638e6c78ec Random: include the Crypt_* classes if they're available
also error out if none are available
2014-06-16 09:40:27 -05:00
Andreas Fischer
c2a6667ed2 Merge branch 'master' into php5
* master:
  Remove unnecessary constructors.
2014-06-16 16:29:29 +02:00
Andreas Fischer
c05cfe4c10 Merge pull request #376 from bantu/UselessOverridingMethod
Remove unnecessary constructors.

* bantu/UselessOverridingMethod:
  Remove unnecessary constructors.
2014-06-16 16:29:28 +02:00
Andreas Fischer
635c524b6b Merge branch 'master' into php5
* master:
  RC4: speedups
2014-06-16 16:28:29 +02:00
Andreas Fischer
5cc024a3b5 Merge pull request #377 from terrafrost/rc4-changes
RC4: speedups

* terrafrost/rc4-changes:
  RC4: speedups
2014-06-16 16:28:29 +02:00
terrafrost
4b9eb4af27 BigInteger: one more change to the comments 2014-06-16 09:23:34 -05:00
terrafrost
0938cba3c3 RC4: speedups 2014-06-16 09:19:14 -05:00
Andreas Fischer
91e78c2106 Remove unnecessary constructors. 2014-06-16 16:14:35 +02:00
terrafrost
0eb0ae7ff7 BigInteger: update comments 2014-06-16 09:09:26 -05:00
terrafrost
34a971d317 BigInteger: change argument names for random / randomPrime 2014-06-14 23:49:57 -05:00
terrafrost
f8f0bd44b7 BigInteger: fix syntax error 2014-06-14 19:20:05 -05:00
terrafrost
46166c7351 BigInteger: make it so you can do $min->random($max)
...and $min->randomPrime($max) as well
2014-06-14 14:07:33 -05:00
Andreas Fischer
6a8ac88a0c Merge branch 'master' into php5
* master:
  RC2: speed-ups and CS changes
2014-06-13 23:49:53 +02:00
terrafrost
04d66db309 RC2: speed-ups and CS changes 2014-06-13 16:30:12 -05:00
terrafrost
d8b235141e RSA: CS adjustments 2014-06-13 13:17:37 -05:00
terrafrost
83301097ea RSA: rename PUBLIC_FORMAT_PKCS1_RAW -> PUBLIC_FORMAT_PKCS8
also make CRYPT_RSA_PUBLIC_FORMAT_PKCS8 the default format
2014-06-13 13:11:59 -05:00
terrafrost
4434d91f25 RSA: add support for saving encrypted PKCS8 keys 2014-06-13 11:43:32 -05:00
terrafrost
d474f56f60 Crypt/Base: adjust default key size for pbkdf1 2014-06-13 10:39:57 -05:00
terrafrost
abae026264 RSA: add support for loading PKCS8 encrypted private keys 2014-06-13 08:56:00 -05:00
terrafrost
21c6a15df3 Crypt/Base: add support for pbkdf1 2014-06-13 08:54:30 -05:00
terrafrost
0a5e26a648 RSA: add support for saving to PKCS8 (unencrypted) 2014-06-12 22:03:00 -05:00
Andreas Fischer
76ac2a863d Merge branch 'master' into php5
* master:
  RSA: slight adjustment to CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW format
2014-06-11 08:05:49 +02:00
Andreas Fischer
90bc07e292 Merge pull request #366 from terrafrost/rsa-format-change
RSA: slight adjustment to CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW format

* terrafrost/rsa-format-change:
  RSA: slight adjustment to CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW format
2014-06-11 08:05:48 +02:00
Andreas Fischer
14ba37c539 Merge branch 'master' into php5
* master:
  SSH2: make $mac_algorithms non-static
2014-06-11 07:49:02 +02:00
terrafrost
246e9e154f SSH2: make $mac_algorithms non-static
none of the other statically defined variables have the potential
to change as multiple Net_SSH2 objects are created but this one does.

ie. if you connect to one SSH-2.0-SSHD server then no subsequent server
will use hmac-sha1-96 even if it could
2014-06-10 23:08:56 -05:00
terrafrost
72a0913d39 RSA: slight adjustment to CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW format
CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW and CRYPT_RSA_PUBLIC_FORMAT_PKCS1
produce two very similar looking keys but they are not the same.
As dissection OpenSSL's asn1parse would reveal CRYPT_RSA_PUBLIC_FORMAT_PKCS1
has the fact that it is an RSA key embedded within it whereas
CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW does not. phpseclib now resolves
this ambiguity in the same way that OpenSSH's ssh-keygen does.

Despite this change CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW is still incompatible
with OpenSSL's rsautl (CRYPT_RSA_PUBLIC_FORMAT_PKCS1 is compatible). I guess
this incompatibility isn't just due to the headers but is also due to the
overall structure of the format.
2014-06-10 22:16:59 -05:00
Andreas Fischer
f40bc4d3b8 Merge branch 'master' into php5
* master:
  SFTP: update one last comment
  SFTP: update unit test comments
  SFTP: add new line to end of unit test
  SFTP: assertEquals -> assertSame
  SFTP: reset sort options every time and update unit test
  SFTP: rm whitespace
  SFTP: define $sortOptions
  SFTP: add the ability for nlist() and rawlist() to be sorted
2014-06-09 20:19:39 +02:00
Andreas Fischer
6e796d091a Merge pull request #364 from terrafrost/sftp-sort2
SFTP: add the ability for nlist() and rawlist() to be sorted

* terrafrost/sftp-sort2:
  SFTP: update one last comment
  SFTP: update unit test comments
  SFTP: add new line to end of unit test
  SFTP: assertEquals -> assertSame
  SFTP: reset sort options every time and update unit test
  SFTP: rm whitespace
  SFTP: define $sortOptions
  SFTP: add the ability for nlist() and rawlist() to be sorted
2014-06-09 20:19:33 +02:00
terrafrost
0e2b2a416b SFTP: reset sort options every time and update unit test 2014-06-09 09:22:30 -05:00