X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2FT355-smime.sh;h=336da917df46887bcb0c262870e9afb6307ed08c;hp=170f864985aa5096c8699a844dd2706c8bddccdb;hb=HEAD;hpb=6cdf4b7e38000c6d0a14ff04ab71f7c7e60835ec diff --git a/test/T355-smime.sh b/test/T355-smime.sh index 170f8649..d2118c04 100755 --- a/test/T355-smime.sh +++ b/test/T355-smime.sh @@ -2,11 +2,13 @@ test_description='S/MIME signature verification and decryption' . $(dirname "$0")/test-lib.sh || exit 1 +. $NOTMUCH_SRCDIR/test/test-lib-emacs.sh || exit 1 +test_require_emacs test_require_external_prereq openssl test_require_external_prereq gpgsm -FINGERPRINT=$(openssl x509 -fingerprint -in "$NOTMUCH_SRCDIR/test/smime/key+cert.pem" -noout | sed -e 's/^.*=//' -e s/://g) +FINGERPRINT=$(openssl x509 -sha1 -fingerprint -in "$NOTMUCH_SRCDIR/test/smime/key+cert.pem" -noout | sed -e 's/^.*=//' -e s/://g) add_gpgsm_home @@ -33,6 +35,11 @@ EOF test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "signature verification (notmuch CLI)" +if [ $NOTMUCH_GMIME_EMITS_ANGLE_BRACKETS == 1 ]; then + EXPECTED_EMAIL_ADDR='' +else + EXPECTED_EMAIL_ADDR='test_suite@notmuchmail.org' +fi output=$(notmuch show --format=json --verify subject:"test signed message 001" \ | notmuch_json_show_sanitize \ | sed -e 's|"created": [-1234567890]*|"created": 946728000|g' \ @@ -44,7 +51,7 @@ expected='[[[{"id": "XXXXX", "timestamp": 946728000, "date_relative": "2000-01-01", "tags": ["inbox","signed"], - "crypto": {"signed": {"status": [{"fingerprint": "'$FINGERPRINT'", "status": "good","userid": "CN=Notmuch Test Suite","expires": 424242424, "created": 946728000}]}}, + "crypto": {"signed": {"status": [{"fingerprint": "'$FINGERPRINT'", "status": "good","userid": "CN=Notmuch Test Suite", "email": "'$EXPECTED_EMAIL_ADDR'", "expires": 424242424, "created": 946728000}]}}, "headers": {"Subject": "test signed message 001", "From": "Notmuch Test Suite ", "To": "test_suite@notmuchmail.org", @@ -53,6 +60,7 @@ expected='[[[{"id": "XXXXX", "sigstatus": [{"fingerprint": "'$FINGERPRINT'", "status": "good", "userid": "CN=Notmuch Test Suite", + "email": "'$EXPECTED_EMAIL_ADDR'", "expires": 424242424, "created": 946728000}], "content-type": "multipart/signed", @@ -175,7 +183,11 @@ test_begin_subtest "show PKCS#7 SignedData outputs valid JSON" output=$(notmuch show --format=json id:smime-onepart-signed@protected-headers.example) test_valid_json "$output" +if [ -z "${NOTMUCH_TEST_INSTALLED-}" ]; then test_begin_subtest "Verify signature on PKCS#7 SignedData message" +if [ "${NOTMUCH_HAVE_64BIT_TIME_T-0}" != "1" ]; then + test_subtest_known_broken +fi output=$(notmuch show --format=json id:smime-onepart-signed@protected-headers.example) test_json_nodes <<<"$output" \ @@ -183,6 +195,7 @@ test_json_nodes <<<"$output" \ 'expires:[0][0][0]["crypto"]["signed"]["status"][0]["expires"]=2611032858' \ 'fingerprint:[0][0][0]["crypto"]["signed"]["status"][0]["fingerprint"]="702BA4B157F1E2B7D16B0C6A5FFC8A7DE2057DEB"' \ 'status:[0][0][0]["crypto"]["signed"]["status"][0]["status"]="good"' +fi # NOTMUCH_TEST_INSTALLED undefined / empty test_begin_subtest "Verify signature on PKCS#7 SignedData message signer User ID" if [ $NOTMUCH_GMIME_X509_CERT_VALIDITY -ne 1 ]; then