simon-git: putty (main): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Fri Apr 2 13:46:00 BST 2021


TL;DR:
  c4dc78bd winpgnt: use pageant_enum_keys to update GUI key list.
  ceb645b0 winpgnt: mark encrypted/encryptable keys in GUI key list.
  efc31ee3 Polish up passphrase prompts for key decryption.
  04390ff4 winpgnt: more rigorous command-line processing.
  af6adb5c winpgnt: command-line option to add keys encrypted.
  b0f9e3a6 winpgnt: GUI actions to add keys encrypted.
  fbab1667 winpgnt: fix GUI removal of encrypted keys.
  30c87c28 Make unused Pageant accessor functions private.
  e0bbe1e6 Refactor pageant_nth_ssh*_key.
  fc9fbfe1 gtk-askpass: add margins on left and right of the prompt.

Repository:     https://git.tartarus.org/simon/putty.git
On the web:     https://git.tartarus.org/?p=simon/putty.git
Branch updated: main
Committer:      Simon Tatham <anakin at pobox.com>
Date:           2021-04-02 13:46:00

commit c4dc78bd8578e7c5422ee10c3f0067d3201d1f49
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=c4dc78bd8578e7c5422ee10c3f0067d3201d1f49;hp=443034090c47a8ae0bfe4dbeab96d05803f870a4
Author: Simon Tatham <anakin at pobox.com>
Date:   Sun Mar 28 15:40:57 2021 +0100

    winpgnt: use pageant_enum_keys to update GUI key list.
    
    The advantage of this API is that it gives us the extra flags saying
    whether each key is encrypted or re-encryptable.
    
    NFC: we don't yet do anything with that information, just make it
    available for future work.

 windows/winpgnt.c | 193 ++++++++++++++++++++++++++++++------------------------
 1 file changed, 109 insertions(+), 84 deletions(-)

commit ceb645b042e888263ff901df7ab5de3ea45579af
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=ceb645b042e888263ff901df7ab5de3ea45579af;hp=c4dc78bd8578e7c5422ee10c3f0067d3201d1f49
Author: Simon Tatham <anakin at pobox.com>
Date:   Fri Apr 2 10:13:01 2021 +0100

    winpgnt: mark encrypted/encryptable keys in GUI key list.
    
    Now they have '(encrypted)' or '(re-encryptable)' after them, the same
    as Unix Pageant.
    
    Mostly this just involved tinkering with the code in winpgnt.c that
    makes up the entry to put in the list box. But I also had to sprinkle
    a few more calls to keylist_update() into the cross-platform
    pageant.c, to make sure that the key list window is proactively
    updated whenever a key is decrypted, re-encrypted, or loaded in
    encrypted-only form.

 pageant.c         |  6 ++++++
 windows/winpgnt.c | 56 +++++++++++++++++++++++--------------------------------
 2 files changed, 29 insertions(+), 33 deletions(-)

commit efc31ee30d88fdc615f08e00eb1ddc3b8cc95193
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=efc31ee30d88fdc615f08e00eb1ddc3b8cc95193;hp=ceb645b042e888263ff901df7ab5de3ea45579af
Author: Simon Tatham <anakin at pobox.com>
Date:   Fri Apr 2 10:49:18 2021 +0100

    Polish up passphrase prompts for key decryption.
    
    Now Windows Pageant has two clearly distinct dialog boxes for
    requesting a key passphrase: one to use synchronously when the user
    has just used the 'Add Key' GUI action, and one to use asynchronously
    in response to an agent client's attempt to use a key that was loaded
    encrypted.
    
    Also fixed the wording in the asynchronous box: there were two copies
    of the 'enter passphrase' instruction, one from the dialog definition
    in pageant.rc file and one from the cross-platform pageant.c. Now
    pageant.c doesn't format a whole user-facing message any more: it
    leaves that to the platform front end to do it the way it wants.
    
    I've also added a call to SetForegroundWindow, to try to get the
    passphrase prompt into the foreground. In my experience this doesn't
    actually get it the keyboard focus, which I think is deliberate on
    Windows's part and there's nothing I can do about it. But at least the
    user should _see_ that the prompt is there, so they can focus it
    themself.

 pageant.c          | 11 ++++-------
 pageant.h          | 14 ++++++++------
 unix/uxpgnt.c      | 12 +++++++++++-
 windows/pageant.rc | 17 +++++++++++++++--
 windows/winpgnt.c  | 52 +++++++++++++++++++++++++++++++++++++++++++++-------
 5 files changed, 83 insertions(+), 23 deletions(-)

commit 04390ff4a7e8c8f6c7fba089c58f2c508a14cdad
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=04390ff4a7e8c8f6c7fba089c58f2c508a14cdad;hp=efc31ee30d88fdc615f08e00eb1ddc3b8cc95193
Author: Simon Tatham <anakin at pobox.com>
Date:   Fri Apr 2 11:02:36 2021 +0100

    winpgnt: more rigorous command-line processing.
    
    This makes Windows Pageant's slightly ad-hoc command-line handling a
    bit more like a standard option loop: we start by deciding whether we
    think any given argument _is_ an option or not, and if we think it is,
    we give an error message if it's one we don't recognise.

 windows/winpgnt.c | 56 +++++++++++++++++++++++++++++++++----------------------
 1 file changed, 34 insertions(+), 22 deletions(-)

