gpg: Do not use a fixed string for --gpgconf-list:default_pubkey_algo.

* g10/keygen.c (get_default_pubkey_algo): New.
(parse_key_parameter_string): Use it.
* g10/gpg.c (gpgconf_list): Take value from new function.
--

Note that consumers of that gpgconf-list value may need to be adjusted
to that new value.  It should anyway only be used to display the
default algorithm.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2016-12-12 10:50:21 +01:00
parent 522e6f798d
commit f1304ee9b2
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
3 changed files with 20 additions and 2 deletions

View File

@ -1832,7 +1832,7 @@ gpgconf_list (const char *configfile)
/* The next one is an info only item and should match the macros at
the top of keygen.c */
es_printf ("default_pubkey_algo:%lu:\"%s:\n", GC_OPT_FLAG_DEFAULT,
"RSA-2048");
get_default_pubkey_algo ());
xfree (configfile_esc);
}

View File

@ -152,6 +152,23 @@ static unsigned int get_keysize_range (int algo,
/* Return the algo string for a default new key. */
const char *
get_default_pubkey_algo (void)
{
if (opt.def_new_key_algo)
{
if (*opt.def_new_key_algo && !strchr (opt.def_new_key_algo, ':'))
return opt.def_new_key_algo;
/* To avoid checking that option every time we delay that until
* here. The only thing we really need to make sure is that
* there is no colon in the string so that the --gpgconf-list
* command won't mess up its output. */
log_info (_("invalid value for option '%s'\n"), "--default-new-key-algo");
}
return DEFAULT_STD_KEY_PARAM;
}
static void
print_status_key_created (int letter, PKT_public_key *pk, const char *handle)
@ -3122,7 +3139,7 @@ parse_key_parameter_string (const char *string, int part,
if (!string || !*string
|| !strcmp (string, "default") || !strcmp (string, "-"))
string = opt.def_new_key_algo? opt.def_new_key_algo : DEFAULT_STD_KEY_PARAM;
string = get_default_pubkey_algo ();
else if (!strcmp (string, "future-default"))
string = FUTURE_STD_KEY_PARAM;

View File

@ -300,6 +300,7 @@ void keyedit_quick_set_expire (ctrl_t ctrl,
void show_basic_key_info (KBNODE keyblock);
/*-- keygen.c --*/
const char *get_default_pubkey_algo (void);
u32 parse_expire_string(const char *string);
u32 ask_expire_interval(int object,const char *def_expire);
u32 ask_expiredate(void);