agent: Return NO_SECKEY instead of ENONET for PKSIGN and others.
authorWerner Koch <wk@gnupg.org>
Mon, 18 Aug 2014 13:42:54 +0000 (15:42 +0200)
committerWerner Koch <wk@gnupg.org>
Mon, 18 Aug 2014 13:42:54 +0000 (15:42 +0200)
* agent/pksign.c (agent_pksign_do): Replace ENONET by NO_SECKEY.
* agent/findkey.c (agent_key_from_file): No diagnostic for NO_SECKEY.
* agent/pkdecrypt.c (agent_pkdecrypt): Replace checking for ENOENT.

agent/findkey.c
agent/pkdecrypt.c
agent/pksign.c
g10/call-agent.c

index 8725afb..5ff263e 100644 (file)
@@ -605,7 +605,11 @@ agent_key_from_file (ctrl_t ctrl, const char *cache_nonce,
 
   rc = read_key_file (grip, &s_skey);
   if (rc)
-    return rc;
+    {
+      if (gpg_err_code (rc) == GPG_ERR_ENOENT)
+        rc = gpg_error (GPG_ERR_NO_SECKEY);
+      return rc;
+    }
 
   /* For use with the protection functions we also need the key as an
      canonical encoded S-expression in a buffer.  Create this buffer
index 14aa78f..945de3c 100644 (file)
@@ -72,9 +72,7 @@ agent_pkdecrypt (ctrl_t ctrl, const char *desc_text,
                             CACHE_MODE_NORMAL, NULL, &s_skey, NULL);
   if (rc)
     {
-      if (gpg_err_code (rc) == GPG_ERR_ENOENT)
-        rc = gpg_error (GPG_ERR_NO_SECKEY);
-      else
+      if (gpg_err_code (rc) != GPG_ERR_NO_SECKEY)
         log_error ("failed to read the secret key\n");
       goto leave;
     }
index 713c8ba..9147b50 100644 (file)
@@ -312,7 +312,8 @@ agent_pksign_do (ctrl_t ctrl, const char *cache_nonce,
                             &s_skey, NULL);
   if (rc)
     {
-      log_error ("failed to read the secret key\n");
+      if (gpg_err_code (rc) != GPG_ERR_NO_SECKEY)
+        log_error ("failed to read the secret key\n");
       goto leave;
     }
 
index cf1b96a..58f4a92 100644 (file)
@@ -210,8 +210,8 @@ check_hijacking (assuan_context_t ctx)
 
   init_membuf (&mb, 64);
 
-  /* AGENT_ID is a command implemented by gnome-keyring-daemon.  IT
-     does not reatun any data but an OK line with a remark.  */
+  /* AGENT_ID is a command implemented by gnome-keyring-daemon.  It
+     does not return any data but an OK line with a remark.  */
   if (assuan_transact (ctx, "AGENT_ID",
                        membuf_data_cb, &mb, NULL, NULL, NULL, NULL))
     {