commit af6adb5c4b9f1993aea46bed07eb6239f632c5e3
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=af6adb5c4b9f1993aea46bed07eb6239f632c5e3;hp=04390ff4a7e8c8f6c7fba089c58f2c508a14cdad
Author: Simon Tatham <anakin at pobox.com>
Date:   Fri Apr 2 11:07:42 2021 +0100

    winpgnt: command-line option to add keys encrypted.
    
    I couldn't quite decide whether to name the option 'encrypted' or
    'no-decrypt', so I've supported both.

 windows/winpgnt.c | 47 ++++++++++++++++++-----------------------------
 1 file changed, 18 insertions(+), 29 deletions(-)

commit b0f9e3a6adac0e21b3ce5b26bbcde2b3f5009958
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=b0f9e3a6adac0e21b3ce5b26bbcde2b3f5009958;hp=af6adb5c4b9f1993aea46bed07eb6239f632c5e3
Author: Simon Tatham <anakin at pobox.com>
Date:   Fri Apr 2 11:14:44 2021 +0100

    winpgnt: GUI actions to add keys encrypted.
    
    I've added a new option to the system tray menu, and a new button to
    the key list window.

 windows/pageant.rc |  1 +
 windows/winpgnt.c  | 27 +++++++++++++++++----------
 2 files changed, 18 insertions(+), 10 deletions(-)

commit fbab1667284a99beb9640d0c6ba2ef7cd4fab003
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=fbab1667284a99beb9640d0c6ba2ef7cd4fab003;hp=b0f9e3a6adac0e21b3ce5b26bbcde2b3f5009958
Author: Simon Tatham <anakin at pobox.com>
Date:   Fri Apr 2 11:30:18 2021 +0100

    winpgnt: fix GUI removal of encrypted keys.
    
    The GUI loop that responded to the 'Remove Key' button in the key list
    worked by actually trying to retrieve a pointer to the ssh_key for a
    stored key, and then passing that back to the delete function. But
    when a key is encrypted, that pointer is NULL, so we segfaulted.
    
    Fixed by changing pageant_delete_ssh2_key() to take a numeric index in
    the list instead of a key pointer.

 pageant.c         | 26 ++++++++------------------
 pageant.h         |  4 ++--
 windows/winpgnt.c | 15 ++-------------
 3 files changed, 12 insertions(+), 33 deletions(-)

commit 30c87c2896cd35926a7bb9fae9e025afcc1049c7
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=30c87c2896cd35926a7bb9fae9e025afcc1049c7;hp=fbab1667284a99beb9640d0c6ba2ef7cd4fab003
Author: Simon Tatham <anakin at pobox.com>
Date:   Fri Apr 2 11:39:01 2021 +0100

    Make unused Pageant accessor functions private.
    
    We're no longer calling pageant_nth_ssh*_key or pageant_add_ssh*_key
    from outside pageant.c. Remove them from pageant.h and turn them
    static, so that we carry on not doing so.

 pageant.c | 10 ++++++----
 pageant.h | 12 ++----------
 2 files changed, 8 insertions(+), 14 deletions(-)

commit e0bbe1e6c05d837333fa46eba3cdcab303a4f5d5
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=e0bbe1e6c05d837333fa46eba3cdcab303a4f5d5;hp=30c87c2896cd35926a7bb9fae9e025afcc1049c7
Author: Simon Tatham <anakin at pobox.com>
Date:   Fri Apr 2 11:42:17 2021 +0100

    Refactor pageant_nth_ssh*_key.
    
    I've merged the two previous functions, with different return types
    per SSH version, into a single one that returns the containing
    PageantKey instead of pulling out one of its internal fields.
    
    This actually fixes a bug, though it would only have come up in the
    Unix Pageant debugging mode: an encrypted-only key would have
    terminated the key list in the diagnostic messages, because
    pageant_nth_ssh2_key would have returned pk->skey which was NULL. Now
    it returns pk itself, which isn't.

 pageant.c | 48 ++++++++++++++++++++----------------------------
 1 file changed, 20 insertions(+), 28 deletions(-)

commit fc9fbfe1e480082a5751f824846c10cf9bd6d6b6
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=fc9fbfe1e480082a5751f824846c10cf9bd6d6b6;hp=e0bbe1e6c05d837333fa46eba3cdcab303a4f5d5
Author: Simon Tatham <anakin at pobox.com>
Date:   Fri Apr 2 12:54:52 2021 +0100

    gtk-askpass: add margins on left and right of the prompt.
    
    If the prompt got big enough to reach to the edges of the dialog box,
    it looked ugly without any margins. Previously I hadn't noticed,
    because the prompt text was never that big.

 unix/gtkask.c | 7 +++++++
 1 file changed, 7 insertions(+)



More information about the tartarus-commits mailing list