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.
This commit is contained in:
Daniel Kahn Gillmor 2016-11-23 12:57:22 -05:00 committed by David Bremner
parent c9ec90ae7f
commit d31161c212
3 changed files with 13 additions and 14 deletions

View file

@ -59,7 +59,7 @@ expected='[[[{"id": "XXXXX",
"content": "This is a test signed message.\n"}, "content": "This is a test signed message.\n"},
{"id": 3, {"id": 3,
"content-type": "application/pgp-signature", "content-type": "application/pgp-signature",
"content-length": 280}]}]}, "content-length": "NONZERO"}]}]},
[]]]]' []]]]'
test_expect_equal_json \ test_expect_equal_json \
"$output" \ "$output" \
@ -94,7 +94,7 @@ expected='[[[{"id": "XXXXX",
"content": "This is a test signed message.\n"}, "content": "This is a test signed message.\n"},
{"id": 3, {"id": 3,
"content-type": "application/pgp-signature", "content-type": "application/pgp-signature",
"content-length": 280}]}]}, "content-length": "NONZERO"}]}]},
[]]]]' []]]]'
test_expect_equal_json \ test_expect_equal_json \
"$output" \ "$output" \
@ -127,7 +127,7 @@ expected='[[[{"id": "XXXXX",
"content": "This is a test signed message.\n"}, "content": "This is a test signed message.\n"},
{"id": 3, {"id": 3,
"content-type": "application/pgp-signature", "content-type": "application/pgp-signature",
"content-length": 280}]}]}, "content-length": "NONZERO"}]}]},
[]]]]' []]]]'
test_expect_equal_json \ test_expect_equal_json \
"$output" \ "$output" \
@ -197,7 +197,7 @@ expected='[[[{"id": "XXXXX",
"content-type": "multipart/encrypted", "content-type": "multipart/encrypted",
"content": [{"id": 2, "content": [{"id": 2,
"content-type": "application/pgp-encrypted", "content-type": "application/pgp-encrypted",
"content-length": 11}, "content-length": "NONZERO"},
{"id": 3, {"id": 3,
"content-type": "multipart/mixed", "content-type": "multipart/mixed",
"content": [{"id": 4, "content": [{"id": 4,
@ -205,7 +205,7 @@ expected='[[[{"id": "XXXXX",
"content": "This is a test encrypted message.\n"}, "content": "This is a test encrypted message.\n"},
{"id": 5, {"id": 5,
"content-type": "application/octet-stream", "content-type": "application/octet-stream",
"content-length": 28, "content-length": "NONZERO",
"content-transfer-encoding": "base64", "content-transfer-encoding": "base64",
"filename": "TESTATTACHMENT"}]}]}]}, "filename": "TESTATTACHMENT"}]}]}]},
[]]]]' []]]]'
@ -234,11 +234,9 @@ test_expect_equal_file OUTPUT TESTATTACHMENT
test_begin_subtest "decryption failure with missing key" test_begin_subtest "decryption failure with missing key"
mv "${GNUPGHOME}"{,.bak} 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" \ output=$(notmuch show --format=json --decrypt subject:"test encrypted message 001" \
| notmuch_json_show_sanitize \ | notmuch_json_show_sanitize \
| sed -e 's|"created": [1234567890]*|"created": 946728000|' \ | sed -e 's|"created": [1234567890]*|"created": 946728000|')
| sed -e 's|"content-length": 6[1234567890]*|"content-length": 652|')
expected='[[[{"id": "XXXXX", expected='[[[{"id": "XXXXX",
"match": true, "match": true,
"excluded": false, "excluded": false,
@ -255,10 +253,10 @@ expected='[[[{"id": "XXXXX",
"content-type": "multipart/encrypted", "content-type": "multipart/encrypted",
"content": [{"id": 2, "content": [{"id": 2,
"content-type": "application/pgp-encrypted", "content-type": "application/pgp-encrypted",
"content-length": 11}, "content-length": "NONZERO"},
{"id": 3, {"id": 3,
"content-type": "application/octet-stream", "content-type": "application/octet-stream",
"content-length": 652}]}]}, "content-length": "NONZERO"}]}]},
[]]]]' []]]]'
test_expect_equal_json \ test_expect_equal_json \
"$output" \ "$output" \
@ -295,7 +293,7 @@ expected='[[[{"id": "XXXXX",
"content-type": "multipart/encrypted", "content-type": "multipart/encrypted",
"content": [{"id": 2, "content": [{"id": 2,
"content-type": "application/pgp-encrypted", "content-type": "application/pgp-encrypted",
"content-length": 11}, "content-length": "NONZERO"},
{"id": 3, {"id": 3,
"content-type": "text/plain", "content-type": "text/plain",
"content": "This is another test encrypted message.\n"}]}]}, "content": "This is another test encrypted message.\n"}]}]},
@ -370,7 +368,7 @@ expected='[[[{"id": "XXXXX",
"content": "This is a test signed message.\n"}, "content": "This is a test signed message.\n"},
{"id": 3, {"id": 3,
"content-type": "application/pgp-signature", "content-type": "application/pgp-signature",
"content-length": 280}]}]}, "content-length": "NONZERO"}]}]},
[]]]]' []]]]'
test_expect_equal_json \ test_expect_equal_json \
"$output" \ "$output" \

View file

@ -69,7 +69,7 @@ expected='[[[{"id": "XXXXX",
"content-type": "text/plain", "content-type": "text/plain",
"content": "This is a test signed message.\n"}, "content": "This is a test signed message.\n"},
{"id": 3, {"id": 3,
"content-length": 1922, "content-length": "NONZERO",
"content-transfer-encoding": "base64", "content-transfer-encoding": "base64",
"content-type": "application/x-pkcs7-signature", "content-type": "application/x-pkcs7-signature",
"filename": "smime.p7s"}]}]}, "filename": "smime.p7s"}]}]},

View file

@ -736,7 +736,8 @@ notmuch_json_show_sanitize ()
-e 's|"Date": "Fri, 05 Jan 2001 [^"]*0000"|"Date": "GENERATED_DATE"|g' \ -e 's|"Date": "Fri, 05 Jan 2001 [^"]*0000"|"Date": "GENERATED_DATE"|g' \
-e 's|"filename": "signature.asc",||g' \ -e 's|"filename": "signature.asc",||g' \
-e 's|"filename": "/[^"]*",|"filename": "YYYYY",|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 () notmuch_emacs_error_sanitize ()