unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [PATCH 01/10] reorganize indexing of multipart/signed and multipart/encrypted
@ 2017-09-12 23:01 Daniel Kahn Gillmor
  2017-09-12 23:01 ` [PATCH 02/10] crypto: Move crypto.c into libutil Daniel Kahn Gillmor
                   ` (8 more replies)
  0 siblings, 9 replies; 67+ messages in thread
From: Daniel Kahn Gillmor @ 2017-09-12 23:01 UTC (permalink / raw)
  To: Notmuch Mail

This makes no functional changes, but prepares the codebase for a
cleaner changeset for dealing with indexing some encrypted messages in
the clear.
---
 lib/index.cc | 42 ++++++++++++++++++++++--------------------
 1 file changed, 22 insertions(+), 20 deletions(-)

diff --git a/lib/index.cc b/lib/index.cc
index 2b98b588..3ed3b2c6 100644
--- a/lib/index.cc
+++ b/lib/index.cc
@@ -384,27 +384,29 @@ _index_mime_part (notmuch_message_t *message,
 	GMimeMultipart *multipart = GMIME_MULTIPART (part);
 	int i;
 
-	if (GMIME_IS_MULTIPART_SIGNED (multipart))
-	  _notmuch_message_add_term (message, "tag", "signed");
-
-	if (GMIME_IS_MULTIPART_ENCRYPTED (multipart))
-	  _notmuch_message_add_term (message, "tag", "encrypted");
-
-	for (i = 0; i < g_mime_multipart_get_count (multipart); i++) {
-	    if (GMIME_IS_MULTIPART_SIGNED (multipart)) {
-		/* Don't index the signature. */
-		if (i == 1)
-		    continue;
-		if (i > 1)
-		    _notmuch_database_log (_notmuch_message_database (message),
-					  "Warning: Unexpected extra parts of multipart/signed. Indexing anyway.\n");
-	    }
-	    if (GMIME_IS_MULTIPART_ENCRYPTED (multipart)) {
-		/* Don't index encrypted parts. */
-		continue;
-	    }
+	if (GMIME_IS_MULTIPART_SIGNED (multipart)) {
+	    _notmuch_message_add_term (message, "tag", "signed");
+	    /* FIXME: should we try to validate the signature? */
+	    
+	    /* FIXME: is it always just the first part that is signed
+	     in all multipart/signed messages? it is for
+	     application/pgp-signature and
+	     application/pkcs7-signature, which is all gmime can
+	     handle anyway. */
 	    _index_mime_part (message,
-			      g_mime_multipart_get_part (multipart, i));
+			      g_mime_multipart_get_part (multipart, 0));
+	    
+	    if (g_mime_multipart_get_count (multipart) > 2)
+		_notmuch_database_log (_notmuch_message_database (message),
+				       "Warning: Unexpected extra parts of multipart/signed. Indexing anyway.\n");
+	} else if (GMIME_IS_MULTIPART_ENCRYPTED (multipart)) {
+	    /* Don't index encrypted parts */
+	    _notmuch_message_add_term (message, "tag", "encrypted");
+	} else {
+	    for (i = 0; i < g_mime_multipart_get_count (multipart); i++) {
+		_index_mime_part (message,
+				  g_mime_multipart_get_part (multipart, i));
+	    }
 	}
 	return;
     }
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 67+ messages in thread

end of thread, other threads:[~2017-10-15  6:48 UTC | newest]

