aboutsummaryrefslogtreecommitdiffstats
path: root/agent/agent.h
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2014-03-07 08:46:44 +0000
committerWerner Koch <[email protected]>2014-03-07 08:48:10 +0000
commit5105c8d2d344fd7301d456d8c13c7e90a54f7e98 (patch)
treebf8c125202e32087ee5dacefb32fa09babdb1c46 /agent/agent.h
parentagent: Fix binary vs. text mode problem in ssh. (diff)
downloadgnupg-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.h11
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);