* findkey.c (unprotect): Show an error message for a bad passphrase.
authorWerner Koch <wk@gnupg.org>
Mon, 18 Feb 2002 22:39:26 +0000 (22:39 +0000)
committerWerner Koch <wk@gnupg.org>
Mon, 18 Feb 2002 22:39:26 +0000 (22:39 +0000)
agent/ChangeLog
agent/findkey.c

index 9a398f5..0c79306 100644 (file)
@@ -1,5 +1,7 @@
 2002-02-18  Werner Koch  <wk@gnupg.org>
 
 2002-02-18  Werner Koch  <wk@gnupg.org>
 
+       * findkey.c (unprotect): Show an error message for a bad passphrase.
+
        * command.c (cmd_marktrusted): Implemented.
        * trustlist.c (agent_marktrusted): New.
        (open_list): Add APPEND arg.
        * command.c (cmd_marktrusted): Implemented.
        * trustlist.c (agent_marktrusted): New.
        (open_list): Add APPEND arg.
index 250852c..67e2834 100644 (file)
@@ -39,6 +39,7 @@ unprotect (unsigned char **keybuf, const unsigned char *grip)
   size_t resultlen;
   int tries = 0;
   char hexgrip[40+1];
   size_t resultlen;
   int tries = 0;
   char hexgrip[40+1];
+  const char *errtext;
   
   for (i=0; i < 20; i++)
     sprintf (hexgrip+2*i, "%02X", grip[i]);
   
   for (i=0; i < 20; i++)
     sprintf (hexgrip+2*i, "%02X", grip[i]);
@@ -67,9 +68,10 @@ unprotect (unsigned char **keybuf, const unsigned char *grip)
   pi->max_digits = 8;
   pi->max_tries = 3;
 
   pi->max_digits = 8;
   pi->max_tries = 3;
 
+  errtext = NULL;
   do
     {
   do
     {
-      rc = agent_askpin (NULL, NULL, pi);
+      rc = agent_askpin (NULL, errtext, pi);
       if (!rc)
         {
           rc = agent_unprotect (*keybuf, pi->pin, &result, &resultlen);
       if (!rc)
         {
           rc = agent_unprotect (*keybuf, pi->pin, &result, &resultlen);
@@ -82,6 +84,7 @@ unprotect (unsigned char **keybuf, const unsigned char *grip)
               return 0;
             }
         }
               return 0;
             }
         }
+      errtext = pi->min_digits? trans ("Bad PIN") : trans ("Bad Passphrase");
     }
   while ((rc == GNUPG_Bad_Passphrase || rc == GNUPG_Bad_PIN)
          && tries++ < 3);
     }
   while ((rc == GNUPG_Bad_Passphrase || rc == GNUPG_Bad_PIN)
          && tries++ < 3);