mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
g10: Fix default-key selection for signing, possibly by card.
* g10/call-agent.c (warn_version_mismatch): Revert. (start_agent): Suppress version mismatch if relevant. * g10/getkey.c (get_seckey_default_or_card): New. * g10/skclist.c (build_sk_list): Use get_seckey_default_or_card. -- The change of97a2394
, which prefers available card than default key specified is too strong. Fixes-commit:97a2394eca
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
3713f67026
commit
fbb2259d22
4 changed files with 62 additions and 16 deletions
|
@ -137,7 +137,7 @@ build_sk_list (ctrl_t ctrl,
|
|||
pk = xmalloc_clear (sizeof *pk);
|
||||
pk->req_usage = use;
|
||||
|
||||
/* Check if a card is available. If any, use it. */
|
||||
/* Check if a card is available. If any, use the key as a hint. */
|
||||
err = agent_scd_serialno (&serialno, NULL);
|
||||
if (!err)
|
||||
{
|
||||
|
@ -146,19 +146,11 @@ build_sk_list (ctrl_t ctrl,
|
|||
if (err)
|
||||
log_error ("error retrieving key fingerprint from card: %s\n",
|
||||
gpg_strerror (err));
|
||||
else if (info.fpr1valid)
|
||||
{
|
||||
if ((err = get_pubkey_byfprint (ctrl, pk, NULL, info.fpr1, 20)))
|
||||
{
|
||||
info.fpr1valid = 0;
|
||||
log_error ("error on card key to sign: %s, try default\n",
|
||||
gpg_strerror (err));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!info.fpr1valid
|
||||
&& (err = getkey_byname (ctrl, NULL, pk, NULL, 1, NULL)))
|
||||
err = get_seckey_default_or_card (ctrl, pk,
|
||||
info.fpr1valid? info.fpr1 : NULL, 20);
|
||||
if (err)
|
||||
{
|
||||
free_public_key (pk);
|
||||
pk = NULL;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue