1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 09:58:01 +00:00
Commit Graph

136 Commits

Author SHA1 Message Date
Simon Tatham
03c9b6107b Replace PuTTY's 2-3-4 tree implementation with the shiny new counted
one, in preparation for using it to speed up scrollback.

[originally from svn r1053]
2001-04-16 17:18:24 +00:00
Simon Tatham
522f130391 Pageant interface changes. You can now do `pageant -c command' to
spawn another command after starting Pageant. Also, if Pageant is
already running, `pageant keyfile' and `pageant -c command' will do
the Right Thing, that is, add the key to the _first_ Pageant and/or
run a command and then exit. The only time you now get the `Pageant
is already running' error is if you try to start the second copy
with no arguments.
NB the affected files in this checkin are rather wide-ranging
because I renamed the not really SSH1-specific
`ssh1_bignum_bitcount' function to just `bignum_bitcount'.

[originally from svn r1044]
2001-04-16 11:16:58 +00:00
Simon Tatham
fb8745a7d7 Log the text message in SSH_MSG_DISCONNECT (both protocols) so that
when people submit Event Logs for diagnosis it's a little easier to
work out what's up.

[originally from svn r1043]
2001-04-16 09:10:34 +00:00
Simon Tatham
36df70978a After we fall back to 3DES, double-check the server really does
support it, and bomb out with a complaint if not.

[originally from svn r1042]
2001-04-16 07:49:11 +00:00
Simon Tatham
1734a09466 Experimental checkin to see if we can prevent multiple closes ever
being sent on an SSH1 forwarding (or indeed primary) channel.

[originally from svn r1037]
2001-04-11 12:29:35 +00:00
Simon Tatham
ab3443b9e6 Fix the detect_bugs routine, which was failing to find the right bit
of the version string :-)

[originally from svn r1026]
2001-03-29 13:40:03 +00:00
Simon Tatham
6a4294fbac Fix the SSH protocol version exchange, which had a weird stack trash
in it which for some reason didn't show up when built with VC++6 but
blew up the nightlies. Should be OK now.

[originally from svn r1023]
2001-03-23 10:28:36 +00:00
Simon Tatham
4d881300c8 Remove the length limit on protocol version strings. (In principle, I
could have got away with upping it to 256, but I didn't want a repeat
of the chaos when some server accidentally breaks that limit too...)

[originally from svn r1019]
2001-03-22 17:32:40 +00:00
Simon Tatham
0cda163a2d Plink in noninteractive-script mode should not show the `Authenticated
with public key' message in SSH2 (it already doesn't in SSH1). It
shouldn't show the login banner either, since its output is probably
redirected to something which will choke on it.

[originally from svn r1011]
2001-03-19 10:27:59 +00:00
Simon Tatham
4b5cda8aaa Add Norman Brandinger's suggested `-m' option in plink, to read the
remote command from a local file. Advantage: you can have more than
one line in it, so you can remotely run what's effectively a small
script.

[originally from svn r1010]
2001-03-19 10:24:55 +00:00
Simon Tatham
c152034706 SSH2 channel fix: received WINDOW_ADJUSTs were always applied to the
primary (shell session) channel, rather than the one they were aimed
at. This _despite_ me having deliberately gone and looked the channel
ID up in the B-tree - I was ignoring the result by accident :-/

X forwarding should now work in SSH2 even on non-trivial clients (ie
things other than xdpyinfo).

[originally from svn r1007]
2001-03-16 12:09:44 +00:00
Simon Tatham
02f012a66a Correct handling of SSH1 protocol flags, in particular
PROTOFLAG_SCREEN_NUMBER, without which OpenSSH 2.5.1 was objecting to
my gratuitous inclusion of a screen number in the SSH1 X forwarding
request. Ahem.

[originally from svn r1006]
2001-03-16 11:58:54 +00:00
Simon Tatham
947d33408f Add support for SSH2 userauth banners. We currently can't deal with
printing them _before_ the username prompt. This apparently isn't very
serious because OpenSSH doesn't _send_ it before the username prompt,
but only in response to USERAUTH_REQUEST "none". Good job we do that!

[originally from svn r1005]
2001-03-15 17:14:31 +00:00
Simon Tatham
080d59422b At long last: PuTTY will now report its version to the server
sensibly, as a release or a snapshot or a local build. With any luck
this should make bug reporting easier to handle, because anyone who
sends their Event Log should automatically include the version :-)

