aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2017-07-28 16:23:34 +0000
committerWerner Koch <[email protected]>2017-07-28 16:23:46 +0000
commit6c9899bede6ecb2ccf7336d12724090f36a6aa3d (patch)
tree22dc0d46fd47c75f5e2d4f08c72923b9ea57d585
parentgpg,sm: String changes for compliance diagnostics. (diff)
downloadgnupg-6c9899bede6ecb2ccf7336d12724090f36a6aa3d.tar.gz
gnupg-6c9899bede6ecb2ccf7336d12724090f36a6aa3d.zip
agent: Make --ssh-fingerprint-digest re-readable.
* agent/gpg-agent.c (main): Move oSSHFingerprintDigest to ... (parse_rereadable_options): here. (opts): Change its description. (main) <aGPGConfList>: Include this option. * tools/gpgconf-comp.c (gc_options_gpg_agent): Add option at expert level. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to '')
-rw-r--r--agent/gpg-agent.c21
-rw-r--r--tools/gpgconf-comp.c4
2 files changed, 19 insertions, 6 deletions
diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c
index e4fdf2efd..603f70739 100644
--- a/agent/gpg-agent.c
+++ b/agent/gpg-agent.c
@@ -234,7 +234,7 @@ static ARGPARSE_OPTS opts[] = {
ARGPARSE_s_n (oSSHSupport, "enable-ssh-support", N_("enable ssh support")),
ARGPARSE_s_s (oSSHFingerprintDigest, "ssh-fingerprint-digest",
- N_("digest to use when communicating ssh fingerprints")),
+ N_("|ALGO|use ALGO to show ssh fingerprints")),
ARGPARSE_s_n (oPuttySupport, "enable-putty-support",
#ifdef HAVE_W32_SYSTEM
/* */ N_("enable putty support")
@@ -780,6 +780,8 @@ cleanup (void)
static int
parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread)
{
+ int i;
+
if (!pargs)
{ /* reset mode */
opt.quiet = 0;
@@ -811,6 +813,7 @@ parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread)
opt.allow_emacs_pinentry = 0;
opt.disable_scdaemon = 0;
disable_check_own_socket = 0;
+ /* Note: When changing the next line, change also gpgconf_list. */
opt.ssh_fingerprint_digest = GCRY_MD_MD5;
return 1;
}
@@ -894,6 +897,14 @@ parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread)
case oAllowEmacsPinentry: opt.allow_emacs_pinentry = 1;
break;
+ case oSSHFingerprintDigest:
+ i = gcry_md_map_name (pargs->r.ret_str);
+ if (!i)
+ log_error (_("selected digest algorithm is invalid\n"));
+ else
+ opt.ssh_fingerprint_digest = i;
+ break;
+
default:
return 0; /* not handled */
}
@@ -1188,11 +1199,7 @@ main (int argc, char **argv )
case oSSHSupport:
ssh_support = 1;
break;
- case oSSHFingerprintDigest:
- opt.ssh_fingerprint_digest = gcry_md_map_name (pargs.r.ret_str);
- if (opt.ssh_fingerprint_digest == 0)
- log_error ("Unknown digest algorithm: %s\n", pargs.r.ret_str);
- break;
+
case oPuttySupport:
# ifdef HAVE_W32_SYSTEM
putty_support = 1;
@@ -1386,6 +1393,8 @@ main (int argc, char **argv )
es_printf ("disable-scdaemon:%lu:\n",
GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME);
es_printf ("enable-ssh-support:%lu:\n", GC_OPT_FLAG_NONE);
+ es_printf ("ssh-fingerprint-digest:%lu:\"%s:\n",
+ GC_OPT_FLAG_DEFAULT|GC_OPT_FLAG_RUNTIME, "md5");
#ifdef HAVE_W32_SYSTEM
es_printf ("enable-putty-support:%lu:\n", GC_OPT_FLAG_NONE);
#endif
diff --git a/tools/gpgconf-comp.c b/tools/gpgconf-comp.c
index a8ecb076e..cfc9fa3b7 100644
--- a/tools/gpgconf-comp.c
+++ b/tools/gpgconf-comp.c
@@ -500,6 +500,10 @@ static gc_option_t gc_options_gpg_agent[] =
{ "enable-ssh-support", GC_OPT_FLAG_NONE, GC_LEVEL_BASIC,
"gnupg", "enable ssh support",
GC_ARG_TYPE_NONE, GC_BACKEND_GPG_AGENT },
+ { "ssh-fingerprint-digest",
+ GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME, GC_LEVEL_EXPERT,
+ "gnupg", "|ALGO|use ALGO to show ssh fingerprints",
+ GC_ARG_TYPE_STRING, GC_BACKEND_GPG_AGENT },
{ "enable-putty-support", GC_OPT_FLAG_NONE, GC_LEVEL_BASIC,
"gnupg", "enable putty support",
GC_ARG_TYPE_NONE, GC_BACKEND_GPG_AGENT },