diff options
author | Werner Koch <[email protected]> | 2005-02-23 21:06:32 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2005-02-23 21:06:32 +0000 |
commit | 4e5bf2fd93a175f64aa1ca2e4b35dcf853f7f828 (patch) | |
tree | d00f3064beafb27e942d990ebd4fb2a16a0e1ccd /agent/gpg-agent.c | |
parent | (stream_read_string): Removed call to abort on (diff) | |
download | gnupg-4e5bf2fd93a175f64aa1ca2e4b35dcf853f7f828.tar.gz gnupg-4e5bf2fd93a175f64aa1ca2e4b35dcf853f7f828.zip |
* command-ssh.c (get_passphrase): Removed.
(ssh_identity_register): Partly rewritten.
(open_control_file, search_control_file, add_control_entry): New.
(ssh_handler_request_identities): Return only files listed in our
control file.
* findkey.c (unprotect): Check for allocation error.
* agent.h (opt): Add fields to record the startup terminal
settings.
* gpg-agent.c (main): Record them and do not force keep display
with --enable-ssh-support.
* command-ssh.c (start_command_handler_ssh): Use them here.
* gpg-agent.c: Renamed option --ssh-support to
--enable-ssh-support.
* command.c (cmd_readkey): New.
(register_commands): Register new command "READKEY".
* command-ssh.c (ssh_request_process): Improved logging.
* findkey.c (agent_write_private_key): Always use plain open.
Don't depend on an umask for permissions.
(agent_key_from_file): Factored file reading code out to ..
(read_key_file): .. new function.
(agent_public_key_from_file): New.
Diffstat (limited to 'agent/gpg-agent.c')
-rw-r--r-- | agent/gpg-agent.c | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c index 47488ee69..338248d1a 100644 --- a/agent/gpg-agent.c +++ b/agent/gpg-agent.c @@ -1,5 +1,5 @@ /* gpg-agent.c - The GnuPG Agent - * Copyright (C) 2000, 2001, 2002, 2003, + * Copyright (C) 2000, 2001, 2002, 2003, 2004, * 2005 Free Software Foundation, Inc. * * This file is part of GnuPG. @@ -147,7 +147,7 @@ static ARGPARSE_OPTS opts[] = { N_("allow clients to mark keys as \"trusted\"")}, { oAllowPresetPassphrase, "allow-preset-passphrase", 0, N_("allow presetting passphrase")}, - { oSSHSupport, "ssh-support", 0, N_("enable secure ssh-agent emulation") }, + { oSSHSupport, "enable-ssh-support", 0, N_("enable ssh-agent emulation") }, {0} }; @@ -458,7 +458,6 @@ main (int argc, char **argv ) int standard_socket = 0; gpg_error_t err; - set_strusage (my_strusage); gcry_control (GCRYCTL_SUSPEND_SECMEM_WARN); /* Please note that we may running SUID(ROOT), so be very CAREFUL @@ -513,6 +512,23 @@ main (int argc, char **argv ) opt.homedir = default_homedir (); + /* Record the some original Denvironment settings. */ + opt.startup_display = getenv ("DISPLAY"); + if (opt.startup_display) + opt.startup_display = xstrdup (opt.startup_display); + opt.startup_ttyname = ttyname (0); + if (opt.startup_ttyname) + opt.startup_ttyname = xstrdup (opt.startup_ttyname); + opt.startup_ttytype = getenv ("TERM"); + if (opt.startup_ttytype) + opt.startup_ttytype = xstrdup (opt.startup_ttytype); + /* Fixme: Neen to use the locale fucntion here. */ + opt.startup_lc_ctype = getenv ("LC_CTYPE"); + if (opt.startup_lc_ctype) + opt.startup_lc_ctype = xstrdup (opt.startup_lc_ctype); + opt.startup_lc_messages = getenv ("LC_MESSAGES"); + if (opt.startup_lc_messages) + opt.startup_lc_messages = xstrdup (opt.startup_lc_messages); /* Check whether we have a config file on the commandline */ orig_argc = argc; @@ -624,11 +640,7 @@ main (int argc, char **argv ) case oKeepTTY: opt.keep_tty = 1; break; case oKeepDISPLAY: opt.keep_display = 1; break; - case oSSHSupport: - opt.ssh_support = 1; - opt.keep_tty = 1; - opt.keep_display = 1; - break; + case oSSHSupport: opt.ssh_support = 1; break; default : pargs.err = configfp? 1:2; break; } @@ -784,7 +796,7 @@ main (int argc, char **argv ) /* Remove the DISPLAY variable so that a pinentry does not default to a specific display. There is still a default - display when gpg-agent weas started using --display or a + display when gpg-agent was started using --display or a client requested this using an OPTION command. */ #ifndef HAVE_W32_SYSTEM if (!opt.keep_display) |