ssh: Add support for Putty.
authorWerner Koch <wk@gnupg.org>
Fri, 7 Mar 2014 08:46:44 +0000 (09:46 +0100)
committerWerner Koch <wk@gnupg.org>
Fri, 7 Mar 2014 08:48:10 +0000 (09:48 +0100)
commit5105c8d2d344fd7301d456d8c13c7e90a54f7e98
treebf8c125202e32087ee5dacefb32fa09babdb1c46
parent179012ddd48e63ca83e8f5c24537a2db45c3e122
ssh: Add support for Putty.

* agent/gpg-agent.c [W32]: Include Several Windows header.
(opts): Change help text for enable-ssh-support.
(opts, main): Add option --enable-putty-support
(putty_support, PUTTY_IPC_MAGIC, PUTTY_IPC_MAXLEN): New for W32.
(agent_init_default_ctrl): Add and asssert call.
(putty_message_proc, putty_message_thread): New.
(handle_connections) [W32]: Start putty message thread.
* common/sysutils.c (w32_get_user_sid): New for W32 only
* tools/gpgconf-comp.c (gc_options_gpg_agent): Add
--enable-ssh-support and --enable-putty-support.  Make the
configuration group visible at basic level.
* agent/command-ssh.c (serve_mmapped_ssh_request): New for W32 only.
--

This patch enables support for Putty.  It has been tested with Putty
0.62 using an Unix created ssh key copied to the private-keys-v1.d
directory on Windows and with a manually crafted sshcontrol file.  It
also works with a smartcard key.

May thanks to gniibe who implemented a proxy in Python to test the
putty/gpg-agent communication.

Signed-off-by: Werner Koch <wk@gnupg.org>
(cherry picked from commit 9f32499f99a0817f63f7a73b09bdcebe60d4775d)

Resolved conflicts:
NEWS
agent/agent.h
agent/gpg-agent.c: Convert from pth to npth.
common/sysutils.c
common/sysutils.h
NEWS
agent/agent.h
agent/command-ssh.c
agent/gpg-agent.c
common/sysutils.c
common/sysutils.h
tools/gpgconf-comp.c