<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/lib, branch debian/0.26_rc0-1</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=debian%2F0.26_rc0-1</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=debian%2F0.26_rc0-1'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2017-12-28T14:05:55Z</updated>
<entry>
<title>Revert "lib: add thread subqueries."</title>
<updated>2017-12-28T14:05:55Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2017-12-28T14:05:55Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=b09025bce2b795f3d49b92cb3dac437b92831321'/>
<id>urn:sha1:b09025bce2b795f3d49b92cb3dac437b92831321</id>
<content type='text'>
This reverts commit 4f5bbaf7e2cecfe5022ba4b28915cccfb7ccb12d.
</content>
</entry>
<entry>
<title>lib: add thread subqueries.</title>
<updated>2017-12-26T00:40:28Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2017-08-20T21:32:40Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=4f5bbaf7e2cecfe5022ba4b28915cccfb7ccb12d'/>
<id>urn:sha1:4f5bbaf7e2cecfe5022ba4b28915cccfb7ccb12d</id>
<content type='text'>
This change allows queries of the form

 thread:{from:me} and thread:{from:jian} and not thread:{from:dave}

This is still somewhat brute-force, but it's a big improvement over
both the shell script solution and the previous proposal [1], because it
does not build the whole thread structure just generate a
query. A further potential optimization is to replace the calls to
notmuch with more specialized Xapian code; in particular it's not
likely that reading all of the message metadata is a win here.

[1]: id:20170820213240.20526-1-david@tethera.net
</content>
</entry>
<entry>
<title>lib: return "" rather than NULL from notmuch_thread_get_authors</title>
<updated>2017-12-21T13:22:30Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2017-12-15T02:29:57Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=7cfa1c69610bcf15fb47868131d3d9102f899225'/>
<id>urn:sha1:7cfa1c69610bcf15fb47868131d3d9102f899225</id>
<content type='text'>
The current behaviour is at best under-documented. The modified test in
T470-missing-headers.sh previously relied on printf doing the right
thing with NULL, which seems icky.

The use of talloc_strdup here is probably overkill, but it avoids
having to enforce that thread-&gt;authors is never mutated outside
_resolve_thread_authors_string.
</content>
</entry>
<entry>
<title>crypto: add --decrypt=nostash to avoid stashing session keys</title>
<updated>2017-12-08T12:08:47Z</updated>
<author>
<name>Daniel Kahn Gillmor</name>
<email>dkg@fifthhorseman.net</email>
</author>
<published>2017-12-08T06:24:02Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=fccebbaeef1e4b6489425afb13f419543d53d285'/>
<id>urn:sha1:fccebbaeef1e4b6489425afb13f419543d53d285</id>
<content type='text'>
Here's the configuration choice for people who want a cleartext index,
but don't want stashed session keys.

Interestingly, this "nostash" decryption policy is actually the same
policy that should be used by "notmuch show" and "notmuch reply",
since they never modify the index or database when they are invoked
with --decrypt.

We take advantage of this parallel to tune the behavior of those
programs so that we're not requesting session keys from GnuPG during
"show" and "reply" that we would then otherwise just throw away.
</content>
</entry>
<entry>
<title>crypto: actually stash session keys when decrypt=true</title>
<updated>2017-12-08T12:08:47Z</updated>
<author>
<name>Daniel Kahn Gillmor</name>
<email>dkg@fifthhorseman.net</email>
</author>
<published>2017-12-08T06:24:01Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=29648a137c5807135ab168917b4a51d5e19e51c2'/>
<id>urn:sha1:29648a137c5807135ab168917b4a51d5e19e51c2</id>
<content type='text'>
If you're going to store the cleartext index of an encrypted message,
in most situations you might just as well store the session key.
Doing this storage has efficiency and recoverability advantages.

Combined with a schedule of regular OpenPGP subkey rotation and
destruction, this can also offer security benefits, like "deletable
e-mail", which is the store-and-forward analog to "forward secrecy".

But wait, i hear you saying, i have a special need to store cleartext
indexes but it's really bad for me to store session keys!  Maybe
(let's imagine) i get lots of e-mails with incriminating photos
attached, and i want to be able to search for them by the text in the
e-mail, but i don't want someone with access to the index to be
actually able to see the photos themselves.

Fret not, the next patch in this series will support your wacky
uncommon use case.
</content>
</entry>
<entry>
<title>cli/reindex: destroy stashed session keys when --decrypt=false</title>
<updated>2017-12-08T12:08:47Z</updated>
<author>
<name>Daniel Kahn Gillmor</name>
<email>dkg@fifthhorseman.net</email>
</author>
<published>2017-12-08T06:24:00Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=6a9626a2fdddf6115bcf97982fd10053bf48e942'/>
<id>urn:sha1:6a9626a2fdddf6115bcf97982fd10053bf48e942</id>
<content type='text'>
There are some situations where the user wants to get rid of the
cleartext index of a message.  For example, if they're indexing
encrypted messages normally, but suddenly they run across a message
that they really don't want any trace of in their index.

In that case, the natural thing to do is:

   notmuch reindex --decrypt=false id:whatever@example.biz

But of course, clearing the cleartext index without clearing the
stashed session key is just silly.  So we do the expected thing and
also destroy any stashed session keys while we're destroying the index
of the cleartext.

Note that stashed session keys are stored in the xapian database, but
xapian does not currently allow safe deletion (see
https://trac.xapian.org/ticket/742).

As a workaround, after removing session keys and cleartext material
from the database, the user probably should do something like "notmuch
compact" to try to purge whatever recoverable data is left in the
xapian freelist.  This problem really needs to be addressed within
xapian, though, if we want it fixed right.
</content>
</entry>
<entry>
<title>cli/new, insert, reindex: change index.decrypt to "auto" by default</title>
<updated>2017-12-08T12:08:46Z</updated>
<author>
<name>Daniel Kahn Gillmor</name>
<email>dkg@fifthhorseman.net</email>
</author>
<published>2017-12-08T06:23:59Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=076f86025d519522cde5787def6c03fc308e8ebc'/>
<id>urn:sha1:076f86025d519522cde5787def6c03fc308e8ebc</id>
<content type='text'>
The new "auto" decryption policy is not only good for "notmuch show"
and "notmuch reindex".  It's also useful for indexing messages --
there's no good reason to not try to go ahead and index the cleartext
of a message that we have a stashed session key for.

This change updates the defaults and tunes the test suite to make sure
that they have taken effect.
</content>
</entry>
<entry>
<title>crypto: record whether an actual decryption attempt happened</title>
<updated>2017-12-08T12:08:46Z</updated>
<author>
<name>Daniel Kahn Gillmor</name>
<email>dkg@fifthhorseman.net</email>
</author>
<published>2017-12-08T06:23:58Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d137170b23f8ccd9f967445e101d6f694df1cad4'/>
<id>urn:sha1:d137170b23f8ccd9f967445e101d6f694df1cad4</id>
<content type='text'>
In our consolidation of _notmuch_crypto_decrypt, the callers lost
track a little bit of whether any actual decryption was attempted.

Now that we have the more-subtle "auto" policy, it's possible that
_notmuch_crypto_decrypt could be called without having any actual
decryption take place.

This change lets the callers be a little bit smarter about whether or
not any decryption was actually attempted.
</content>
</entry>
<entry>
<title>crypto: new decryption policy "auto"</title>
<updated>2017-12-08T12:07:53Z</updated>
<author>
<name>Daniel Kahn Gillmor</name>
<email>dkg@fifthhorseman.net</email>
</author>
<published>2017-12-08T06:23:53Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e4890b5bf9e2260b36bcc36ddb77d8e97e2abe7d'/>
<id>urn:sha1:e4890b5bf9e2260b36bcc36ddb77d8e97e2abe7d</id>
<content type='text'>
This new automatic decryption policy should make it possible to
decrypt messages that we have stashed session keys for, without
incurring a call to the user's asymmetric keys.
</content>
</entry>
<entry>
<title>lib: convert notmuch decryption policy to an enum</title>
<updated>2017-12-08T12:07:02Z</updated>
<author>
<name>Daniel Kahn Gillmor</name>
<email>dkg@fifthhorseman.net</email>
</author>
<published>2017-12-08T06:23:52Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=798aa789b5d117cf11697bc97dd982bd5a2c2ac8'/>
<id>urn:sha1:798aa789b5d117cf11697bc97dd982bd5a2c2ac8</id>
<content type='text'>
Future patches in this series will introduce new policies; this merely
readies the way for them.

We also convert --try-decrypt to a keyword argument instead of a boolean.
</content>
</entry>
</feed>
