diff options
author | Werner Koch <[email protected]> | 2007-02-26 10:36:08 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2007-02-26 10:36:08 +0000 |
commit | 1786019d6891b4e4ff350ca800b1cd63a79c5806 (patch) | |
tree | cdc32bd6a3b235b738cf1278e68cdf0a3e012476 /tests/gpg/t-verify.c | |
parent | 2007-01-29 Marcus Brinkmann <[email protected]> (diff) | |
download | gpgme-1786019d6891b4e4ff350ca800b1cd63a79c5806.tar.gz gpgme-1786019d6891b4e4ff350ca800b1cd63a79c5806.zip |
Detect and bailo out on double plaintext messages.
Diffstat (limited to 'tests/gpg/t-verify.c')
-rw-r--r-- | tests/gpg/t-verify.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/gpg/t-verify.c b/tests/gpg/t-verify.c index 22f04773..0efd06ff 100644 --- a/tests/gpg/t-verify.c +++ b/tests/gpg/t-verify.c @@ -76,6 +76,20 @@ static const char test_sig2[] = "=Crq6\n" "-----END PGP MESSAGE-----\n"; +/* A message with a prepended but unsigned plaintext packet. */ +static const char double_plaintext_sig[] = +"-----BEGIN PGP MESSAGE-----\n" +"\n" +"rDRiCmZvb2Jhci50eHRF4pxNVGhpcyBpcyBteSBzbmVha3kgcGxhaW50ZXh0IG1l\n" +"c3NhZ2UKowGbwMvMwCSoW1RzPCOz3IRxTWISa6JebnG666MFD1wzSzJSixQ81XMV\n" +"UlITUxTyixRyKxXKE0uSMxQyEosVikvyCwpSU/S4FNCArq6Ce1F+aXJGvoJvYlGF\n" +"erFCTmJxiUJ5flFKMVeHGwuDIBMDGysTyA4GLk4BmO036xgWzMgzt9V85jCtfDFn\n" +"UqVooWlGXHwNw/xg/fVzt9VNbtjtJ/fhUqYo0/LyCGEA\n" +"=6+AK\n" +"-----END PGP MESSAGE-----\n"; + + + static void check_result (gpgme_verify_result_t result, unsigned int summary, char *fpr, @@ -235,6 +249,23 @@ main (int argc, char *argv[]) check_result (result, 0, "A0FF4590BB6122EDEF6E3C542D727CC768697734", GPG_ERR_NO_ERROR, 0); + + /* Checking an invalid message. */ + gpgme_data_release (sig); + gpgme_data_release (text); + err = gpgme_data_new_from_mem (&sig, double_plaintext_sig, + strlen (double_plaintext_sig), 0); + fail_if_err (err); + err = gpgme_data_new (&text); + fail_if_err (err); + err = gpgme_op_verify (ctx, sig, NULL, text); + if (gpg_err_code (err) != GPG_ERR_BAD_DATA) + { + fprintf (stderr, "%s:%i: Double plaintext message not detected\n", + __FILE__, __LINE__); + exit (1); + } + gpgme_data_release (sig); gpgme_data_release (text); gpgme_release (ctx); |