summaryrefslogtreecommitdiffstats
path: root/g10/mainproc.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2018-01-08 09:30:31 +0100
committerWerner Koch <wk@gnupg.org>2018-01-08 09:30:31 +0100
commit339b3301ee8410fe3bbdebb66a6e83801d79d40d (patch)
tree505ae35d7081befd57dd9e324e7f9060660ff154 /g10/mainproc.c
parentgpg: Allow "futuredefault" as alias for "future-default". (diff)
downloadgnupg2-339b3301ee8410fe3bbdebb66a6e83801d79d40d.tar.xz
gnupg2-339b3301ee8410fe3bbdebb66a6e83801d79d40d.zip
gpg: Print all keys with --decrypt --list-only.
* g10/mainproc.c (proc_pubkey_enc): Use dedicated error code for list-only and put the key into PKENC_LIST. (print_pkenc_list): Take care of the new error code. -- If the secret keys exist in --list-only mode it was not printed in --list-only mode. GnuPG-bug-id: 3718 Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'g10/mainproc.c')
-rw-r--r--g10/mainproc.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/g10/mainproc.c b/g10/mainproc.c
index b712e6048..512d33c59 100644
--- a/g10/mainproc.c
+++ b/g10/mainproc.c
@@ -422,7 +422,7 @@ proc_pubkey_enc (ctrl_t ctrl, CTX c, PACKET *pkt)
|| have_secret_key_with_kid (enc->keyid)))
{
if(opt.list_only)
- result = -1;
+ result = GPG_ERR_MISSING_ACTION; /* fixme: Use better error code. */
else
{
c->dek = xmalloc_secure_clear (sizeof *c->dek);
@@ -440,9 +440,7 @@ proc_pubkey_enc (ctrl_t ctrl, CTX c, PACKET *pkt)
else
result = GPG_ERR_PUBKEY_ALGO;
- if (result == -1)
- ;
- else
+ if (1)
{
/* Store it for later display. */
struct kidlist_item *x = xmalloc (sizeof *x);
@@ -510,6 +508,10 @@ print_pkenc_list (ctrl_t ctrl, struct kidlist_item *list, int failed)
write_status_text (STATUS_NO_SECKEY, buf);
}
}
+ else if (gpg_err_code (list->reason) == GPG_ERR_MISSING_ACTION)
+ {
+ /* Not tested for secret key due to --list-only mode. */
+ }
else if (list->reason)
{
log_info (_("public key decryption failed: %s\n"),