aboutsummaryrefslogtreecommitdiffstats
path: root/g10/pubkey-enc.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2018-10-08 13:38:37 +0000
committerWerner Koch <[email protected]>2018-10-08 13:38:37 +0000
commit79f165d7a8bcc26972712bb0f0cc554d5c3d4e42 (patch)
treef0180ed744fff4d3cf216d8e8b7a93996229ec7b /g10/pubkey-enc.c
parentgpg: Add new card vendor (diff)
downloadgnupg-79f165d7a8bcc26972712bb0f0cc554d5c3d4e42.tar.gz
gnupg-79f165d7a8bcc26972712bb0f0cc554d5c3d4e42.zip
gpg: Make --skip-hidden-recipients work again.
* g10/pubkey-enc.c (get_session_key): Take care of opt.skip_hidden_recipients. -- This was lost due to Fixes-commit: ce2f71760155b71a71418fe145a557c99bd52290 GnuPG-bug-id: 4169 Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'g10/pubkey-enc.c')
-rw-r--r--g10/pubkey-enc.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/g10/pubkey-enc.c b/g10/pubkey-enc.c
index 32b1ed08b..ad0a77e59 100644
--- a/g10/pubkey-enc.c
+++ b/g10/pubkey-enc.c
@@ -110,6 +110,16 @@ get_session_key (ctrl_t ctrl, struct pubkey_enc_list *list, DEK *dek)
continue;
}
+ /* FIXME: The list needs to be sorted so that we try the keys in
+ * an appropriate order. For example:
+ * - On-disk keys w/o protection
+ * - On-disk keys with a cached passphrase
+ * - On-card keys of an active card
+ * - On-disk keys with protection
+ * - On-card keys from cards which are not plugged it. Here a
+ * cancel-all button should stop aksing for other cards.
+ * Without any anonymous keys the sorting can be skipped.
+ */
for (k = list; k; k = k->next)
{
if (!(k->pubkey_algo == PUBKEY_ALGO_ELGAMAL_E
@@ -129,6 +139,9 @@ get_session_key (ctrl_t ctrl, struct pubkey_enc_list *list, DEK *dek)
if (!k->keyid[0] && !k->keyid[1])
{
+ if (opt.skip_hidden_recipients)
+ continue;
+
if (!opt.quiet)
log_info (_("anonymous recipient; trying secret key %s ...\n"),
keystr (keyid));