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

95 Commits

Author SHA1 Message Date
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
Simon Tatham
ca90be26a8 Experimental Rlogin support, thanks to Delian Delchev. Local flow
control is unsupported, and server-to-client comms may fail for want
of working TCP Urgent.

[originally from svn r875]
2001-01-19 10:10:37 +00:00
Simon Tatham
e364010d4f Trivial fix for when the two directions select different encryption
algorithms

[originally from svn r869]
2001-01-17 16:57:15 +00:00
Simon Tatham
43dff68308 Oops - accidentally undid rev 1.82 [r844]
[originally from svn r853]
[r844 == eac718ee1b]
2001-01-09 17:16:43 +00:00
Simon Tatham
609593e119 Ensure ssh specials (EOF and PING) don't occur except in connection
states where they're meaningful. In case Plink misses an EOF by
attempting to send it before reaching SSH_STATE_SESSION, it is
buffered and sent later. PINGs can be sent during any part of the
initialisation phase _except_ before deciding whether to use
protocol 1 or 2.

[originally from svn r850]
2001-01-08 13:57:45 +00:00
Simon Tatham
eac718ee1b Adam D Ligas's segfault: one form of connection closure was failing
to set SSH_STATE_CLOSED, causing subsequent resize events to go foom.

[originally from svn r844]
2001-01-07 17:18:12 +00:00
Simon Tatham
7a580aa4d8 Attempt to get repeated key exchange working in SSH2. Still under
test - might not be 100%. I think it _ought_ to work though.

[originally from svn r826]
2000-12-18 09:20:08 +00:00
Simon Tatham
c34ff1bcbf Fix an intermittent segfault that prevented the new Zlib compression
from being very useful. (Thanks to Minefield for catching it.)

[originally from svn r820]
2000-12-12 11:07:59 +00:00
Simon Tatham
d5240d4157 Make memory management uniform: _everything_ now goes through the
smalloc() macros and thence to the safemalloc() functions in misc.c.
This should allow me to plug in a debugging allocator and track
memory leaks and segfaults and things.

[originally from svn r818]
2000-12-12 10:33:13 +00:00
Simon Tatham
8eca227b92 Improve SSH2 host key abstraction into a generic `signing key'
abstraction, so as to be able to re-use the same abstraction for
user authentication keys and probably in the SSH2 agent (when that
happens) as well.

[originally from svn r815]
2000-12-02 12:48:15 +00:00
Simon Tatham
6bdd92be5f Fix bugtraq 1949: server could open an agent forwarding channel even
if agent forwarding had not been negotiated on, and more
particularly even if it had been deliberately disabled by the user.

[originally from svn r814]
2000-12-02 11:43:25 +00:00
Simon Tatham
d094883d3c Fix segfault when you press a key before the SSH protocol decides whether
it's doing SSH1 or SSH2. Only visible on slow servers :-)

[originally from svn r803]
2000-11-21 10:53:10 +00:00
Simon Tatham
462063cdc5 Implement Zlib compression, in both SSH1 and SSH2.
[originally from svn r792]
2000-11-01 21:34:21 +00:00
Simon Tatham
696400a672 Stop the "Sent username %s" message coming up twice in pscp -v
[originally from svn r772]
2000-10-27 09:24:32 +00:00
Simon Tatham
2c9c817895 Misc bugfixes
[originally from svn r771]
2000-10-27 09:17:19 +00:00
Simon Tatham
eab981fbd1 Format SSH2_MSG_DISCONNECT correctly (with reason code, reason
string, and language tag).

[originally from svn r770]
2000-10-26 13:10:47 +00:00
Simon Tatham
809bd81d5c Fix another bignum formatting problem. This one hit Diffie-Hellmann
[originally from svn r761]
2000-10-24 21:43:39 +00:00
Simon Tatham
5ff9cc2f1f SSH2 connections weren't closing cleanly after socket revamp. Fixed.
[originally from svn r754]
2000-10-24 09:55:45 +00:00
Simon Tatham
039103ff5d Window resizing wasn't working in SSH2
[originally from svn r753]
2000-10-24 09:49:03 +00:00
Simon Tatham
bbbda4110b Created a shiny new abstraction for the socket handling. Has many
advantages:
 - protocol modules can call sk_write() without having to worry
   about writes blocking, because blocking writes are handled in the
   abstraction layer and retried later.
 - `Lost connection while sending' is a thing of the past.
 - <winsock.h> is no longer needed in most modules, because
   "putty.h" doesn't have to declare `SOCKET' variables any more,
   only the abstracted `Socket' type.
 - select()-equivalent between multiple sockets will now be handled
   sensibly, which opens the way for things like SSH port
   forwarding.

[originally from svn r744]
2000-10-23 10:32:37 +00:00
Simon Tatham
e32603347c Introduce a sane interface function, from_backend(), for backends to
use when they have data from the network. Replaces the utterly daft
inbuf / inbuf_head / term_out() interface, which only made sense
when feeding to terminal.c. (terminal.c now implements
from_backend() as a small function that gateways to the old
interface.)

As a side effect, from_backend() also has an `is_stderr' parameter,
so scp can once again separate the server's pronouncements on stderr
from the actual protocol progress on stdout.