Thread overview: 67+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-12 23:01 [PATCH 01/10] reorganize indexing of multipart/signed and multipart/encrypted Daniel Kahn Gillmor
2017-09-12 23:01 ` [PATCH 02/10] crypto: Move crypto.c into libutil Daniel Kahn Gillmor
2017-09-12 23:01 ` [PATCH 03/10] crypto: make shared crypto code behave library-like Daniel Kahn Gillmor
2017-09-12 23:01 ` [PATCH 04/10] tests: prepare for more crypto tests (using add_gnupg_home) Daniel Kahn Gillmor
2017-09-12 23:01 ` [PATCH 05/10] index: implement notmuch_indexopts_t with try_decrypt Daniel Kahn Gillmor
2017-09-12 23:01 ` [PATCH 06/10] crypto: index encrypted parts when indexopts try_decrypt is set Daniel Kahn Gillmor
2017-09-12 23:01 ` [PATCH 07/10] Define new config option index.try_decrypt Daniel Kahn Gillmor
2017-09-12 23:29   ` Daniel Kahn Gillmor
2017-09-12 23:01 ` [PATCH 08/10] add --try-decrypt=(true|false) to notmuch new Daniel Kahn Gillmor
2017-09-12 23:01 ` [PATCH 09/10] add --try-decrypt=(true|false) to notmuch insert Daniel Kahn Gillmor
2017-09-12 23:01 ` [PATCH 10/10] add --try-decrypt=(true|false) to notmuch reindex Daniel Kahn Gillmor
2017-09-15  5:53   ` cleartext-indexing Daniel Kahn Gillmor
2017-09-15  5:53     ` [PATCH v2 01/10] crypto: Move crypto.c into libutil Daniel Kahn Gillmor
2017-09-23 15:23       ` Jani Nikula
2017-09-15  5:53     ` [PATCH v2 02/10] crypto: make shared crypto code behave library-like Daniel Kahn Gillmor
2017-09-23 15:36       ` Jani Nikula
2017-10-10  3:33         ` Daniel Kahn Gillmor
2017-09-15  5:53     ` [PATCH v2 03/10] tests: prepare for more crypto tests (using add_gnupg_home) Daniel Kahn Gillmor
2017-09-23 15:38       ` Jani Nikula
2017-09-15  5:53     ` [PATCH v2 04/10] index: implement notmuch_indexopts_t with try_decrypt Daniel Kahn Gillmor
2017-09-23 16:10       ` Jani Nikula
2017-10-10  3:45         ` Daniel Kahn Gillmor
2017-10-14 12:40           ` Jani Nikula
2017-09-15  5:53     ` [PATCH v2 05/10] crypto: index encrypted parts when indexopts try_decrypt is set Daniel Kahn Gillmor
2017-09-23 16:05       ` Jani Nikula
2017-10-10  4:27         ` Daniel Kahn Gillmor
2017-09-15  5:53     ` [PATCH v2 06/10] config: indexing defaults will be stored in the database Daniel Kahn Gillmor
2017-09-15  5:53     ` [PATCH v2 07/10] config: define new option index.try_decrypt Daniel Kahn Gillmor
2017-09-23 16:17       ` Jani Nikula
2017-09-15  5:53     ` [PATCH v2 08/10] cli/new: add --try-decrypt=(true|false) Daniel Kahn Gillmor
2017-09-23 16:46       ` Jani Nikula
2017-09-15  5:53     ` [PATCH v2 09/10] cli/insert: " Daniel Kahn Gillmor
2017-09-15  5:53     ` [PATCH v2 10/10] cli/reindex: " Daniel Kahn Gillmor
2017-10-10  5:49     ` cleartext indexing, round 3 Daniel Kahn Gillmor
2017-10-10  5:49       ` [PATCH v3 01/15] crypto: rename notmuch_crypto_t to _notmuch_crypto_t Daniel Kahn Gillmor
2017-10-10  5:49       ` [PATCH v3 02/15] crypto: drop pretense of notmuch_crypto_context_t Daniel Kahn Gillmor
2017-10-10  5:49       ` [PATCH v3 03/15] crypto: _notmuch_crypto_cleanup should return void Daniel Kahn Gillmor
2017-10-10  5:49       ` [PATCH v3 04/15] crypto: move into libutil Daniel Kahn Gillmor
2017-10-12 10:54         ` David Bremner
2017-10-12 14:07           ` Daniel Kahn Gillmor
2017-10-12 21:07             ` David Bremner
2017-10-10  5:49       ` [PATCH v3 05/15] gmime-extra: remove duplicate GMimeAddressType typedef Daniel Kahn Gillmor
2017-10-10  5:49       ` [PATCH v3 06/15] crypto: make shared crypto code behave library-like Daniel Kahn Gillmor
2017-10-10  5:49       ` [PATCH v3 07/15] tests: prepare for more crypto tests (using add_gnupg_home) Daniel Kahn Gillmor
2017-10-10  5:49       ` [PATCH v3 08/15] index: implement notmuch_indexopts_t with try_decrypt Daniel Kahn Gillmor
2017-10-11  0:29         ` avoid double typedef Daniel Kahn Gillmor
2017-10-11  0:30           ` [PATCH v4 08/15] index: implement notmuch_indexopts_t with try_decrypt Daniel Kahn Gillmor
2017-10-12 11:18             ` David Bremner
2017-10-12 14:30               ` Daniel Kahn Gillmor
2017-10-11  6:22           ` avoid double typedef Tomi Ollila
2017-10-10  5:49       ` [PATCH v3 09/15] gmime-extra: drop compat layer for g_mime_multipart_encrypted_decrypt Daniel Kahn Gillmor
2017-10-14 14:02         ` David Bremner
2017-10-10  5:49       ` [PATCH v3 10/15] crypto: index encrypted parts when indexopts try_decrypt is set Daniel Kahn Gillmor
2017-10-13  1:08         ` David Bremner
2017-10-13 14:35           ` Daniel Kahn Gillmor
2017-10-13 15:19             ` David Bremner
2017-10-14 11:15             ` David Bremner
2017-10-10  5:49       ` [PATCH v3 11/15] config: indexing defaults will be stored in the database Daniel Kahn Gillmor
2017-10-14 18:08         ` David Bremner
2017-10-15  6:28           ` Daniel Kahn Gillmor
2017-10-10  5:49       ` [PATCH v3 12/15] config: define new option index.try_decrypt Daniel Kahn Gillmor
2017-10-10  5:49       ` [PATCH v3 13/15] cli/new: add --try-decrypt=(true|false) Daniel Kahn Gillmor
2017-10-10  5:49       ` [PATCH v3 14/15] cli/insert: " Daniel Kahn Gillmor
2017-10-10  5:49       ` [PATCH v3 15/15] cli/reindex: " Daniel Kahn Gillmor
2017-10-10 15:50       ` cleartext indexing, round 3 Jameson Graef Rollins
2017-10-10 16:47         ` Daniel Kahn Gillmor
2017-10-13  1:28       ` David Bremner

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).