2004-09-30 Marcus Brinkmann <marcus@g10code.de>
[gpgme.git] / gpgme / verify.c
index c695b9e..ceb84f8 100644 (file)
@@ -223,6 +223,10 @@ parse_new_sig (op_data_t opd, gpgme_status_code_t code, char *args)
       sig->status = gpg_error (GPG_ERR_BAD_SIGNATURE);
       break;
 
+    case GPGME_STATUS_REVKEYSIG:
+      sig->status = gpg_error (GPG_ERR_CERT_REVOKED);
+      break;
+
     case GPGME_STATUS_ERRSIG:
       if (end)
        {
@@ -468,7 +472,6 @@ parse_error (gpgme_signature_t sig, char *args)
   gpgme_error_t err;
   char *where = strchr (args, ' ');
   char *which;
-  char *where_last;
 
   if (where)
     {
@@ -484,16 +487,11 @@ parse_error (gpgme_signature_t sig, char *args)
   else
     return gpg_error (GPG_ERR_INV_ENGINE);
 
-  /* It is often useful to compare only the last part of the where token. */
-  where_last = strrchr (where, '.');
-  if (!where_last)
-    where_last = where;
-
   err = _gpgme_map_gnupg_error (which);
 
-  if (!strcmp (where_last, ".findkey"))
+  if (!strcmp (where, "verify.findkey"))
     sig->status = err;
-  else if (!strcmp (where_last, ".keyusage")
+  else if (!strcmp (where, "verify.keyusage")
           && gpg_err_code (err) == GPG_ERR_WRONG_KEY_USAGE)
     sig->wrong_key_usage = 1;
 
@@ -531,6 +529,7 @@ _gpgme_verify_status_handler (void *priv, gpgme_status_code_t code, char *args)
     case GPGME_STATUS_EXPKEYSIG:
     case GPGME_STATUS_BADSIG:
     case GPGME_STATUS_ERRSIG:
+    case GPGME_STATUS_REVKEYSIG:
       if (sig && !opd->did_prepare_new_sig)
        calc_sig_summary (sig);
       opd->only_newsig_seen = 0;