Simon Tatham [Thu, 10 Oct 2002 12:14:05 +0000 (12:14 +0000)]
Half-decent keyboard handling for pterm. Not very well done - it
would have been better to abstract the general key-handling rules
away from the platform-specific keysyms rather than doing clone-
and-hack as I've done - but it'll serve for now. Now all I need is a
real pty back end and pterm should be a just-about-usable prototype.
Simon Tatham [Thu, 10 Oct 2002 10:40:30 +0000 (10:40 +0000)]
A sensible minimum of do_text() and do_cursor() is now implemented.
This means pterm actually _looks_ like the PuTTY terminal emulator
engine, instead of merely giving evidence to the expert eye that
said engine is hidden in there somewhere :-)
Simon Tatham [Wed, 9 Oct 2002 18:09:42 +0000 (18:09 +0000)]
First phase of porting. pterm now compiles and runs under Linux+gtk.
The current pty.c backend is temporarily a loopback device for
terminal emulator testing, the display handling is only just enough
to show that terminal.c is functioning, the keyboard handling is
laughable, and most features are absent. Next step: bring output and
input up to a plausibly working state, and put a real pty on the
back to create a vaguely usable prototype. Oh, and a scrollbar would
be nice too.
In _theory_ the Windows builds should still work fine after this...
Jacob Nevins [Mon, 7 Oct 2002 16:52:55 +0000 (16:52 +0000)]
Fix code which was clobbering people's -P arguments in PSCP (moved it to
before the deferred command line processing).
Also removed a couple of unused variables.
Simon Tatham [Mon, 7 Oct 2002 16:45:23 +0000 (16:45 +0000)]
Begin destabilisation in the wake of 0.53! This checkin contains the
beginning of a Unix port. It's nowhere near done, and currently it
won't even compile on Unix. But this represents the start of the
process of separating out platform-specific code, and also contains
the mkfiles.pl changes required to support a Unix makefile and a
non-flat source tree.
Simon Tatham [Thu, 26 Sep 2002 18:37:33 +0000 (18:37 +0000)]
Add a new SSH2 bug: some servers apparently claim to be able to do
DH group exchange, but choke when you actually try it. Never
automatically enabled; manual control only.
Simon Tatham [Thu, 26 Sep 2002 18:01:21 +0000 (18:01 +0000)]
Any application using non-modal dialogs must use IsDialogMessage in
its main message loop, otherwise keyboard accelerators will not work
in the dialogs. I MUST NOT FORGET THIS AGAIN.
Simon Tatham [Sun, 15 Sep 2002 22:18:02 +0000 (22:18 +0000)]
Jordan Russell's mysterious workaround for an almost equally
mysterious Windows GDI bug. Looks unlikely to cause any other
trouble and it's pretty small, so it can go in.
Simon Tatham [Sun, 15 Sep 2002 13:31:11 +0000 (13:31 +0000)]
Be proactively pedantic about channel-close irregularities: we no
longer just sit there like a lemon if we can't find the channel in
question, we bomb out and complain. With any luck, remaining
problems of this type should be easier to catch under this policy.
Simon Tatham [Sun, 15 Sep 2002 13:24:00 +0000 (13:24 +0000)]
Improvements to SSH1 channel close handling: track sending and
receiving of CLOSE and CLOSE_CONFIRMATION separately rather than
taking short cuts. I believe ssh-1.2.33 sending CLOSE_CONFIRMATION
before CLOSE was causing the remaining incidences of bug
`nonexistent-channel'. (ssh-1.2.33 appears to have unilaterally
decreed that CLOSE and CLOSE_CONFIRMATION are respectively renamed
INPUT_EOF and OUTPUT_CLOSING, hence there is no longer an ordering
constraint on them. Bah.)
Simon Tatham [Sun, 15 Sep 2002 13:21:32 +0000 (13:21 +0000)]
Log file tinkering: copy Event Log entries into the SSH packet log,
so that when people send us a packet log they never forget to send
the Event Log alongside it :-)
Jacob Nevins [Thu, 12 Sep 2002 16:05:05 +0000 (16:05 +0000)]
Semi-bug "long-usernames":
Bump username storage from 32 to 100 chars. Also replaced a couple of magic
numbers with sizeof in ssh.c.
I don't believe this is going to startle any of the protocols PuTTY talks.
Jacob Nevins [Wed, 11 Sep 2002 17:30:36 +0000 (17:30 +0000)]
Updated usage messages for command-line utilities to reflect new options.
Updated manual to reflect reality (e.g. usage messages, '-p port' not actually
implemented, sprinkle references to '-i keyfile').
(I've put "Release 0.53" in the messages; let's hope this doesn't cause a
flood of "where is 0.53?" email.)
I don't guarantee that the result is entirely sane and sensible in all
respects, but it is at least consistent.
Simon Tatham [Mon, 2 Sep 2002 13:47:50 +0000 (13:47 +0000)]
After trying a succession of tests on Jacob's machine, I think I've
finally isolated the _important_ difference between Romano Trampus's
working printing.c and my failing one: he ignores the error return
from the first exploratory how-big-does-my-buffer-need-to-be call to
EnumPrinters(), because not having enough buffer space counts as an
error condition. Hence I am officially a klutz, but this should now
work. (Also reverted ENUM_LEVEL to 1, again, because that seems to
be the choice of people whose code works.)
Jacob Nevins [Mon, 2 Sep 2002 13:04:46 +0000 (13:04 +0000)]
Mention PocketPC in the WinCE question. I'm not sure how similar WinCE and
PocketPC are, though -- perhaps it merits its own question. (Although I don't
know of anyone who's looked into it yet.)
Simon Tatham [Sun, 1 Sep 2002 13:12:51 +0000 (13:12 +0000)]
I'm rapidly running out of patience for trying all possible
combinations of options to EnumPrinters() to see which one works,
but here's another one tried at random for now. *sigh*
Simon Tatham [Sun, 18 Aug 2002 09:27:15 +0000 (09:27 +0000)]
Add BUG_SSH2_DERIVEKEY, present (according to OpenSSH) in ssh.com
versions 2.0.*, and causing the shared secret not to be included in
key derivation hashes. (This doesn't quite cause a blatant security
hole because the session ID - _derived_ from the shared secret - is
still included.)
Simon Tatham [Sun, 18 Aug 2002 09:10:17 +0000 (09:10 +0000)]
In SSH2, if decrypting the packet length gave us a negative value,
subsequent packet-receiver code would fail to notice anything was
wrong and segfault. Since this is clearly a silly packet length
anyway, we now explicitly reject it as a daft encryption error.
Simon Tatham [Mon, 12 Aug 2002 14:08:55 +0000 (14:08 +0000)]
Alter the Feedback page, so that instead of saying `at some point we
plan to start blocking executable attachments' it now says we _do_
block executable attachments. :-)
Simon Tatham [Sun, 11 Aug 2002 13:02:01 +0000 (13:02 +0000)]
Final fixes to keyboard-interactive so it now works with packets
containing more than one prompt instead of less than one, and also
correctly enables echo on prompts that the server requests it for.
In the process I've moved the whole username/password input routine
out into its own function, where it's called independently of which
SSH protocol we're using, so this should even have _saved_ code
size. Rock!
Simon Tatham [Sun, 11 Aug 2002 12:17:25 +0000 (12:17 +0000)]
Anecdotal evidence suggests that a single EnumPrinters() call
specifying both PRINTER_ENUM_LOCAL and PRINTER_ENUM_CONNECTIONS
catches more printers in some circumstances than two EnumPrinters()
calls each specifying just one of them. We'll try it for a bit; if
it goes wrong I might have to put back the two original calls as
well and sort out some means of removing duplicate printers from the
list.
Simon Tatham [Thu, 8 Aug 2002 17:03:58 +0000 (17:03 +0000)]
ssh.com 3.2.0 uses zlib sync flush (start and close an empty
uncompressed block at the end of each compressed packet) which we
were embarrassingly unable to deal with because we assumed every
uncompressed block contained at least one byte. Particularly silly
because I _knew_ about the existence of sync flush when I coded this
module. Arrgh. Still, now fixed.
Simon Tatham [Wed, 7 Aug 2002 19:09:33 +0000 (19:09 +0000)]
Arrgh, we can't have -p for port number because we're already using
it for preserving file attributes in PSCP! Ah well; looks as if
that's one where we'll have to agree to differ with OpenSSH.
Simon Tatham [Tue, 6 Aug 2002 17:57:37 +0000 (17:57 +0000)]
Pageant's command line handling now uses my new split_into_argv()
function, because it's silly to have two (and because the old one
was not the same as the new one, violating the Principle of Least
Surprise).
Simon Tatham [Tue, 6 Aug 2002 17:35:34 +0000 (17:35 +0000)]
Oops. That is to say, only loading and saving of PuTTY private keys
should default to .PPK - loading and saving of public keys and of
foreign key formats still defaults to All Files. Ahem.
Simon Tatham [Sun, 4 Aug 2002 21:18:56 +0000 (21:18 +0000)]
Revamp of command-line handling. Most command line options should
now be processed in cmdline.c, which is called from all utilities
(well, not Pageant or PuTTYgen). This should mean we get to
standardise almost all options across almost all tools. Also one
major change: `-load' is now the preferred option for loading a
saved session in PuTTY proper. `@session' still works but is
deprecated.
Simon Tatham [Sat, 3 Aug 2002 16:22:55 +0000 (16:22 +0000)]
Fix culpable lack of generality in keyboard-interactive
authentication: a k-i request packet can contain any number of auth
prompts (including zero!) and we must ask the user all of them and
send back a packet containing the same number of responses. FreeBSD
systems were sending a zero-prompts packet which was crashing us;
this now appears fixed (we correctly return a zero-responses packet)
but I haven't tested a multiple-prompts packet because I can't
immediately think of a server that generates them.
Simon Tatham [Sat, 15 Jun 2002 16:52:35 +0000 (16:52 +0000)]
One of the recent port forwarding crash reports contained details
which suggested bufchain_prefix() was finding an improperly
initialised bufchain structure. Looking at the code, this may indeed
have been able to happen, since the bufchain in a SOCKDATA_DORMANT
channel was not initialised until CHANNEL_OPEN_CONFIRMATION was
received. This seems utterly daft, so I now call bufchain_init()
when the channel structure is actually created. With any luck the
crash will mystically disappear now (I wasn't able to reproduce it
myself).
Simon Tatham [Sat, 15 Jun 2002 16:31:22 +0000 (16:31 +0000)]
Padding on the end of the encrypted data in OpenSSH key format was
broken: the OpenSSL EVP layer specifies a very particular form of
padding, which I wasn't generating because it hadn't occurred to me
that it might be mandatory. Irritatingly this was causing our
exported OpenSSH keys to load perfectly happily back in through our
OpenSSH import routines, but to be rejected by OpenSSH proper. Sigh.
Simon Tatham [Sat, 8 Jun 2002 09:00:00 +0000 (09:00 +0000)]
Modify the Feedback page / Appendix B to expand the section about
not sending us large attachments, and in particular remove the
emphasis on screen shots in the hope of also decreasing the number
of _other_ large attachments we get.
Simon Tatham [Fri, 31 May 2002 17:39:16 +0000 (17:39 +0000)]
Workaround for the SSH2 RSA padding bug in OpenSSH 2.5 - 3.2
inclusive. Padding is accomplished by rewriting the signature blob
rather than at the point of generation, in order to avoid having to
move part of the workaround into Pageant (and having to corrupt the
agent wire protocol to allow PuTTY to specify whether it wants its
signatures padded!).
Simon Tatham [Sat, 18 May 2002 09:20:41 +0000 (09:20 +0000)]
UI changes for key imports. We now have a separate Load command and
Import command; the former warns you if you load a foreign key,
whereas the latter doesn't. So the user should always be aware, one
way or the other, that a format conversion is taking place.
Simon Tatham [Sat, 11 May 2002 16:45:29 +0000 (16:45 +0000)]
Added a framework for importing foreign key formats, and implemented
importing of OpenSSH SSH2 private key files (both encrypted and
unencrypted). Seems to work fine.
Simon Tatham [Sat, 11 May 2002 12:13:42 +0000 (12:13 +0000)]
Improved error messages if you use the wrong key type: you should
now be told that the key is the wrong type, _and_ what type it is,
rather than being given a blanket `unable to read key file' message.
Simon Tatham [Sat, 27 Apr 2002 16:20:16 +0000 (16:20 +0000)]
Additions to the Feedback page to emphasise that we can't answer all
our mail any more, and to encourage support questions to be sent
elsewhere as a first resort.
Jacob Nevins [Thu, 18 Apr 2002 22:23:12 +0000 (22:23 +0000)]
Added comments to document '-gui' Windows messages, based on putty-bugs post
<E14g2ty-0008WN-00@ixion.tartarus.org> (except for Ryan Finnie's extra
messages).
Simon Tatham [Sun, 31 Mar 2002 16:28:06 +0000 (16:28 +0000)]
The console version of askappend() completely forgot to check
cfg.logxfovr to see whether the user had already specified what
should happen to log files. Fixed.