aboutsummaryrefslogtreecommitdiffstats
path: root/tests/gpg/t-verify.c
diff options
context:
space:
mode:
authorMarcus Brinkmann <[email protected]>2002-03-03 16:46:33 +0000
committerMarcus Brinkmann <[email protected]>2002-03-03 16:46:33 +0000
commit7d0eebf41a7374a3dc66c9fc138e5470bea0af42 (patch)
tree08039e8eeb6f2928f83de6e70ec0c91ca2f43f2c /tests/gpg/t-verify.c
parent2002-03-03 Marcus Brinkmann <[email protected]> (diff)
downloadgpgme-7d0eebf41a7374a3dc66c9fc138e5470bea0af42.tar.gz
gpgme-7d0eebf41a7374a3dc66c9fc138e5470bea0af42.zip
doc/
2002-03-03 Marcus Brinkmann <[email protected]> * gpgme.texi (Verify): Document verification of normal and cleartext signatures. gpgme/ 2002-03-03 Marcus Brinkmann <[email protected]> * rungpg.c (_gpgme_gpg_op_verify): If TEXT is of mode GPGME_DATA_MODE_IN, construct a command line that stores the plaintext in TEXT. * verify.c (gpgme_op_verify_start): Accept TEXT being uninitialized, and in this case interpret SIG as a normal or cleartext signature and TEXT as a return data object. * engine-gpgsm.c (_gpgme_gpgsm_op_verify): Likewise. tests/ 2002-03-03 Marcus Brinkmann <[email protected]> * gpg/t-verify.c (main): Add a few more sanity checks, and a check for normal signatures.
Diffstat (limited to '')
-rw-r--r--tests/gpg/t-verify.c60
1 files changed, 50 insertions, 10 deletions
diff --git a/tests/gpg/t-verify.c b/tests/gpg/t-verify.c
index 6b4a28e6..9e1b4bf8 100644
--- a/tests/gpg/t-verify.c
+++ b/tests/gpg/t-verify.c
@@ -59,7 +59,14 @@ static const char test_sig1[] =
"-----END PGP SIGNATURE-----\n"
#endif
;
-
+static const char test_sig2[] =
+"-----BEGIN PGP MESSAGE-----\n"
+"\n"
+"owGbwMvMwCSoW1RzPCOz3IRxjXQSR0lqcYleSUWJTZOvjVdpcYmCu1+oQmaJIleH\n"
+"GwuDIBMDGysTSIqBi1MApi+nlGGuwDeHao53HBr+FoVGP3xX+kvuu9fCMJvl6IOf\n"
+"y1kvP4y+8D5a11ang0udywsA\n"
+"=Crq6\n"
+"-----END PGP MESSAGE-----\n";
#define fail_if_err(a) do { if(a) { \
@@ -133,6 +140,7 @@ main (int argc, char **argv )
GpgmeSigStat status;
char *nota;
int n = 0;
+ int i, j;
err = gpgme_new (&ctx);
fail_if_err (err);
@@ -151,11 +159,13 @@ main (int argc, char **argv )
puts ("checking a valid message:\n");
err = gpgme_op_verify (ctx, sig, text, &status );
- print_sig_stat ( ctx, status );
- print_sig_stat ( ctx, status );
- print_sig_stat ( ctx, status );
- print_sig_stat ( ctx, status );
fail_if_err (err);
+ print_sig_stat ( ctx, status );
+ if (status != GPGME_SIG_STAT_GOOD)
+ {
+ fprintf (stderr, "%s:%d: Wrong sig stat\n", __FILE__, __LINE__);
+ exit (1);
+ }
if ( (nota=gpgme_get_notation (ctx)) )
printf ("---Begin Notation---\n%s---End Notation---\n", nota );
@@ -167,20 +177,50 @@ main (int argc, char **argv )
fail_if_err (err);
gpgme_data_rewind ( sig );
err = gpgme_op_verify (ctx, sig, text, &status );
-
- print_sig_stat ( ctx, status );
fail_if_err (err);
+
+ print_sig_stat (ctx, status);
+ if (status != GPGME_SIG_STAT_BAD)
+ {
+ fprintf (stderr, "%s:%d: Wrong sig stat\n", __FILE__, __LINE__);
+ exit (1);
+ }
if ( (nota=gpgme_get_notation (ctx)) )
printf ("---Begin Notation---\n%s---End Notation---\n", nota );
+ puts ("checking a normal signature:");
gpgme_data_release (sig);
gpgme_data_release (text);
+ err = gpgme_data_new_from_mem (&sig, test_sig2, strlen (test_sig2), 0);
+ fail_if_err (err);
+ err = gpgme_data_new (&text);
+ fail_if_err (err);
+ err = gpgme_op_verify (ctx, sig, text, &status);
+ fail_if_err (err);
+
+ nota = gpgme_data_release_and_get_mem (text, &i);
+ for (j = 0; j < i; j++)
+ putchar (nota[j]);
+ if (strncmp (nota, test_text1, strlen (test_text1)))
+ {
+ fprintf (stderr, "%s:%d: Wrong plaintext\n", __FILE__, __LINE__);
+ exit (1);
+ }
+
+ print_sig_stat (ctx, status);
+ if (status != GPGME_SIG_STAT_GOOD)
+ {
+ fprintf (stderr, "%s:%d: Wrong sig stat\n", __FILE__, __LINE__);
+ exit (1);
+ }
+
+ if ((nota = gpgme_get_notation (ctx)))
+ printf ("---Begin Notation---\n%s---End Notation---\n", nota);
+
+ gpgme_data_release (sig);
} while ( argc > 1 && !strcmp( argv[1], "--loop" ) && ++n < 20 );
gpgme_release (ctx);
return 0;
}
-
-
-