diff options
author | Werner Koch <[email protected]> | 2014-03-07 08:46:44 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2014-03-07 08:48:10 +0000 |
commit | 5105c8d2d344fd7301d456d8c13c7e90a54f7e98 (patch) | |
tree | bf8c125202e32087ee5dacefb32fa09babdb1c46 /agent/agent.h | |
parent | agent: Fix binary vs. text mode problem in ssh. (diff) | |
download | gnupg-5105c8d2d344fd7301d456d8c13c7e90a54f7e98.tar.gz gnupg-5105c8d2d344fd7301d456d8c13c7e90a54f7e98.zip |
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 <[email protected]>
(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
Diffstat (limited to '')
-rw-r--r-- | agent/agent.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/agent/agent.h b/agent/agent.h index d40930018..eac7ba548 100644 --- a/agent/agent.h +++ b/agent/agent.h @@ -289,9 +289,14 @@ gpg_error_t agent_print_status (ctrl_t ctrl, const char *keyword, void bump_key_eventcounter (void); void bump_card_eventcounter (void); void start_command_handler (ctrl_t, gnupg_fd_t, gnupg_fd_t); -gpg_error_t pinentry_loopback(ctrl_t, const char *keyword, - unsigned char **buffer, size_t *size, - size_t max_length); +gpg_error_t pinentry_loopback (ctrl_t, const char *keyword, + unsigned char **buffer, size_t *size, + size_t max_length); + +#ifdef HAVE_W32_SYSTEM +int serve_mmapped_ssh_request (ctrl_t ctrl, + unsigned char *request, size_t maxreqlen); +#endif /*HAVE_W32_SYSTEM*/ /*-- command-ssh.c --*/ ssh_control_file_t ssh_open_control_file (void); |