[originally from svn r729]
2000-10-20 13:51:46 +00:00
Simon Tatham
8d0bee8629 PuTTYgen initial version. Still to do are basic user-friendliness
features (prompt for passphrase twice, prompt before overwriting a
file, check the key file was actually saved OK), testing of the
generated keys to make sure I got the file format right, and support
for a variable key size. I think what's already here is basically
sound though.

[originally from svn r715]
2000-10-19 15:43:08 +00:00
Simon Tatham
f543b08ca5 Add some more commented-out diagnostics for ssh1
[originally from svn r713]
2000-10-18 15:33:05 +00:00
Simon Tatham
95697270b5 Implement MD5 MAC for the benefit of old SSH2 servers
[originally from svn r709]
2000-10-12 14:24:58 +00:00
Simon Tatham
fd3e15f328 Miscellaneous fixes for better interoperation with commercial SSH 2
[originally from svn r708]
2000-10-12 13:34:46 +00:00
Simon Tatham
3e83d75154 Add a config option to emulate the HMAC bug in commercial SSH v2.3.x
and earlier (namely, it uses only 16 bytes of key rather than 20).

[originally from svn r706]
2000-10-12 12:39:44 +00:00
Simon Tatham
fd5588d087 Robert de Bath's big patch:
- cope with strange WinSock wrappers not supporting SIOCATMARK
  - define yet more terminal compatibility modes
  - support UK-ASCII (just like US-ASCII but # is a sterling sign)
  - support connection keepalives at a configurable interval

[originally from svn r692]
2000-10-09 12:53:32 +00:00
Simon Tatham
8c169b0c6d Tighten up use of "static" throughout. Module-internal things should NOT
be exported willy-nilly. It encourages people to use them.

[originally from svn r677]
2000-10-06 11:42:30 +00:00
Simon Tatham
9a9bd54197 Store default port number in each back end
[originally from svn r669]
2000-10-04 14:35:15 +00:00
Simon Tatham
a4a9ccc70b Further restructuring
[originally from svn r657]
2000-09-29 15:56:33 +00:00
Simon Tatham
bfec52c1c9 Fix ssh2 after the rev 1.54 [r649] reorg broke it
[originally from svn r656]
[r649 == 960c03468d]
2000-09-29 15:53:59 +00:00
Simon Tatham
0a1fe7a9af Make sure a locally entered login name still comes up in the pw prompt
[originally from svn r653]
2000-09-29 12:04:42 +00:00
Simon Tatham
0e9b76540b Add -pw and -P options, and usage/version message, to plink
[originally from svn r650]
2000-09-29 08:56:30 +00:00
Simon Tatham
960c03468d Minor restructuring to ssh.c in preparation for portability drive
[originally from svn r649]
2000-09-29 08:43:47 +00:00
Simon Tatham
087f33eb71 While we're doing a hostkey reorg, store port numbers as well
[originally from svn r643]
2000-09-28 08:37:10 +00:00
Simon Tatham
aad0a52dfb Rationalised host key storage. Also started code reorg: persistent-state
routines have been moved out into a replaceable module winstore.c.

[originally from svn r639]
2000-09-27 15:21:04 +00:00
Simon Tatham
0fed43e9f4 Remove the special hooks in ssh.c for pscp. pscp now uses the standard
interface to the outside of the ssh module. This means pscp now works
without change in SSH2.

[originally from svn r638]
2000-09-27 09:36:39 +00:00
Simon Tatham
355cdbd5e8 Implement OpenSSH-compatible RSA key fingerprints and use them throughout
[originally from svn r637]
2000-09-26 14:26:21 +00:00
Simon Tatham
ab839c6127 Fix a segfault in agent forwarding code
[originally from svn r633]
2000-09-26 11:16:47 +00:00
Simon Tatham
3e4619b479 The "Authenticated using key from agent" message is a verbose-only one
[originally from svn r631]
2000-09-26 10:06:05 +00:00
Simon Tatham
673f2e48a7 Rationalise ordering of authentication operations. Still some work to do,
but at least pscp no longer hangs when prompting for a passphrase

[originally from svn r621]
2000-09-25 10:14:53 +00:00
Simon Tatham
e70425dda6 Enable better build-time flexibility over which WinSock to include
[originally from svn r615]
2000-09-22 13:16:49 +00:00