gpg: Make --skip-hidden-recipients work again.
authorWerner Koch <wk@gnupg.org>
Mon, 8 Oct 2018 13:38:37 +0000 (15:38 +0200)
committerWerner Koch <wk@gnupg.org>
Mon, 8 Oct 2018 13:38:37 +0000 (15:38 +0200)
* 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 <wk@gnupg.org>
g10/pubkey-enc.c

index 32b1ed0..ad0a77e 100644 (file)
@@ -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));