aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2017-06-03 14:47:40 -0300
committerDavid Bremner <david@tethera.net>2017-07-05 07:36:20 -0300
commit87ca29b7a737a9b52f1916156aef9511939b4376 (patch)
tree8955f226121fb137241a03807d08c711a4a25efc /test
parent4f48ae4a5fcc842b1c010ba11aff902cd67ddc6f (diff)
test/crypto: add test for corrupted signatures
Have an empty list of signatures is not the nicest mechanism to signal complete failure to verify, but it's the one we currently have.
Diffstat (limited to 'test')
-rwxr-xr-xtest/T350-crypto.sh43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/T350-crypto.sh b/test/T350-crypto.sh
index bcf3b13b..7de0ed6a 100755
--- a/test/T350-crypto.sh
+++ b/test/T350-crypto.sh
@@ -107,6 +107,49 @@ test_expect_equal_json \
"$output" \
"$expected"
+test_begin_subtest "corrupted pgp/mime signature"
+emacs_fcc_message \
+ "bad signed message 002" \
+ "Incriminating stuff. This is a test signed message." \
+ "(mml-secure-message-sign)"
+
+file=$(notmuch search --output=files subject:"bad signed message 002")
+
+awk '/-----BEGIN PGP SIGNATURE-----/{flag=1;print;next} \
+ /-----END PGP SIGNATURE-----/{flag=0;print;next} \
+ flag{gsub(/[A-Za-z]/,"0");print}!flag{print}' $file > $file.new
+
+rm $file
+mv $file.new $file
+
+output=$(notmuch show --format=json --verify subject:"bad signed message 002" \
+ | notmuch_json_show_sanitize \
+ | sed -e 's|"created": [1234567890]*|"created": 946728000|')
+expected='[[[{"id": "XXXXX",
+ "match": true,
+ "excluded": false,
+ "filename": ["YYYYY"],
+ "timestamp": 946728000,
+ "date_relative": "2000-01-01",
+ "tags": ["inbox","signed"],
+ "headers": {"Subject": "bad signed message 002",
+ "From": "Notmuch Test Suite <test_suite@notmuchmail.org>",
+ "To": "test_suite@notmuchmail.org",
+ "Date": "Sat, 01 Jan 2000 12:00:00 +0000"},
+ "body": [{"id": 1,
+ "sigstatus": [],
+ "content-type": "multipart/signed",
+ "content": [{"id": 2,
+ "content-type": "text/plain",
+ "content": "Incriminating stuff. This is a test signed message.\n"},
+ {"id": 3,
+ "content-type": "application/pgp-signature",
+ "content-length": "NONZERO"}]}]},
+ []]]]'
+test_expect_equal_json \
+ "$output" \
+ "$expected"
+
test_begin_subtest "signature verification with full owner trust"
# give the key full owner trust
echo "${FINGERPRINT}:6:" | gpg --no-tty --import-ownertrust >>"$GNUPGHOME"/trust.log 2>&1