From d31161c212368a592c5d92e3d181a986d49fcc20 Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Wed, 23 Nov 2016 12:57:22 -0500 Subject: [PATCH] tests: account for varying-size cryptographic signatures GnuPG 2.1.16 is now injecting the full issuer fingerprint in its signatures, which makes them about 32 octets larger when ascii-armored. This change in size means that the size of the MIME parts will vary depending on the version of gpg that the user has installed. at any rate, the signature part should be non-zero (this is true for basically any MIME part), so we just test for that instead of an exact size. --- test/T350-crypto.sh | 22 ++++++++++------------ test/T355-smime.sh | 2 +- test/test-lib.sh | 3 ++- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/test/T350-crypto.sh b/test/T350-crypto.sh index df2dc743..a1e5e206 100755 --- a/test/T350-crypto.sh +++ b/test/T350-crypto.sh @@ -59,7 +59,7 @@ expected='[[[{"id": "XXXXX", "content": "This is a test signed message.\n"}, {"id": 3, "content-type": "application/pgp-signature", - "content-length": 280}]}]}, + "content-length": "NONZERO"}]}]}, []]]]' test_expect_equal_json \ "$output" \ @@ -94,7 +94,7 @@ expected='[[[{"id": "XXXXX", "content": "This is a test signed message.\n"}, {"id": 3, "content-type": "application/pgp-signature", - "content-length": 280}]}]}, + "content-length": "NONZERO"}]}]}, []]]]' test_expect_equal_json \ "$output" \ @@ -127,7 +127,7 @@ expected='[[[{"id": "XXXXX", "content": "This is a test signed message.\n"}, {"id": 3, "content-type": "application/pgp-signature", - "content-length": 280}]}]}, + "content-length": "NONZERO"}]}]}, []]]]' test_expect_equal_json \ "$output" \ @@ -197,7 +197,7 @@ expected='[[[{"id": "XXXXX", "content-type": "multipart/encrypted", "content": [{"id": 2, "content-type": "application/pgp-encrypted", - "content-length": 11}, + "content-length": "NONZERO"}, {"id": 3, "content-type": "multipart/mixed", "content": [{"id": 4, @@ -205,7 +205,7 @@ expected='[[[{"id": "XXXXX", "content": "This is a test encrypted message.\n"}, {"id": 5, "content-type": "application/octet-stream", - "content-length": 28, + "content-length": "NONZERO", "content-transfer-encoding": "base64", "filename": "TESTATTACHMENT"}]}]}]}, []]]]' @@ -234,11 +234,9 @@ test_expect_equal_file OUTPUT TESTATTACHMENT test_begin_subtest "decryption failure with missing key" mv "${GNUPGHOME}"{,.bak} -# The length of the encrypted attachment varies so must be normalized. output=$(notmuch show --format=json --decrypt subject:"test encrypted message 001" \ | notmuch_json_show_sanitize \ - | sed -e 's|"created": [1234567890]*|"created": 946728000|' \ - | sed -e 's|"content-length": 6[1234567890]*|"content-length": 652|') + | sed -e 's|"created": [1234567890]*|"created": 946728000|') expected='[[[{"id": "XXXXX", "match": true, "excluded": false, @@ -255,10 +253,10 @@ expected='[[[{"id": "XXXXX", "content-type": "multipart/encrypted", "content": [{"id": 2, "content-type": "application/pgp-encrypted", - "content-length": 11}, + "content-length": "NONZERO"}, {"id": 3, "content-type": "application/octet-stream", - "content-length": 652}]}]}, + "content-length": "NONZERO"}]}]}, []]]]' test_expect_equal_json \ "$output" \ @@ -295,7 +293,7 @@ expected='[[[{"id": "XXXXX", "content-type": "multipart/encrypted", "content": [{"id": 2, "content-type": "application/pgp-encrypted", - "content-length": 11}, + "content-length": "NONZERO"}, {"id": 3, "content-type": "text/plain", "content": "This is another test encrypted message.\n"}]}]}, @@ -370,7 +368,7 @@ expected='[[[{"id": "XXXXX", "content": "This is a test signed message.\n"}, {"id": 3, "content-type": "application/pgp-signature", - "content-length": 280}]}]}, + "content-length": "NONZERO"}]}]}, []]]]' test_expect_equal_json \ "$output" \ diff --git a/test/T355-smime.sh b/test/T355-smime.sh index d9424125..a8be45e7 100755 --- a/test/T355-smime.sh +++ b/test/T355-smime.sh @@ -69,7 +69,7 @@ expected='[[[{"id": "XXXXX", "content-type": "text/plain", "content": "This is a test signed message.\n"}, {"id": 3, - "content-length": 1922, + "content-length": "NONZERO", "content-transfer-encoding": "base64", "content-type": "application/x-pkcs7-signature", "filename": "smime.p7s"}]}]}, diff --git a/test/test-lib.sh b/test/test-lib.sh index e7b83392..86e792a8 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -736,7 +736,8 @@ notmuch_json_show_sanitize () -e 's|"Date": "Fri, 05 Jan 2001 [^"]*0000"|"Date": "GENERATED_DATE"|g' \ -e 's|"filename": "signature.asc",||g' \ -e 's|"filename": "/[^"]*",|"filename": "YYYYY",|g' \ - -e 's|"timestamp": 97.......|"timestamp": 42|g' + -e 's|"timestamp": 97.......|"timestamp": 42|g' \ + -e 's|"content-length": [1-9][0-9]*|"content-length": "NONZERO"|g' } notmuch_emacs_error_sanitize ()