From eefa2d19ee3f359435f0e5324cb5f10f2d8940a5 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 26 Jan 2022 16:43:42 +0100 Subject: [PATCH] gpgconf: Some more fixes for the backported stuff. * agent/gpg-agent.c (main) : Keep only those option which have a default. Remove runtime flag. * common/gc-opt-flags.h (GC_OPT_FLAG_RUNTIME): Move to ... * tools/gpgconf-comp.c: here because it is now inetrnal to gpgconf. (known_options_gpg_agent): Add a few missing runtime flags. Remove "options". Add "check-sym-passphrase-pattern". (known_options_scdaemon, known_options_gpgsm): Remove "options". (dirmngr): Ditto. * tools/gpgconf-comp.c (is_known_option): Return only options having a value for name. Thus we list list options from the known_options tables. --- agent/gpg-agent.c | 66 +++++++------------------------------------ common/gc-opt-flags.h | 4 --- tools/gpgconf-comp.c | 19 ++++++------- 3 files changed, 19 insertions(+), 70 deletions(-) diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c index 329423512..9aa7ae022 100644 --- a/agent/gpg-agent.c +++ b/agent/gpg-agent.c @@ -1419,71 +1419,25 @@ main (int argc, char **argv ) agent_exit (0); else if (gpgconf_list) { - char *filename_esc; - - /* List options and default values in the GPG Conf format. */ - filename_esc = percent_escape (config_filename, NULL); - es_printf ("%s-%s.conf:%lu:\"%s\n", - GPGCONF_NAME, GPG_AGENT_NAME, - GC_OPT_FLAG_DEFAULT, filename_esc); - xfree (filename_esc); - - es_printf ("verbose:%lu:\n" - "quiet:%lu:\n" - "debug-level:%lu:\"none:\n" - "log-file:%lu:\n", - GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME, - GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME, - GC_OPT_FLAG_DEFAULT|GC_OPT_FLAG_RUNTIME, - GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME ); + es_printf ("debug-level:%lu:\"none:\n", GC_OPT_FLAG_DEFAULT); es_printf ("default-cache-ttl:%lu:%d:\n", - GC_OPT_FLAG_DEFAULT|GC_OPT_FLAG_RUNTIME, DEFAULT_CACHE_TTL ); + GC_OPT_FLAG_DEFAULT, DEFAULT_CACHE_TTL ); es_printf ("default-cache-ttl-ssh:%lu:%d:\n", - GC_OPT_FLAG_DEFAULT|GC_OPT_FLAG_RUNTIME, DEFAULT_CACHE_TTL_SSH ); + GC_OPT_FLAG_DEFAULT, DEFAULT_CACHE_TTL_SSH ); es_printf ("max-cache-ttl:%lu:%d:\n", - GC_OPT_FLAG_DEFAULT|GC_OPT_FLAG_RUNTIME, MAX_CACHE_TTL ); + GC_OPT_FLAG_DEFAULT, MAX_CACHE_TTL ); es_printf ("max-cache-ttl-ssh:%lu:%d:\n", - GC_OPT_FLAG_DEFAULT|GC_OPT_FLAG_RUNTIME, MAX_CACHE_TTL_SSH ); + GC_OPT_FLAG_DEFAULT, MAX_CACHE_TTL_SSH ); es_printf ("enforce-passphrase-constraints:%lu:\n", - GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME); + GC_OPT_FLAG_NONE); es_printf ("min-passphrase-len:%lu:%d:\n", - GC_OPT_FLAG_DEFAULT|GC_OPT_FLAG_RUNTIME, MIN_PASSPHRASE_LEN ); + GC_OPT_FLAG_DEFAULT, MIN_PASSPHRASE_LEN ); es_printf ("min-passphrase-nonalpha:%lu:%d:\n", - GC_OPT_FLAG_DEFAULT|GC_OPT_FLAG_RUNTIME, - MIN_PASSPHRASE_NONALPHA); - es_printf ("check-passphrase-pattern:%lu:\n", - GC_OPT_FLAG_DEFAULT|GC_OPT_FLAG_RUNTIME); - es_printf ("check-sym-passphrase-pattern:%lu:\n", - GC_OPT_FLAG_DEFAULT|GC_OPT_FLAG_RUNTIME); + GC_OPT_FLAG_DEFAULT, MIN_PASSPHRASE_NONALPHA); es_printf ("max-passphrase-days:%lu:%d:\n", - GC_OPT_FLAG_DEFAULT|GC_OPT_FLAG_RUNTIME, - MAX_PASSPHRASE_DAYS); - es_printf ("enable-passphrase-history:%lu:\n", - GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME); - es_printf ("no-grab:%lu:\n", - GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME); - es_printf ("ignore-cache-for-signing:%lu:\n", - GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME); - es_printf ("no-allow-external-cache:%lu:\n", - GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME); - es_printf ("no-allow-mark-trusted:%lu:\n", - GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME); - 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); + GC_OPT_FLAG_DEFAULT, MAX_PASSPHRASE_DAYS); 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 - es_printf ("no-allow-loopback-pinentry:%lu:\n", - GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME); - es_printf ("allow-emacs-pinentry:%lu:\n", - GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME); - es_printf ("pinentry-timeout:%lu:0:\n", - GC_OPT_FLAG_DEFAULT|GC_OPT_FLAG_RUNTIME); - es_printf ("grab:%lu:\n", - GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME); + GC_OPT_FLAG_DEFAULT, "md5"); agent_exit (0); } diff --git a/common/gc-opt-flags.h b/common/gc-opt-flags.h index 11ecec030..8458aa04f 100644 --- a/common/gc-opt-flags.h +++ b/common/gc-opt-flags.h @@ -20,10 +20,6 @@ #define GC_OPT_FLAG_NONE 0UL -/* The RUNTIME flag for an option indicates that the option can be - changed at runtime. */ -#define GC_OPT_FLAG_RUNTIME (1UL << 3) - /* The DEFAULT flag for an option indicates that the option has a default value. */ #define GC_OPT_FLAG_DEFAULT (1UL << 4) diff --git a/tools/gpgconf-comp.c b/tools/gpgconf-comp.c index 7d5c4924c..35ae3e7c0 100644 --- a/tools/gpgconf-comp.c +++ b/tools/gpgconf-comp.c @@ -278,6 +278,10 @@ static const struct several times. A comma separated list of arguments is used as the argument value. */ #define GC_OPT_FLAG_LIST (1UL << 2) +/* The RUNTIME flag for an option indicates that the option can be + changed at runtime. */ +#define GC_OPT_FLAG_RUNTIME (1UL << 3) + /* A human-readable description for each flag. */ @@ -326,7 +330,8 @@ static known_option_t known_options_gpg_agent[] = { { "verbose", GC_OPT_FLAG_LIST|GC_OPT_FLAG_RUNTIME, GC_LEVEL_BASIC }, { "quiet", GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME, GC_LEVEL_BASIC }, - { "disable-scdaemon", GC_OPT_FLAG_NONE, GC_LEVEL_ADVANCED }, + { "disable-scdaemon", GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME, + GC_LEVEL_ADVANCED }, { "enable-ssh-support", GC_OPT_FLAG_NONE, GC_LEVEL_BASIC }, { "ssh-fingerprint-digest", GC_OPT_FLAG_RUNTIME, GC_LEVEL_EXPERT }, { "enable-putty-support", GC_OPT_FLAG_NONE, GC_LEVEL_BASIC }, @@ -352,6 +357,8 @@ static known_option_t known_options_gpg_agent[] = { "min-passphrase-nonalpha", GC_OPT_FLAG_RUNTIME, GC_LEVEL_EXPERT }, { "check-passphrase-pattern", GC_OPT_FLAG_RUNTIME, GC_LEVEL_EXPERT, /**/ GC_ARG_TYPE_FILENAME }, + { "check-sym-passphrase-pattern", GC_OPT_FLAG_RUNTIME, GC_LEVEL_EXPERT, + /**/ GC_ARG_TYPE_FILENAME }, { "max-passphrase-days", GC_OPT_FLAG_RUNTIME, GC_LEVEL_EXPERT }, { "enable-passphrase-history", GC_OPT_FLAG_RUNTIME, GC_LEVEL_EXPERT }, { "pinentry-timeout", GC_OPT_FLAG_RUNTIME, GC_LEVEL_ADVANCED }, @@ -366,8 +373,6 @@ static known_option_t known_options_scdaemon[] = { "verbose", GC_OPT_FLAG_LIST|GC_OPT_FLAG_RUNTIME, GC_LEVEL_BASIC }, { "quiet", GC_OPT_FLAG_NONE, GC_LEVEL_BASIC }, { "no-greeting", GC_OPT_FLAG_NONE, GC_LEVEL_INVISIBLE }, - { "options", GC_OPT_FLAG_NONE, GC_LEVEL_EXPERT, - GC_ARG_TYPE_FILENAME }, { "reader-port", GC_OPT_FLAG_RUNTIME, GC_LEVEL_BASIC }, { "ctapi-driver", GC_OPT_FLAG_RUNTIME, GC_LEVEL_ADVANCED }, { "pcsc-driver", GC_OPT_FLAG_RUNTIME, GC_LEVEL_ADVANCED }, @@ -431,8 +436,6 @@ static known_option_t known_options_gpgsm[] = { "no-greeting", GC_OPT_FLAG_NONE, GC_LEVEL_INVISIBLE }, { "default-key", GC_OPT_FLAG_NONE, GC_LEVEL_BASIC }, { "encrypt-to", GC_OPT_FLAG_NONE, GC_LEVEL_BASIC }, - { "options", GC_OPT_FLAG_NONE, GC_LEVEL_EXPERT, - GC_ARG_TYPE_FILENAME }, { "disable-dirmngr", GC_OPT_FLAG_NONE, GC_LEVEL_EXPERT }, { "p12-charset", GC_OPT_FLAG_NONE, GC_LEVEL_ADVANCED }, { "keyserver", GC_OPT_FLAG_LIST, GC_LEVEL_BASIC, @@ -451,8 +454,6 @@ static known_option_t known_options_gpgsm[] = { "cipher-algo", GC_OPT_FLAG_NONE, GC_LEVEL_ADVANCED }, { "disable-trusted-cert-crl-check", GC_OPT_FLAG_NONE, GC_LEVEL_EXPERT }, - { "default_pubkey_algo", - (GC_OPT_FLAG_ARG_OPT|GC_OPT_FLAG_NO_CHANGE), GC_LEVEL_INVISIBLE }, /* Pseudo option follows. See also table below. */ { "default_pubkey_algo", GC_OPT_FLAG_NONE, GC_LEVEL_INVISIBLE }, @@ -471,8 +472,6 @@ static known_option_t known_options_dirmngr[] = { "verbose", GC_OPT_FLAG_LIST, GC_LEVEL_BASIC }, { "quiet", GC_OPT_FLAG_NONE, GC_LEVEL_BASIC }, { "no-greeting", GC_OPT_FLAG_NONE, GC_LEVEL_INVISIBLE }, - { "options", GC_OPT_FLAG_NONE, GC_LEVEL_EXPERT, - GC_ARG_TYPE_FILENAME }, { "resolver-timeout", GC_OPT_FLAG_NONE, GC_LEVEL_INVISIBLE }, { "nameserver", GC_OPT_FLAG_NONE, GC_LEVEL_INVISIBLE }, { "debug-level", GC_OPT_FLAG_ARG_OPT, GC_LEVEL_ADVANCED }, @@ -1504,7 +1503,7 @@ is_known_option (gc_component_id_t component, const char *name) if (!strcmp (option->name, name)) break; } - return option; + return (option && option->name)? option : NULL; }