doc/
authorMarcus Brinkmann <mb@g10code.com>
Tue, 24 Dec 2002 13:08:56 +0000 (13:08 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Tue, 24 Dec 2002 13:08:56 +0000 (13:08 +0000)
2002-12-24  Marcus Brinkmann  <marcus@g10code.de>

* gpgme.texi (Verify): Drop R_STAT argument in gpgme_op_verify.
* gpgme.texi (Decrypt and Verify): Likewise for
gpgme_op_decrypt_verify.

gpgme/
2002-12-24  Marcus Brinkmann  <marcus@g10code.de>

* gpgme.h (gpgme_op_verify, gpgme_op_decrypt_verify): Drop R_STAT
argument.
* decrypt-verify.c (gpgme_op_decrypt_verify): Drop R_STAT
argument.
* verify.c (gpgme_op_verify): Drop R_STAT argument.
(_gpgme_intersect_stati): Function removed.
* ops.h (_gpgme_intersect_stati): Remove prototype.

tests/
2002-12-24  Marcus Brinkmann  <marcus@g10code.de>

* gpgsm/t-verify.c (main): Adjust caller of gpgme_op_verify.
* gpg/t-verify.c (main): Likewise.
* gpg/t-decrypt-verify.c (main): Likewise for
gpgme_op_decrypt_verify.

12 files changed:
trunk/NEWS
trunk/doc/ChangeLog
trunk/doc/gpgme.texi
trunk/gpgme/ChangeLog
trunk/gpgme/decrypt-verify.c
trunk/gpgme/gpgme.h
trunk/gpgme/ops.h
trunk/gpgme/verify.c
trunk/tests/ChangeLog
trunk/tests/gpg/t-decrypt-verify.c
trunk/tests/gpg/t-verify.c
trunk/tests/gpgsm/t-verify.c

index 78c1be508b3eb1445bcfb74fbe2cd00bf91b9d75..8a7299b40ad908519a7cbf5ef68e63c08f45eeb5 100644 (file)
@@ -3,9 +3,14 @@ Noteworthy changes in version 0.4.1 (unreleased)
 
  * GPGME_ATTR_IS_SECRET is not anymore representable as a string.
 
+ * gpgme_op_verify and gpgme_op_decrypt_verify don't return a status
+   summary anymore.  Use gpgme_get_sig_status to retrieve the individual stati.
+
  * Interface changes relative to the 0.4.0 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gpgme_key_get_string_attr      CHANGED: Don't handle GPGME_ATR_IS_SECRET.
+gpgme_key_get_string_attr      CHANGED: Don't handle GPGME_ATTR_IS_SECRET.
+gpgme_op_verify                        CHANGED: Drop R_STAT argument.
+gpgme_op_decrypt_verify                CHANGED: Drop R_STAT argument.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Noteworthy changes in version 0.4.0 (2002-12-23)
index 39a54aaffa331ed5d84c5da96d1ed2ce5f7c190a..8a652714bdb60f1b29c5e4e43a79b3b8b160c420 100644 (file)
@@ -1,3 +1,9 @@
+2002-12-24  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme.texi (Verify): Drop R_STAT argument in gpgme_op_verify.
+       * gpgme.texi (Decrypt and Verify): Likewise for
+       gpgme_op_decrypt_verify.
+
 2002-12-23  Marcus Brinkmann  <marcus@g10code.de>
 
        * gpgme.texi (Information About Keys): Document that
index a74ec240c77b29e133615f41724da1e8dacce111..d3c02be896032207a4f0890e7ee753ef89e5d4af 100644 (file)
@@ -2466,7 +2466,7 @@ have a different status.  You can get each key's status with
 @end deftp
 
 
-@deftypefun GpgmeError gpgme_op_verify (@w{GpgmeCtx @var{ctx}}, @w{GpgmeData @var{sig}}, @w{GpgmeData @var{signed_text}}, @w{GpgmeData @var{plain}}, @w{GpgmeSigStat *@var{r_stat}})
+@deftypefun GpgmeError gpgme_op_verify (@w{GpgmeCtx @var{ctx}}, @w{GpgmeData @var{sig}}, @w{GpgmeData @var{signed_text}}, @w{GpgmeData @var{plain}})
 The function @code{gpgme_op_verify} verifies that the signature in the
 data object @var{sig} is a valid signature.  If @var{sig} is a
 detached signature, then the signed text should be provided in
@@ -2476,7 +2476,6 @@ Otherwise, if @var{sig} is a normal (or cleartext) signature,
 writable data object that will contain the plaintext after successful
 verification.
 
-The combined status of all signatures is returned in @var{r_stat}.
 The results of the individual signature verifications can be retrieved
 with @code{gpgme_get_sig_status} and @code{gpgme_get_sig_key}.
 
@@ -2658,11 +2657,11 @@ The function returns a string if the notation data is available or
 @cindex signature check
 @cindex cryptographic operation, decryption and verification
 
-@deftypefun GpgmeError gpgme_op_decrypt_verify (@w{GpgmeCtx @var{ctx}}, @w{GpgmeData @var{cipher}}, @w{GpgmeData @var{plain}}, @w{GpgmeSigStat *@var{r_stat}})
+@deftypefun GpgmeError gpgme_op_decrypt_verify (@w{GpgmeCtx @var{ctx}}, @w{GpgmeData @var{cipher}}, @w{GpgmeData @var{plain}})
 The function @code{gpgme_op_decrypt_verify} decrypts the ciphertext in
 the data object @var{cipher} and stores it into the data object
 @var{plain}.  If @var{cipher} contains signatures, they will be
-verified and their combined status will be returned in @var{r_stat}.
+verified.
 
 After the operation completed, @code{gpgme_op_get_sig_status} and
 @code{gpgme_op_get_sig_key} can be used to retrieve more information
index 448252a6dc70ee18168cf8b8a386d7514ca6a749..ca4f2adaf692b9e2247b1c636f2873371c488c50 100644 (file)
@@ -1,3 +1,13 @@
+2002-12-24  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme.h (gpgme_op_verify, gpgme_op_decrypt_verify): Drop R_STAT
+       argument.
+       * decrypt-verify.c (gpgme_op_decrypt_verify): Drop R_STAT
+       argument.
+       * verify.c (gpgme_op_verify): Drop R_STAT argument.
+       (_gpgme_intersect_stati): Function removed.
+       * ops.h (_gpgme_intersect_stati): Remove prototype.
+
 2002-12-24  Marcus Brinkmann  <marcus@g10code.de>
 
        * libgpgme.vers: New file.
index b78df703fa2df17c9f5389254a5a5aae9b3f3c3f..f49bb726d84ba14c036520ad6555214a81c9f718 100644 (file)
@@ -1,25 +1,26 @@
 /* decrypt-verify.c -  decrypt and verify functions
- *     Copyright (C) 2000 Werner Koch (dd9jn)
- *      Copyright (C) 2001, 2002 g10 Code GmbH
- *
- * This file is part of GPGME.
- *
- * GPGME is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * GPGME is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
+   Copyright (C) 2000 Werner Koch (dd9jn)
+   Copyright (C) 2001, 2002 g10 Code GmbH
 
+   This file is part of GPGME.
+   GPGME is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+   GPGME is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+   You should have received a copy of the GNU General Public License
+   along with GPGME; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+#if HAVE_CONFIG_H
 #include <config.h>
+#endif
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -59,23 +60,16 @@ gpgme_op_decrypt_verify_start (GpgmeCtx ctx, GpgmeData ciph, GpgmeData plain)
  * Return value:  0 on success or an errorcode. 
  **/
 GpgmeError
-gpgme_op_decrypt_verify (GpgmeCtx ctx,
-                        GpgmeData in, GpgmeData out,
-                        GpgmeSigStat *r_stat)
+gpgme_op_decrypt_verify (GpgmeCtx ctx, GpgmeData in, GpgmeData out)
 {
   GpgmeError err;
 
   gpgme_data_release (ctx->notation);
   ctx->notation = NULL;
     
-  *r_stat = GPGME_SIG_STAT_NONE;
   err = _gpgme_decrypt_start (ctx, 1, in, out,
                              decrypt_verify_status_handler);
   if (!err)
-    {
-      err = _gpgme_wait_one (ctx);
-      if (!err)
-       *r_stat = _gpgme_intersect_stati (ctx->result.verify);
-    }
+    err = _gpgme_wait_one (ctx);
   return err;
 }
index 4332c862fe28f0f318e2fce3b3230556d73b22d1..f38f2919b7ed457a859333408fda565ad11e0f44 100644 (file)
@@ -707,8 +707,7 @@ GpgmeError gpgme_op_decrypt (GpgmeCtx ctx,
 GpgmeError gpgme_op_decrypt_verify_start (GpgmeCtx ctx,
                                          GpgmeData cipher, GpgmeData plain);
 GpgmeError gpgme_op_decrypt_verify (GpgmeCtx ctx,
-                                   GpgmeData cipher, GpgmeData plain,
-                                   GpgmeSigStat *r_status);
+                                   GpgmeData cipher, GpgmeData plain);
 
 /* Sign the plaintext PLAIN and store the signature in SIG.  Only
    detached signatures are supported for now.  */
@@ -723,8 +722,7 @@ GpgmeError gpgme_op_sign (GpgmeCtx ctx,
 GpgmeError gpgme_op_verify_start (GpgmeCtx ctx, GpgmeData sig,
                                  GpgmeData signed_text, GpgmeData plaintext);
 GpgmeError gpgme_op_verify (GpgmeCtx ctx, GpgmeData sig,
-                           GpgmeData signed_text, GpgmeData plaintext,
-                           GpgmeSigStat *r_status);
+                           GpgmeData signed_text, GpgmeData plaintext);
 
 /* Import the key in KEYDATA into the keyring.  */
 GpgmeError gpgme_op_import_start (GpgmeCtx ctx, GpgmeData keydata);
index 4398de529f4161c71447243b979e0c8459f35d51..022eef52376ee898c215c0b7454e427bd3bc4265 100644 (file)
@@ -84,7 +84,6 @@ GpgmeError _gpgme_op_reset (GpgmeCtx ctx, int synchronous);
 
 /*-- verify.c --*/
 void _gpgme_release_verify_result (VerifyResult result);
-GpgmeSigStat _gpgme_intersect_stati (VerifyResult result);
 void _gpgme_verify_status_handler (GpgmeCtx ctx, GpgmeStatusCode code,
                                   char *args);
 
index bc2a787b256cfca25006a3f02e1a90189ab40e07..b3d7314fcafa8932ecfc2cb12d3879d64c79acf7 100644 (file)
@@ -406,26 +406,11 @@ gpgme_op_verify_start (GpgmeCtx ctx, GpgmeData sig, GpgmeData signed_text,
 }
 
 
-/* Figure out a common status value for all signatures.  */
-GpgmeSigStat
-_gpgme_intersect_stati (VerifyResult result)
-{
-  GpgmeSigStat status = result->status;
-
-  for (result = result->next; result; result = result->next)
-    {
-      if (status != result->status) 
-       return GPGME_SIG_STAT_DIFF;
-    }
-  return status;
-}
-
 /**
  * gpgme_op_verify:
  * @c: the context
  * @sig: the signature data
  * @text: the signed text
- * @r_stat: returns the status of the signature
  * 
  * Perform a signature check on the signature given in @sig.  If @text
  * is a new and uninitialized data object, it is assumed that @sig
@@ -435,44 +420,22 @@ _gpgme_intersect_stati (VerifyResult result)
  * If @text is initialized, it is assumed that @sig is a detached
  * signature for the material given in @text.
  *
- * The result of this operation is returned in @r_stat which can take these
- * values:
- *  GPGME_SIG_STAT_NONE:  No status - should not happen
- *  GPGME_SIG_STAT_GOOD:  The signature is valid 
- *  GPGME_SIG_STAT_BAD:   The signature is not valid
- *  GPGME_SIG_STAT_NOKEY: The signature could not be checked due to a
- *                        missing key
- *  GPGME_SIG_STAT_NOSIG: This is not a signature
- *  GPGME_SIG_STAT_ERROR: Due to some other error the check could not be done.
- *  GPGME_SIG_STAT_DIFF:  There is more than 1 signature and they have not
- *                        the same status.
- *  GPGME_SIG_STAT_GOOD_EXP:  The signature is good but has expired.
- *  GPGME_SIG_STAT_GOOD_KEYEXP:  The signature is good but the key has expired.
- *
  * Return value: 0 on success or an errorcode if something not related to
  *               the signature itself did go wrong.
  **/
 GpgmeError
 gpgme_op_verify (GpgmeCtx ctx, GpgmeData sig, GpgmeData signed_text,
-                GpgmeData plaintext, GpgmeSigStat *r_stat)
+                GpgmeData plaintext)
 {
   GpgmeError err;
 
-  if (!r_stat)
-    return mk_error (Invalid_Value);
-
   gpgme_data_release (ctx->notation);
   ctx->notation = NULL;
     
-  *r_stat = GPGME_SIG_STAT_NONE;
   err = _gpgme_op_verify_start (ctx, 1, sig, signed_text, plaintext);
   if (!err)
-    {
-      err = _gpgme_wait_one (ctx);
-      if (!err && ctx->result.verify)
-       *r_stat = _gpgme_intersect_stati (ctx->result.verify);
-    }
-    return err;
+    err = _gpgme_wait_one (ctx);
+  return err;
 }
 
 
@@ -484,6 +447,21 @@ gpgme_op_verify (GpgmeCtx ctx, GpgmeData sig, GpgmeData signed_text,
  * @r_created: Returns the creation timestamp
  * 
  * Return information about an already verified signatures. 
+ *
+ * The result of this operation is returned in @r_stat which can take these
+ * values:
+ *  GPGME_SIG_STAT_NONE:  No status - should not happen
+ *  GPGME_SIG_STAT_GOOD:  The signature is valid 
+ *  GPGME_SIG_STAT_BAD:   The signature is not valid
+ *  GPGME_SIG_STAT_NOKEY: The signature could not be checked due to a
+ *                        missing key
+ *  GPGME_SIG_STAT_NOSIG: This is not a signature
+ *  GPGME_SIG_STAT_ERROR: Due to some other error the check could not be done.
+ *  GPGME_SIG_STAT_DIFF:  There is more than 1 signature and they have not
+ *                        the same status.
+ *  GPGME_SIG_STAT_GOOD_EXP:  The signature is good but has expired.
+ *  GPGME_SIG_STAT_GOOD_KEYEXP:  The signature is good but the key has expired.
+ *
  * 
  * Return value: The fingerprint or NULL in case of an problem or
  *               when there are no more signatures.
index 955b9e5a049ac49e3e6f2fdb88e45833aad5d7a1..1ca88b5226e92d03b6dc919b6136b6be0d77edff 100644 (file)
@@ -1,3 +1,10 @@
+2002-12-24  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgsm/t-verify.c (main): Adjust caller of gpgme_op_verify.
+       * gpg/t-verify.c (main): Likewise.
+       * gpg/t-decrypt-verify.c (main): Likewise for
+       gpgme_op_decrypt_verify.
+
 2002-12-23  Marcus Brinkmann  <marcus@g10code.de>
 
        * gpgsm/Makefile.am (./gpgsm.conf): Add a faked system time to
index 276f7e6dac15e9f642476602aee53d81a62114c0..1a129a7970dbe52e7168af7e71b944982e6475c6 100644 (file)
@@ -1,23 +1,22 @@
 /* t-decrypt-verify.c  - regression test
- *     Copyright (C) 2000 Werner Koch (dd9jn)
- *      Copyright (C) 2001 g10 Code GmbH
- *
- * This file is part of GPGME.
- *
- * GPGME is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * GPGME is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
+   Copyright (C) 2000 Werner Koch (dd9jn)
+   Copyright (C) 2001, 2002 g10 Code GmbH
+
+   This file is part of GPGME.
+   GPGME is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+   GPGME is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+   You should have received a copy of the GNU General Public License
+   along with GPGME; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -102,7 +101,7 @@ main (int argc, char **argv)
   GpgmeData in, out, pwdata = NULL;
   struct passphrase_cb_info_s info;
   const char *cipher_2_asc = mk_fname ("cipher-2.asc");
-  GpgmeSigStat stat;
+  GpgmeSigStat status;
   char *p;
 
   do
@@ -124,15 +123,20 @@ main (int argc, char **argv)
       err = gpgme_data_new (&out);
       fail_if_err (err);
 
-      err = gpgme_op_decrypt_verify (ctx, in, out, &stat);
+      err = gpgme_op_decrypt_verify (ctx, in, out);
       fail_if_err (err);
     
       fflush (NULL);
       fputs ("Begin Result:\n", stdout);
       print_data (out);
       fputs ("End Result.\n", stdout);
-   
-      if (stat != GPGME_SIG_STAT_GOOD)
+
+      if (!gpgme_get_sig_status (ctx, 0, &status, NULL))
+       {
+         fprintf (stderr, "Signature check failed unexpectedly.\n");
+         exit (1);
+       }
+      if (status != GPGME_SIG_STAT_GOOD)
        {
          fprintf (stderr, "Signature check failed unexpectedly.\n");
          exit (1);
index f12b606871bbe010259e7bfc4a67e68fd4f9983a..1dcca5dbf92f030e86c6073eeef7e31dd8fb4ff9 100644 (file)
@@ -1,23 +1,22 @@
 /* t-verify.c  - regression test
- *     Copyright (C) 2000 Werner Koch (dd9jn)
- *      Copyright (C) 2001, 2002 g10 Code GmbH
- *
- * This file is part of GPGME.
- *
- * GPGME is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * GPGME is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
+   Copyright (C) 2000 Werner Koch (dd9jn)
+   Copyright (C) 2001, 2002 g10 Code GmbH
+
+   This file is part of GPGME.
+   GPGME is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+   GPGME is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+   You should have received a copy of the GNU General Public License
+   along with GPGME; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -188,8 +187,13 @@ main (int argc, char **argv )
     fail_if_err (err);
 
     puts ("checking a valid message:\n");
-    err = gpgme_op_verify (ctx, sig, text, NULL, &status);
+    err = gpgme_op_verify (ctx, sig, text, NULL);
     fail_if_err (err);
+    if (!gpgme_get_sig_status (ctx, 0, &status, NULL))
+      {
+       fprintf (stderr, "%s:%d: No signature\n", __FILE__, __LINE__);
+       exit (1);
+      }
     print_sig_stat (ctx, status);
     if (status != GPGME_SIG_STAT_GOOD)
       {
@@ -206,9 +210,13 @@ main (int argc, char **argv )
                                   test_text1f, strlen (test_text1f), 0);
     fail_if_err (err);
     gpgme_data_rewind (sig);
-    err = gpgme_op_verify (ctx, sig, text, NULL, &status);
+    err = gpgme_op_verify (ctx, sig, text, NULL);
     fail_if_err (err);
-
+    if (!gpgme_get_sig_status (ctx, 0, &status, NULL))
+      {
+       fprintf (stderr, "%s:%d: No signature\n", __FILE__, __LINE__);
+       exit (1);
+      }
     print_sig_stat (ctx, status);
     if (status != GPGME_SIG_STAT_BAD)
       {
@@ -225,8 +233,13 @@ main (int argc, char **argv )
     fail_if_err (err);
     err = gpgme_data_new (&text);
     fail_if_err (err);
-    err = gpgme_op_verify (ctx, sig, NULL, text, &status);
+    err = gpgme_op_verify (ctx, sig, NULL, text);
     fail_if_err (err);
+    if (!gpgme_get_sig_status (ctx, 0, &status, NULL))
+      {
+       fprintf (stderr, "%s:%d: No signature\n", __FILE__, __LINE__);
+       exit (1);
+      }
 
     nota = gpgme_data_release_and_get_mem (text, &len);
     for (j = 0; j < len; j++)
index 715b3473c5853b214af66b38f100a74310ce6b0c..0a48b3cb1034fd722eb59ad16d4a17c68766e35f 100644 (file)
@@ -1,23 +1,22 @@
 /* t-verify.c  - regression test
- *     Copyright (C) 2000 Werner Koch (dd9jn)
- *      Copyright (C) 2001, 2002 g10 Code GmbH
- *
- * This file is part of GPGME.
- *
- * GPGME is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * GPGME is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
+   Copyright (C) 2000 Werner Koch (dd9jn)
+   Copyright (C) 2001, 2002 g10 Code GmbH
+
+   This file is part of GPGME.
+   GPGME is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+   GPGME is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+   You should have received a copy of the GNU General Public License
+   along with GPGME; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -186,12 +185,14 @@ main (int argc, char **argv )
     fail_if_err (err);
 
     puts ("checking a valid message:\n");
-    err = gpgme_op_verify (ctx, sig, text, NULL, &status);
-    print_sig_stat (ctx, status);
-    print_sig_stat (ctx, status);
-    print_sig_stat (ctx, status);
-    print_sig_stat (ctx, status);
+    err = gpgme_op_verify (ctx, sig, text, NULL);
     fail_if_err (err);
+    if (!gpgme_get_sig_status (ctx, 0, &status, NULL))
+      {
+       fprintf (stderr, "%s:%d: No signature\n", __FILE__, __LINE__);
+       exit (1);
+      }
+    print_sig_stat (ctx, status);
 
     if ( (nota=gpgme_get_notation (ctx)) )
         printf ("---Begin Notation---\n%s---End Notation---\n", nota);
@@ -202,10 +203,15 @@ main (int argc, char **argv )
                                     test_text1f, strlen (test_text1f), 0);
     fail_if_err (err);
     gpgme_data_rewind ( sig );
-    err = gpgme_op_verify (ctx, sig, text, NULL, &status);
-
-    print_sig_stat (ctx, status);
+    err = gpgme_op_verify (ctx, sig, text, NULL);
     fail_if_err (err);
+    if (!gpgme_get_sig_status (ctx, 0, &status, NULL))
+      {
+       fprintf (stderr, "%s:%d: No signature\n", __FILE__, __LINE__);
+       exit (1);
+      }
+    print_sig_stat (ctx, status);
+
     if ((nota=gpgme_get_notation (ctx)))
         printf ("---Begin Notation---\n%s---End Notation---\n", nota);