Simon Tatham [Mon, 12 Mar 2001 12:24:07 +0000 (12:24 +0000)]
Finally fixed the point/pixel confusion in font handling. Thanks to
Roman Surma for pointing me at the relevant bits of documentation. All
font sizes should now be measured in points, and everything should be
consistent, and (with any luck) old Registry settings should adapt
gracefully too.
Simon Tatham [Sat, 10 Mar 2001 11:04:07 +0000 (11:04 +0000)]
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. :-)
Simon Tatham [Mon, 5 Mar 2001 16:38:42 +0000 (16:38 +0000)]
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.
Simon Tatham [Sat, 3 Mar 2001 16:38:44 +0000 (16:38 +0000)]
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.
Simon Tatham [Sat, 3 Mar 2001 13:53:44 +0000 (13:53 +0000)]
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 :-).
Simon Tatham [Sat, 3 Mar 2001 11:54:34 +0000 (11:54 +0000)]
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.
Simon Tatham [Fri, 2 Mar 2001 13:55:23 +0000 (13:55 +0000)]
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).
Simon Tatham [Thu, 1 Mar 2001 17:55:40 +0000 (17:55 +0000)]
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).
Simon Tatham [Thu, 1 Mar 2001 17:45:31 +0000 (17:45 +0000)]
Add a key length indication to each SSH2 cipher structure, in
preparation for needing to know how much key material each cipher
needs in order to select a suitable Diffie-Hellman group.
Simon Tatham [Thu, 1 Mar 2001 17:41:26 +0000 (17:41 +0000)]
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.
Simon Tatham [Tue, 27 Feb 2001 17:02:51 +0000 (17:02 +0000)]
Timestamp every line of the Event Log. The primary reason for this
(generating detail in bug reports when SSH2 repeat key exchange
failed) is no longer an issue, but it might be useful for other
things. It's a _log_ dammit, and logs should be timestamped.
Simon Tatham [Mon, 26 Feb 2001 16:39:15 +0000 (16:39 +0000)]
Moderately evil workaround to compensate for a variation in
behaviour of FXP_REALPATH. (Specifically, BSD and GNU realpath(3)
disagree over whether to return success when computing the realpath
for a putative new file to be created in a valid directory. There's
no way we can tell from (say) the OpenSSH version string because
OpenSSH might have been compiled to use the local realpath _or_ its
own nonbroken one.)
Simon Tatham [Mon, 5 Feb 2001 13:42:33 +0000 (13:42 +0000)]
Modifications to the new Close On Exit option:
- wording change (required a patch to winctrls.c:radioline())
- `only on clean exit' is used when an old-style config says `yes',
on the grounds that it's more generally useful than `always' and
also we want to map the old default to the new default.
Simon Tatham [Thu, 1 Feb 2001 14:11:04 +0000 (14:11 +0000)]
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.
Simon Tatham [Thu, 1 Feb 2001 11:35:15 +0000 (11:35 +0000)]
Avoid mallocing zero bytes in the event log Copy processing, which
was apparently a problem for compilers other than Visual C. Thanks
to Roman Pompejus for pointing it out.
Simon Tatham [Mon, 29 Jan 2001 13:19:59 +0000 (13:19 +0000)]
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.
Simon Tatham [Fri, 26 Jan 2001 18:50:13 +0000 (18:50 +0000)]
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.
Simon Tatham [Wed, 24 Jan 2001 14:08:20 +0000 (14:08 +0000)]
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.
Simon Tatham [Wed, 24 Jan 2001 10:11:18 +0000 (10:11 +0000)]
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.
Simon Tatham [Wed, 24 Jan 2001 09:29:55 +0000 (09:29 +0000)]
Ahem. The log-file Browse button should set cfg.logfilename and not
cfg.keyfile. Next time I copy and paste a huge chunk of code, I
should take more care about it :-/
Simon Tatham [Tue, 23 Jan 2001 10:19:17 +0000 (10:19 +0000)]
Fix a subtle bug affecting multiple-socket handling in Plink. (Was
interfering with X forwarding.)
Details of bug: the event object used as the target of
WSAEventSelect is created in such a way that it is automatically
reset when it releases a thread from WaitFor*Objects. Subsequently,
a read on the first socket in the list causes another network event
if not all the available data was read; thus the event object is set
again. Then, WSAEnumNetworkEvents is called again for the _second_
socket, and is passed the network event, which it therefore resets.
So an event has been dropped, and things only get restarted when
some more data arrives on the first socket.
Simon Tatham [Mon, 22 Jan 2001 17:17:26 +0000 (17:17 +0000)]
Jeremy Sawicki's fix for the multiple-conflicting-accelerators
problems: controls are now destroyed and recreated on a panel
switch. In addition, this patch also introduces a better means of
doing the group boxes.