diff options
Diffstat (limited to 'tests/t-verify.c')
| -rw-r--r-- | tests/t-verify.c | 60 | 
1 files changed, 58 insertions, 2 deletions
| diff --git a/tests/t-verify.c b/tests/t-verify.c index 779d560f..5ab6bbca 100644 --- a/tests/t-verify.c +++ b/tests/t-verify.c @@ -28,21 +28,69 @@  static const char test_text1[] = "Just GNU it!\n";  static const char test_text1f[]= "Just GNU it?\n";  static const char test_sig1[] = +#if 0  "-----BEGIN PGP SIGNATURE-----\n"  "\n"  "iEYEABECAAYFAjoKgjIACgkQLXJ8x2hpdzQMSwCeO/xUrhysZ7zJKPf/FyXA//u1\n"  "ZgIAn0204PBR7yxSdQx6CFxugstNqmRv\n"  "=yku6\n"  "-----END PGP SIGNATURE-----\n" +#elif 0  +"-----BEGIN PGP SIGNATURE-----\n" +"Version: GnuPG v1.0.4-2 (GNU/Linux)\n" +"Comment: For info see http://www.gnupg.org\n" +"\n" +"iJcEABECAFcFAjoS8/E1FIAAAAAACAAkZm9vYmFyLjF0aGlzIGlzIGEgbm90YXRp\n" +"b24gZGF0YSB3aXRoIDIgbGluZXMaGmh0dHA6Ly93d3cuZ3Uub3JnL3BvbGljeS8A\n" +"CgkQLXJ8x2hpdzQLyQCbBW/fgU8ZeWSlWPM1F8umHX17bAAAoIfSNDSp5zM85XcG\n" +"iwxMrf+u8v4r\n" +"=88Zo\n" +"-----END PGP SIGNATURE-----\n" +#elif 1 +"-----BEGIN PGP SIGNATURE-----\n" +"\n" +"iN0EABECAJ0FAjoS+i9FFIAAAAAAAwA5YmFyw7bDpMO8w58gZGFzIHdhcmVuIFVt\n" +"bGF1dGUgdW5kIGpldHp0IGVpbiBwcm96ZW50JS1aZWljaGVuNRSAAAAAAAgAJGZv\n" +"b2Jhci4xdGhpcyBpcyBhIG5vdGF0aW9uIGRhdGEgd2l0aCAyIGxpbmVzGhpodHRw\n" +"Oi8vd3d3Lmd1Lm9yZy9wb2xpY3kvAAoJEC1yfMdoaXc0JBIAoIiLlUsvpMDOyGEc\n" +"dADGKXF/Hcb+AKCJWPphZCphduxSvrzH0hgzHdeQaA==\n" +"=nts1\n" +"-----END PGP SIGNATURE-----\n" +#endif  ; +  #define fail_if_err(a) do { if(a) {                                       \                                 fprintf (stderr, "%s:%d: GpgmeError %s\n", \                                  __FILE__, __LINE__, gpgme_strerror(a));   \                                  exit (1); }                               \                               } while(0) +static void +print_sig_stat ( GpgmeSigStat status ) +{ +    switch ( status ) { +      case GPGME_SIG_STAT_NONE: +        fputs ("Verification Status: None\n", stdout); +        break; +      case GPGME_SIG_STAT_NOSIG: +        fputs ("Verification Status: No Signature\n", stdout); +        break; +      case GPGME_SIG_STAT_GOOD: +        fputs ("Verification Status: Good\n", stdout); +        break; +      case GPGME_SIG_STAT_BAD: +        fputs ("Verification Status: Bad\n", stdout); +        break; +      case GPGME_SIG_STAT_NOKEY: +        fputs ("Verification Status: No Key\n", stdout); +        break; +      case GPGME_SIG_STAT_ERROR: +        fputs ("Verification Status: Error\n", stdout); +        break; +    } +}  int   main (int argc, char **argv ) @@ -50,6 +98,8 @@ main (int argc, char **argv )      GpgmeCtx ctx;      GpgmeError err;      GpgmeData sig, text; +    GpgmeSigStat status; +    char *nota;      err = gpgme_new (&ctx);      fail_if_err (err); @@ -61,16 +111,22 @@ main (int argc, char **argv )      fail_if_err (err);      puts ("checking a valid message:\n"); -    err = gpgme_op_verify (ctx, sig, text ); +    err = gpgme_op_verify (ctx, sig, text, &status ); +    print_sig_stat ( status );      fail_if_err (err); +    if ( (nota=gpgme_op_get_notation (ctx)) ) +        printf ("---Begin Notation---\n%s---End Notation---\n", nota );      puts ("checking a manipulated message:\n");      gpgme_data_release (text);      err = gpgme_data_new ( &text, test_text1f, strlen (test_text1f), 0 );      fail_if_err (err);      gpgme_data_rewind ( sig ); -    err = gpgme_op_verify (ctx, sig, text ); +    err = gpgme_op_verify (ctx, sig, text, &status ); +    print_sig_stat ( status );      fail_if_err (err); +    if ( (nota=gpgme_op_get_notation (ctx)) ) +        printf ("---Begin Notation---\n%s---End Notation---\n", nota );      gpgme_data_release (sig);      gpgme_data_release (text); | 