[originally from svn r1003]
2001-03-15 12:15:02 +00:00
Simon Tatham
4b5a97fbee Fix a few trivial compiler warnings
[originally from svn r1001]
2001-03-15 11:39:17 +00:00
Simon Tatham
31d6765aca Bit more robustness when talking to Pageant
[originally from svn r1000]
2001-03-15 11:38:02 +00:00
Simon Tatham
1a9d213a74 Oops - don't invent an X authorisation when doing agent forwarding!
Overenthusiastic c'n'p breaks the world.

[originally from svn r999]
2001-03-15 11:32:23 +00:00
Simon Tatham
c760ef6f83 Fix a segfault on abrupt X connection shutdown.
[originally from svn r998]
2001-03-15 11:19:59 +00:00
Simon Tatham
7b0e082700 Dave Hinton's modifications to the network layer interface, which
should make it possible to add SSL support later.

[originally from svn r996]
2001-03-13 10:22:45 +00:00
Simon Tatham
55659a959f ssh_get_password has become ssh_get_line, so it can handle usernames
as well. This should fix the multiple-reads-on-stdin bug in plink.

[originally from svn r994]
2001-03-12 15:31:53 +00:00
Simon Tatham
9ee21069b5 Zero length passwords no longer cause an assertion failure :-)
[originally from svn r993]
2001-03-12 15:12:33 +00:00
Simon Tatham
d823077f18 Add support for using Diffie-Hellman with short exponents (sshdh.c
contains a reference to a paper on the subject). Reduces time taken
for DH group exchange to the point where it's viable to enable it
all the time, so I have. :-)

[originally from svn r991]
2001-03-10 11:04:07 +00:00
Simon Tatham
630a9a628f Having introduced a new function into the SSH2 compression structure,
it would help if I implemented it in the dummy no-compression case!

[originally from svn r987]
2001-03-08 10:07:22 +00:00
Simon Tatham
a34ef3df55 Introduce the ability to distinguish remote SSH implementations by
their version strings and enable bug compatibility modes.

[originally from svn r985]
2001-03-06 10:32:28 +00:00
Simon Tatham
48c0729310 Update a couple of messages to be clearer to users who don't have
access to complete documentation (ie all of them at the moment :-)

[originally from svn r984]
2001-03-06 09:29:43 +00:00
Simon Tatham
aaeecbb4ea Make the SSH2 traffic analysis defence robust in the face of Zlib
compression. This involves introducing an option to disable Zlib
compression (that is, continue to work within the Zlib format but
output an uncompressed block) for the duration of a single packet.

[originally from svn r982]
2001-03-05 16:38:42 +00:00
Simon Tatham
a1d5dab580 Further traffic analysis defences
[originally from svn r981]
2001-03-05 10:32:36 +00:00
Simon Tatham
16f4ffe616 Implement OpenSSH's private agent forwarding extension. I believe we
now interoperate with OpenSSH/SSH2 to _exactly_ the same level as we
interoperate with SSH1. Which is pretty cool really.

