Re: [PATCH] emacs/smime: render decrypted MIME entities in notmuch-show

Subject: Re: [PATCH] emacs/smime: render decrypted MIME entities in notmuch-show

Date: Wed, 13 Apr 2022 20:56:27 -0300

To: Alexander Adolf, notmuch@notmuchmail.org

Cc: Daniel Kahn Gillmor, michaeljgruber+grubix+git@gmail.com

From: David Bremner


Alexander Adolf <alexander.adolf@condition-alpha.com> writes:

> Hello David,
>
> David Bremner <david@tethera.net> writes:
>
>> [...]
>> I'm not sure it's less effort, 
>> [...]
>
> Neither am I... ;-))
>
> It might perhaps seem easier to run the tests I have added to the
> attached, updated patch in your complete environment?
>
>   --alexander


It seems that it is mostly working, but there are a few issues to iron out.

The first is easy, I think. Since we added a message to the crypto
corpus, we need to adjust the tests. I think it is fine to just add
the new message to the failing test output, as in the diff below.

T357-index-decryption: Testing indexing decrypted mail
 FAIL   indexing message fails when secret key not available
	--- T357-index-decryption.31.expected	2022-04-13 23:15:02.258922959 +0000
	+++ T357-index-decryption.31.output	2022-04-13 23:15:02.258922959 +0000
	@@ -1,5 +1,6 @@
	 #= simple-encrypted@crypto.notmuchmail.org index.decryption=failure
	 #notmuch-dump batch-tag:3 config,properties,tags
	++encrypted +inbox +unread -- id:575ddaaf0b234fd85e077cfb4d44d467@notmuchmail.org
	 +encrypted +inbox +unread -- id:basic-encrypted@crypto.notmuchmail.org
	 +encrypted +inbox +unread -- id:encrypted-rfc822-attachment@crypto.notmuchmail.org
	 +encrypted +inbox +unread -- id:encrypted-signed@crypto.notmuchmail.org


T450-emacs-show: Testing emacs notmuch-show view
 BROKEN show encrypted rfc822 message
!!! Bodypart handler `notmuch-show-insert-part-*/*' threw an error:
!!! Symbol’s value as variable is void: gnus-newsgroup-charset
 FAIL   process cryptographic MIME parts (S/MIME)
	--- T450-emacs-show.21.notmuch-show-smime-encrypted-signed-multipart	2022-04-13 23:15:11.267167711 +0000
	+++ T450-emacs-show.21.OUTPUT	2022-04-13 23:15:11.267167711 +0000
	@@ -1,4 +1,4 @@
	-test_suite@notmuchmail.org (0 mins. ago) (encrypted inbox)
	+test_suite@notmuchmail.org (Yest. 14:57) (encrypted inbox)

If you set notmuch-show-relative-dates to to nil, something like, with
maybe better indentation:

-test_emacs '(let ((notmuch-crypto-process-mime t))
+test_emacs '(let ((notmuch-crypto-process-mime t)
+          (notmuch-show-relative-dates nil))

Then you will get an actual date that you can hard code.

	 Subject: notmuch-show S/MIME test
	 To: test_suite@notmuchmail.org
	 Date: Tue, 12 Apr 2022 16:57:30 +0200
	@@ -6,10 +6,10 @@
	 [ smime.p7m: application/pkcs7-mime ]
	 [ Decryption successful ]
	 [ multipart/signed ]
	-[ Good signature by: <test_suite@notmuchmail.org> ]
	+[ Good signature by: test_suite@notmuchmail.org ]

This is exactly the problem we just dealt with for T355-smime. I think
the same solution can be applied, but you will need to inline the output
so that you can do variable substitution.

	 [ multipart/mixed ]
	 [ multipart/mixed ]
	 [ text/plain ]
	 The password is "12345678". But don't tell anyone!
	-[ test.dtd: application/octet-stream ]
	+[ test.dtd: application/octet-stream (as application/xml-dtd) ]

This seems related to the function
#'notmuch-show-get-mime-type-of-application/octet-stream, which is
calling (mailcap-extension-to-mime "dtd"). Probably this is hard to make
reproducible, so just seding away an "(as ...)" string is a reasonable
alternative.

	 [ smime.p7s: application/pkcs7-signature ]



_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org

Thread: