X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=tests%2Fgpgsm%2Ft-verify.c;h=062c5a1540f10556abdc6cab8213d7f604f133d2;hb=dae3073aaa8b7feb1c844fdaf711f79141b9cc65;hp=304fc2c6cb1e9743d332d3741d5ba1379d729135;hpb=38a0357afbd1a005efce142a2aacb77d485e55b7;p=gpgme.git diff --git a/tests/gpgsm/t-verify.c b/tests/gpgsm/t-verify.c index 304fc2c..062c5a1 100644 --- a/tests/gpgsm/t-verify.c +++ b/tests/gpgsm/t-verify.c @@ -1,22 +1,29 @@ /* t-verify.c - Regression test. Copyright (C) 2000 Werner Koch (dd9jn) - Copyright (C) 2001, 2002, 2003 g10 Code GmbH + Copyright (C) 2001, 2002, 2003, 2004 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. - + under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 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. */ + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser 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. */ + +/* We need to include config.h so that we know whether we are building + with large file system (LFS) support. */ +#ifdef HAVE_CONFIG_H +#include +#endif #include #include @@ -27,6 +34,8 @@ #include "t-support.h" +static int got_errors; + static const char test_text1[] = "Hallo Leute!\n"; static const char test_text1f[]= "Hallo Leute?\n"; static const char test_sig1[] = @@ -53,53 +62,76 @@ check_result (gpgme_verify_result_t result, int summary, char *fpr, { fprintf (stderr, "%s:%i: Unexpected number of signatures\n", __FILE__, __LINE__); - exit (1); + got_errors = 1; } if (sig->summary != summary) { - fprintf (stderr, "%s:%i: Unexpected signature summary: 0x%x\n", - __FILE__, __LINE__, sig->summary); - exit (1); + fprintf (stderr, "%s:%i: Unexpected signature summary: " + "want=0x%x have=0x%x\n", + __FILE__, __LINE__, summary, sig->summary); + got_errors = 1; } if (strcmp (sig->fpr, fpr)) { fprintf (stderr, "%s:%i: Unexpected fingerprint: %s\n", __FILE__, __LINE__, sig->fpr); - exit (1); + got_errors = 1; } - if (gpg_err_code (sig->status) != status) + if (gpgme_err_code (sig->status) != status) { fprintf (stderr, "%s:%i: Unexpected signature status: %s\n", __FILE__, __LINE__, gpgme_strerror (sig->status)); - exit (1); + got_errors = 1; } if (sig->notations) { fprintf (stderr, "%s:%i: Unexpected notation data\n", __FILE__, __LINE__); - exit (1); + got_errors = 1; } if (sig->wrong_key_usage) { fprintf (stderr, "%s:%i: Unexpectedly wrong key usage\n", __FILE__, __LINE__); - exit (1); + got_errors = 1; } if (sig->validity != validity) { fprintf (stderr, "%s:%i: Unexpected validity: %i\n", __FILE__, __LINE__, sig->validity); - exit (1); + got_errors = 1; } - if (gpg_err_code (sig->validity_reason) != GPG_ERR_NO_ERROR) + if (gpgme_err_code (sig->validity_reason) != GPG_ERR_NO_ERROR) { fprintf (stderr, "%s:%i: Unexpected validity reason: %s\n", __FILE__, __LINE__, gpgme_strerror (sig->validity_reason)); - exit (1); + got_errors = 1; } } +static void +show_auditlog (gpgme_ctx_t ctx) +{ + gpgme_error_t err; + gpgme_data_t data; + + err = gpgme_data_new (&data); + fail_if_err (err); + err = gpgme_op_getauditlog (ctx, data, GPGME_AUDITLOG_HTML); + if (err) + { + fprintf (stderr, "%s:%i: Can't get audit log: %s\n", + __FILE__, __LINE__, gpgme_strerror (err)); + if (gpgme_err_code (err) != GPG_ERR_ASS_UNKNOWN_CMD) + got_errors = 1; + } + print_data (data); + gpgme_data_release (data); +} + + + int main (int argc, char **argv) { @@ -119,6 +151,7 @@ main (int argc, char **argv) fail_if_err (err); err = gpgme_data_new_from_mem (&sig, test_sig1, strlen (test_sig1), 0); fail_if_err (err); + err = gpgme_op_verify (ctx, sig, text, NULL); fail_if_err (err); result = gpgme_op_verify_result (ctx); @@ -126,6 +159,8 @@ main (int argc, char **argv) "3CF405464F66ED4A7DF45BBDD1E4282E33BDB76E", GPG_ERR_NO_ERROR, GPGME_VALIDITY_FULL); + show_auditlog (ctx); + /* Checking a manipulated message. */ gpgme_data_release (text); err = gpgme_data_new_from_mem (&text, test_text1f, strlen (test_text1f), 0); @@ -138,6 +173,10 @@ main (int argc, char **argv) "3CF405464F66ED4A7DF45BBDD1E4282E33BDB76E", GPG_ERR_BAD_SIGNATURE, GPGME_VALIDITY_UNKNOWN); + show_auditlog (ctx); + + gpgme_data_release (text); + gpgme_data_release (sig); gpgme_release (ctx); - return 0; + return got_errors? 1 : 0; }