[originally from svn r980]
2001-03-03 16:38:44 +00:00
Simon Tatham
de1c70a5d4 Remove a spurious \r\n from an Event Log message
[originally from svn r978]
2001-03-03 16:05:52 +00:00
Simon Tatham
245cf9c8c9 SSH2 can now use Pageant to obtain keys from
[originally from svn r977]
2001-03-03 15:56:39 +00:00
Simon Tatham
deccfaa3ef The authentication diagnostics in SSH2 should now be better.
Additionally, the ability to switch usernames if you mistype the
first one has been restored (although it didn't actually work
because OpenSSH didn't feel like playing; patch submitted :-).

[originally from svn r975]
2001-03-03 13:53:44 +00:00
Simon Tatham
28b1fc766c Preliminary support for RSA user authentication in SSH2! Most of the
error messages are currently wrong, and Pageant doesn't yet support
the new key type, and I haven't thoroughly tested that falling back
to password authentication and trying invalid keys etc all work. But
what I have here has successfully performed a public key
authentication, so it's working to at least some extent.

[originally from svn r973]
2001-03-03 11:54:34 +00:00
Simon Tatham
97ace7d80d Added support for RSA host keys (not user keys yet)
[originally from svn r969]
2001-03-02 17:13:36 +00:00
Simon Tatham
b182356f99 Support for selecting AES from the GUI. In the process, I've had to
introduce another layer of abstraction in SSH2 ciphers, such that a
single `logical cipher' (as desired by a user) can equate to more
than one `physical cipher'. This is because AES comes in several key
lengths (PuTTY will pick the highest supported by the remote end)
and several different SSH2-protocol-level names (aes*-cbc,
rijndael*-cbc, and an unofficial one rijndael-cbc@lysator.liu.se).

[originally from svn r967]
2001-03-02 13:55:23 +00:00
Simon Tatham
bf25fd405c Add AES support in SSH2. Not yet complete: there's no way to select
it in the GUI (or even in the registry).

[originally from svn r966]
2001-03-02 11:44:35 +00:00
Simon Tatham
cc9d7ba87e Diffie-Hellman group exchange in SSH2. Currently #ifdeffed out
(change the sense of #ifdef DO_DIFFIE_HELLMAN_GEX in ssh.c) because
it's _far_ too slow. Will be re-enabled once the bignum routines
work a bit faster (or rather a _lot_ faster).

[originally from svn r962]
2001-03-01 17:55:40 +00:00
Simon Tatham
f72b5aa95f Remove the last lingering knowledge, outside sshbn.c, of the
internal structure of the Bignum type. Bignum is now a fully opaque
type unless you're inside sshbn.c.

[originally from svn r960]
2001-03-01 17:41:26 +00:00
Simon Tatham
39cf689fd6 psftp now works as part of the PuTTY suite
[originally from svn r940]
2001-02-24 16:08:56 +00:00
Simon Tatham
5cdfd67cd1 Add a traffic analysis defence to SSH2 password authentication
[originally from svn r936]
2001-02-23 13:15:17 +00:00
Simon Tatham
8a4206e636 Attempt to fix the remaining key re-exchange bug
[originally from svn r934]
2001-02-20 13:55:59 +00:00
Simon Tatham
60585cff9c Yet another attempt at OOB handling in the network abstraction. This
version allows you to specify, per socket, which sockets receive OOB
data in-line (so that you know what was before the mark and what was
after) and which receive it out of line (so it's really a one-byte
out-of-band facility rather than discard-to-mark). This reflects the
fact that rlogin appears to make more sense in the latter mode, and
telnet in the former. This patch makes rlogin work right for me.

[originally from svn r921]
2001-02-01 14:11:04 +00:00
Simon Tatham
362d3deaf1 Prevent duplicate sk_close() calls on the same socket when the
connection dies unexpectedly (CONNABORTED / CONNRESET)

[originally from svn r910]
2001-01-29 14:30:59 +00:00
Simon Tatham
6017418fca Remove a segfault in bombout() macro: don't sk_close() the socket if
it's already NULL. The `Incorrect MAC' problem was causing
ssh2_rdpkt to bombout(), setting s to NULL, and then a secondary
bombout() was happening at the next level up, causing a segfault.

[originally from svn r909]
2001-01-29 13:19:59 +00:00
Simon Tatham
65b47c59c6 Fix the SSH2 key re-exchange bug. Session id != exchange hash,
because the session id is the exchange hash from the _first_ key
exchange, so in subsequent key exchanges they're different.

[originally from svn r901]
2001-01-26 18:50:13 +00:00
Simon Tatham
62a76699ad Ensure all backends _remember_ the connection has closed after
receiving a network error. Should prevent the cascading-error-box
bug.

[originally from svn r900]
2001-01-26 12:22:16 +00:00
Simon Tatham
7a79df8fe6 Rethink the whole line discipline architecture. Instead of having
multiple switchable line disciplines, we now have a single unified
one which changes its behaviour based on option settings. Each
option setting can be suggested by the back end and/or the terminal
handler, and can be forcibly overridden by the configuration. Local
echo and local line editing are separate, independently switchable,
options.

[originally from svn r895]
2001-01-24 14:08:20 +00:00
Simon Tatham
89505459e3 Improve socket error handling so that a socket error isn't an
automatic fatalbox(). Instead, the error is passed to the receiver
routine, which can decide just how fatal the problem really is.

[originally from svn r894]
2001-01-24 10:11:18 +00:00
Simon Tatham
1eb0308ad7 Remove the entirely pointless fourth parameter from x11_init().
[originally from svn r889]
2001-01-23 11:02:02 +00:00
Simon Tatham
83066d174c Bring the SSH2 channel architecture up to scratch, enabling X
forwarding to work under SSH2. Also - surprise! - implement X
forwarding under SSH2.

[originally from svn r882]
2001-01-22 15:36:07 +00:00
Simon Tatham
4a339ef430 Add X11 forwarding, mainly thanks to Andreas Schultz
[originally from svn r878]
2001-01-22 11:34:52 +00:00