mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
gpg: Lazily evaluate --default-key.
* g10/gpg.c (main): If --encrypt-to-default-key is specified, don't add --default-key's value to REMUSR here... * g10/pkclist.c (build_pk_list): ... do it here. * tests/openpgp/Makefile.am (TESTS): Add default-key.test. * tests/openpgp/default-key.test: New file. -- Signed-off-by: Neal H. Walfield <neal@g10code.com>
This commit is contained in:
parent
ffe0b7a6dd
commit
dc52995d85
4 changed files with 121 additions and 22 deletions
|
@ -914,6 +914,53 @@ build_pk_list (ctrl_t ctrl, strlist_t rcpts, PK_LIST *ret_pk_list)
|
|||
else
|
||||
remusr = rcpts;
|
||||
|
||||
if (opt.encrypt_to_default_key)
|
||||
{
|
||||
static int warned;
|
||||
|
||||
const char *default_key = parse_def_secret_key (ctrl);
|
||||
if (default_key)
|
||||
{
|
||||
PK_LIST r = xmalloc_clear (sizeof *r);
|
||||
|
||||
r->pk = xmalloc_clear (sizeof *r->pk);
|
||||
r->pk->req_usage = PUBKEY_USAGE_ENC;
|
||||
|
||||
rc = get_pubkey_byname (ctrl, NULL, r->pk, default_key,
|
||||
NULL, NULL, 0, 1);
|
||||
if (rc)
|
||||
{
|
||||
xfree (r->pk);
|
||||
xfree (r);
|
||||
|
||||
log_error (_("Can't encrypt to '%s'.\n"), default_key);
|
||||
if (!opt.quiet)
|
||||
log_info (_("(check argument of option '%s')\n"),
|
||||
"--default-key");
|
||||
}
|
||||
else
|
||||
{
|
||||
r->next = pk_list;
|
||||
r->flags = 0;
|
||||
pk_list = r;
|
||||
}
|
||||
}
|
||||
else if (opt.def_secret_key)
|
||||
{
|
||||
if (! warned)
|
||||
log_info (_("option '%s' given, but no valid default keys given\n"),
|
||||
"--encrypt-to-default-key");
|
||||
warned = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (! warned)
|
||||
log_info (_("option '%s' given, but option '%s' not given\n"),
|
||||
"--encrypt-to-default-key", "--default-key");
|
||||
warned = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Check whether there are any recipients in the list and build the
|
||||
* list of the encrypt-to ones (we always trust them). */
|
||||
for ( rov = remusr; rov; rov = rov->next )
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue