aboutsummaryrefslogtreecommitdiffstats
path: root/agent/findkey.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2023-03-01 15:49:40 +0000
committerWerner Koch <[email protected]>2023-03-01 15:49:40 +0000
commit1aaadede76ccd17a6636b26ec75954d6b709f3fa (patch)
tree09e2ff22ea78c942348e674f5f031b39579c9206 /agent/findkey.c
parentgpgconf: Print some standard envvars with -X (diff)
downloadgnupg-1aaadede76ccd17a6636b26ec75954d6b709f3fa.tar.gz
gnupg-1aaadede76ccd17a6636b26ec75954d6b709f3fa.zip
agent: Show "no secret key" instead of "card removed".
* agent/findkey.c (agent_key_from_file): Check the error of read_key_file again. * agent/pkdecrypt.c (agent_pkdecrypt): Restore error if no card was found. Also remove useless condition. -- The first patch fixes a likely merge error. The second is about the actual return code: If we have no smardcard but simply try to decrypt with the current smartcard we should return the originla error code. GnuPG-bug-id: 5170 Fixes-commit: eda3c688fc2e85c7cd63029cb9caf06552d203b4
Diffstat (limited to 'agent/findkey.c')
-rw-r--r--agent/findkey.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/agent/findkey.c b/agent/findkey.c
index d3a3b335c..060cb786d 100644
--- a/agent/findkey.c
+++ b/agent/findkey.c
@@ -1186,6 +1186,15 @@ agent_key_from_file (ctrl_t ctrl, const char *cache_nonce,
return gpg_error (GPG_ERR_NO_SECKEY);
err = read_key_file (grip? grip : ctrl->keygrip, &s_skey, &keymeta);
+ if (err)
+ {
+ if (gpg_err_code (err) == GPG_ERR_ENOENT)
+ err = gpg_error (GPG_ERR_NO_SECKEY);
+ else
+ log_error ("findkey: error reading key file: %s\n",
+ gpg_strerror (err));
+ return err;
+ }
/* For use with the protection functions we also need the key as an
canonical encoded S-expression in a buffer. Create this buffer