X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=test%2FT356-protected-headers.sh;h=4af018f30dc89620801dc88cff28172e7ae69937;hb=b23902a61158ecdbca2d9d96c6eaf509d6e3d205;hp=fee3b043d5143a2af88660f30a917e2cc6781f2d;hpb=5c3a44681f2fffbd3a7d76e424c134a82470ddd2;p=notmuch diff --git a/test/T356-protected-headers.sh b/test/T356-protected-headers.sh index fee3b043..4af018f3 100755 --- a/test/T356-protected-headers.sh +++ b/test/T356-protected-headers.sh @@ -99,4 +99,41 @@ output=$(notmuch search --format=json 'id:protected-header@crypto.notmuchmail.or test_json_nodes <<<"$output" \ 'subject:[0]["subject"]="This is a protected header"' +test_begin_subtest "indexed protected subject is not visible in reply header" +output=$(notmuch reply --format=json 'id:protected-header@crypto.notmuchmail.org') +test_json_nodes <<<"$output" \ + 'subject:["original"]["headers"]["Subject"]="This is a protected header"' \ + 'reply-subject:["reply-headers"]["Subject"]="Re: Subject Unavailable"' + +test_begin_subtest "verify correct protected header when submessage exists" +output=$(notmuch show --decrypt=true --format=json id:encrypted-message-with-forwarded-attachment@crypto.notmuchmail.org) +test_json_nodes <<<"$output" \ + 'crypto:[0][0][0]["crypto"]={"decrypted": {"status": "full", "header-mask": {"Subject": "Subject Unavailable"}}}' \ + 'subject:[0][0][0]["headers"]["Subject"]="This is the cryptographic envelope subject"' + +test_begin_subtest "verify protected header is both signed and encrypted" +output=$(notmuch show --decrypt=true --format=json id:encrypted-signed@crypto.notmuchmail.org) +test_json_nodes <<<"$output" \ + 'crypto:[0][0][0]["crypto"]={ + "signed":{"status": [{"status": "good", "fingerprint": "'$FINGERPRINT'", "userid": "'"$SELF_USERID"'", "created": 1525812676}], + "encrypted": true, "headers": ["Subject"]},"decrypted": {"status": "full", "header-mask": {"Subject": "Subject Unavailable"}}}' \ + 'subject:[0][0][0]["headers"]["Subject"]="Rhinoceros dinner"' + +test_begin_subtest "verify protected header is signed even when not masked" +output=$(notmuch show --decrypt=true --format=json id:encrypted-signed-not-masked@crypto.notmuchmail.org) +test_json_nodes <<<"$output" \ + 'crypto:[0][0][0]["crypto"]={ + "signed":{"status": [{"status": "good", "fingerprint": "'$FINGERPRINT'", "userid": "'"$SELF_USERID"'", "created": 1525812676}], + "encrypted": true, "headers": ["Subject"]},"decrypted": {"status": "full"}}' \ + 'subject:[0][0][0]["headers"]["Subject"]="Rhinoceros dinner"' + +test_begin_subtest "reindex everything, ensure headers are as expected" +notmuch reindex --decrypt=true from:test_suite@notmuchmail.org +output=$(notmuch search --output=messages 'subject:"protected header" or subject:"Rhinoceros" or subject:"draft-melnikov-smime-header-signing" or subject:"valid"' | sort) +test_expect_equal "$output" 'id:encrypted-signed-not-masked@crypto.notmuchmail.org +id:encrypted-signed@crypto.notmuchmail.org +id:nested-rfc822-message@crypto.notmuchmail.org +id:protected-header@crypto.notmuchmail.org +id:subjectless-protected-header@crypto.notmuchmail.org' + test_done