From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id aOdwCNrfVWIvtAAAgWs5BA (envelope-from ) for ; Tue, 12 Apr 2022 22:23:54 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id +NAIAdrfVWILugAAG6o9tA (envelope-from ) for ; Tue, 12 Apr 2022 22:23:54 +0200 Received: from mail.notmuchmail.org (yantan.tethera.net [IPv6:2a01:4f9:c011:7a79::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id A362C323F2 for ; Tue, 12 Apr 2022 22:23:53 +0200 (CEST) Received: from yantan.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id 3819A5F711; Tue, 12 Apr 2022 20:16:02 +0000 (UTC) Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) by mail.notmuchmail.org (Postfix) with ESMTPS id F3E655F5E3 for ; Tue, 12 Apr 2022 20:15:59 +0000 (UTC) Received: by mail-ej1-x630.google.com with SMTP id u15so20890611ejf.11 for ; Tue, 12 Apr 2022 13:15:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wBVfkTEJxcOIaoMkO8PLK6HSS1jeMy2Tx/FhTRRrg0U=; b=D/gZ+aV0hR5yLmtiF+uEA4STEPUnTnw6BoMMAQz+nFqVlxW9UrGWAPHAKQ5XkQtt0C eUUTBjFoVHPE662ytqyQATcTyu1lFKAtWuH1fxJAGZXeej0FiwsitryCB/8mK5QMrHNL SXAFFY+QokoLisK5pKLfzTYndg0cxpvPmV6bmArQtP8UzVHSyJWbfEA3B04KRF1fVkkY x7sLYuadiBmps46jvkw8hcHAYPgHNIIJ4ejskgg6bsT5MDXXh24i5an9raJP6J+BlLJ1 20YJbO6rCozwI9TtXp5eE7WGSapRG4IaENr0Nncc2qeGfSA2fZPa2WtcgwTte1RwcE0M IVFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=wBVfkTEJxcOIaoMkO8PLK6HSS1jeMy2Tx/FhTRRrg0U=; b=ynkk8cXTHrcRQhaCaDw1P8oCdstAx3FaPBjS5jzmnCXvkntHwkxqQkXcdgqdVTfvK+ ETP53aZ5odlaRZxw7xqyP3bYbcMaaHn3sBmqAb8asvAGD93ZCYM6XuSCRc7TpI4dmUrW DJ5sYqSm5+p5M9kwwjEMUFU4lL1rHgtHQzc6eqmWV9+lv9seLIXMIzGD/Hj4wv+8Gp6k /HYZlFi2Qb79vS0bexeVT8qN5kFC6ZpfapoFRjN8pcGr9TbS4jrsSwXQohYCV8cQsaqM 0aPvp1uNngR1abKPWO03+jjTN7h79k3c0pQs8+j2YK3i2Xsrc58it5S/8mrRJRlj+f5P BMgQ== X-Gm-Message-State: AOAM532QbZrNNdsK8MmfRaBxOMeXhZKWPYbkOf0nJ8oQtAuGN2vu1lm+ uaw9Nu7ZX4nCf+3lgIbt0Nzz9MAFZXM= X-Google-Smtp-Source: ABdhPJyS8n3C4liwXU2r9y/kEMoNZABAN0iVrEQ0d0VZrhcctEiNyjtAtM5FEoF4fcWPlWmdng8E7w== X-Received: by 2002:a17:907:2ce5:b0:6e8:71a7:5099 with SMTP id hz5-20020a1709072ce500b006e871a75099mr15650220ejc.264.1649794558655; Tue, 12 Apr 2022 13:15:58 -0700 (PDT) Received: from localhost ([2001:9e8:6a73:1400:5743:a9b6:ea61:6dc6]) by smtp.gmail.com with ESMTPSA id r16-20020a056402019000b00418ed60c332sm187088edv.65.2022.04.12.13.15.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 13:15:57 -0700 (PDT) Sender: Michael J Gruber From: michaeljgruber+grubix+git@gmail.com To: notmuch@notmuchmail.org Subject: [PATCH v2 2/2] test/smime: fix signature verification test with newer gmime. Date: Tue, 12 Apr 2022 22:15:56 +0200 Message-Id: <458b1d99c3d868d4c1659b29d0aa4474aff215c1.1649781229.git.git@grubix.eu> X-Mailer: git-send-email 2.36.0.rc0.457.gf4fc0d8e4e In-Reply-To: <87mtgrmgll.fsf@fifthhorseman.net> References: <87mtgrmgll.fsf@fifthhorseman.net> MIME-Version: 1.0 Message-ID-Hash: OCBOQUOW4UEBGWDXLV4HUTPTFICDBFHD X-Message-ID-Hash: OCBOQUOW4UEBGWDXLV4HUTPTFICDBFHD X-MailFrom: michaeljgruber+grubix+git@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-notmuch.notmuchmail.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Daniel Kahn Gillmor , Michael J Gruber X-Mailman-Version: 3.3.3 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: DE ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1649795033; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-owner:list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=zHIUjjiIqsNXAOLqeH5xDN2sI3NC3hBM3HSLhtOMVao=; b=l7Xo/WoLG054VAut8gWbbn/3q/D5Fxr7m5h95dGC2HGg9eG7L14gLUjzBTe3iB5nP8jo5I ImFfxWI1jxceR4aGvgO0jNmfCn4sAuWuxyd7eynSdtw7POw9hQ6/thGAS/JKC1HI7oB7hn o9VYRVPzggDdakfCwT9K06V1U2NWfab8Ef1pA35fpj/RSKxxhBKdXX/+beHq3x8LcDHsr4 2FGPovDi21qZMJSsN1Hvo+wMNGEduNFAKr6orXswysX6f3rcKlj+rPKacxWlg3DZMum+DP bSNIqczN90pmhlfPVABzCWp1SErzqHLIuzoJH0vT8eoTRuq/oT9uw0TbqHuV7g== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1649795033; a=rsa-sha256; cv=none; b=IhuPJh3iL0Q7CcIlYjkjX5t5zk3tsN39nXuouV49smgOvTaiicKX/zNp3GF/xvx0npofe5 q9yw1mRt9MOy1h2XmFu5O2VZcbciPB+VCap1HHM95X4Lp4aBXJzuDKZ0NE1h56l/EaF70k eWpTCE+POsduIaI9Z7SoT9yyT4dwzmVJ+v41peH/Vf/TsyMMdvrrvM19i44/V8LHiYFHh6 ktt3g1R5PYqsM5I/ses5SZ4XQlw96cHa87FuGqt8hc9ai16OpIhqBce42bDQWbGA2Yt0YK MG84L24Emah11tLCsWBrz5vsY6lg1pCDujiifdJ0l1EDpGpbzvw9FVLJM1vk0A== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=gmail.com header.s=20210112 header.b="D/gZ+aV0"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2a01:4f9:c011:7a79::1 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Spam-Score: 5.94 Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=gmail.com header.s=20210112 header.b="D/gZ+aV0"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2a01:4f9:c011:7a79::1 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Queue-Id: A362C323F2 X-Spam-Score: 5.94 X-Migadu-Scanner: scn0.migadu.com X-TUID: kqeYsMwjJxUc From: David Bremner 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 Signed-off-by: Michael J Gruber --- Here is what I meant with my comments: We have everything in place to adjust the expected test output to the detected gmime behaviour. This also takes into account dkg's remarks on the variable names. [And yes, I have list bounces again, please forgive my mess and multiple subscriptions to work around it.] configure | 17 +++++++++++++++++ test/T355-smime.sh | 11 +++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/configure b/configure index d6e1200e..056f9232 100755 --- a/configure +++ b/configure @@ -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} diff --git a/test/T355-smime.sh b/test/T355-smime.sh index 31fa4b4e..b15169b7 100755 --- a/test/T355-smime.sh +++ b/test/T355-smime.sh @@ -35,6 +35,13 @@ EOF test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "signature verification (notmuch CLI)" +if [ $NOTMUCH_GMIME_EMITS_ANGLE_BRACKETS == 1 ]; then + LEFT_ANGLE='<' + RIGHT_ANGLE='>' +else + LEFT_ANGLE='' + RIGHT_ANGLE='' +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 +53,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": "", "expires": 424242424, "created": 946728000}]}}, + "crypto": {"signed": {"status": [{"fingerprint": "'$FINGERPRINT'", "status": "good","userid": "CN=Notmuch Test Suite", "email": "'$LEFT_ANGLE'test_suite@notmuchmail.org'$RIGHT_ANGLE'", "expires": 424242424, "created": 946728000}]}}, "headers": {"Subject": "test signed message 001", "From": "Notmuch Test Suite ", "To": "test_suite@notmuchmail.org", @@ -55,7 +62,7 @@ expected='[[[{"id": "XXXXX", "sigstatus": [{"fingerprint": "'$FINGERPRINT'", "status": "good", "userid": "CN=Notmuch Test Suite", - "email": "", + "email": "'$LEFT_ANGLE'test_suite@notmuchmail.org'$RIGHT_ANGLE'", "expires": 424242424, "created": 946728000}], "content-type": "multipart/signed", -- 2.36.0.rc0.457.gf4fc0d8e4e