mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 01:14:53 +01:00
test/smime: fix signature verification test with newer gmime.
The extra machinery to check for the actual output format is justified by the possibility that distros may patch this newer output format into older versions of gmime. Amended-by: Michael J Gruber <git@grubix.eu> Signed-off-by: Michael J Gruber <git@grubix.eu> Amended-again-by: db
This commit is contained in:
parent
7228fe688c
commit
8723e707c1
2 changed files with 24 additions and 2 deletions
17
configure
vendored
17
configure
vendored
|
@ -588,6 +588,11 @@ int main () {
|
|||
#ifdef CHECK_VALIDITY
|
||||
validity = g_mime_certificate_get_id_validity (cert);
|
||||
if (validity != GMIME_VALIDITY_FULL) return !! fprintf (stderr, "Got validity %d, expected %d\n", validity, GMIME_VALIDITY_FULL);
|
||||
#endif
|
||||
#ifdef CHECK_EMAIL
|
||||
const char *email = g_mime_certificate_get_email (cert);
|
||||
if (! email) return !! fprintf (stderr, "no email returned");
|
||||
if (email[0] == '<') return 2;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
@ -622,6 +627,15 @@ EOF
|
|||
errors=$((errors + 1))
|
||||
fi
|
||||
fi
|
||||
printf "Checking whether GMime emits email addresses with angle brackets... "
|
||||
if ${CC} -DCHECK_EMAIL ${CFLAGS} ${gmime_cflags} _check_gmime_cert.c ${gmime_ldflags} -o _check_email &&
|
||||
GNUPGHOME=${TEMP_GPG} ./_check_email; then
|
||||
gmime_emits_angle_brackets=0
|
||||
printf "No.\n"
|
||||
else
|
||||
gmime_emits_angle_brackets=1
|
||||
printf "Yes.\n"
|
||||
fi
|
||||
else
|
||||
printf 'No.\nFailed to set up gpgsm for testing X.509 certificate validity support.\n'
|
||||
errors=$((errors + 1))
|
||||
|
@ -1559,6 +1573,9 @@ NOTMUCH_HAVE_XAPIAN_DB_RETRY_LOCK=${WITH_RETRY_LOCK}
|
|||
# Whether GMime can verify X.509 certificate validity
|
||||
NOTMUCH_GMIME_X509_CERT_VALIDITY=${gmime_x509_cert_validity}
|
||||
|
||||
# Whether GMime emits addresses with angle brackets (with <>)
|
||||
NOTMUCH_GMIME_EMITS_ANGLE_BRACKETS=${gmime_emits_angle_brackets}
|
||||
|
||||
# Whether GMime can verify signatures when decrypting with a session key:
|
||||
NOTMUCH_GMIME_VERIFY_WITH_SESSION_KEY=${gmime_verify_with_session_key}
|
||||
|
||||
|
|
|
@ -35,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='<test_suite@notmuchmail.org>'
|
||||
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' \
|
||||
|
@ -46,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", "email": "<test_suite@notmuchmail.org>", "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 <test_suite@notmuchmail.org>",
|
||||
"To": "test_suite@notmuchmail.org",
|
||||
|
@ -55,7 +60,7 @@ expected='[[[{"id": "XXXXX",
|
|||
"sigstatus": [{"fingerprint": "'$FINGERPRINT'",
|
||||
"status": "good",
|
||||
"userid": "CN=Notmuch Test Suite",
|
||||
"email": "<test_suite@notmuchmail.org>",
|
||||
"email": "'$EXPECTED_EMAIL_ADDR'",
|
||||
"expires": 424242424,
|
||||
"created": 946728000}],
|
||||
"content-type": "multipart/signed",
|
||||
|
|
Loading…
Reference in a new issue