diff options
| author | Daniel Kahn Gillmor <dkg@fifthhorseman.net> | 2017-12-08 01:23:53 -0500 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2017-12-08 08:07:53 -0400 |
| commit | e4890b5bf9e2260b36bcc36ddb77d8e97e2abe7d (patch) | |
| tree | 83c71b87a02c656aee698a5e10700a4ff6e12419 /lib | |
| parent | 798aa789b5d117cf11697bc97dd982bd5a2c2ac8 (diff) | |
crypto: new decryption policy "auto"
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.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/index.cc | 3 | ||||
| -rw-r--r-- | lib/indexopts.c | 13 | ||||
| -rw-r--r-- | lib/notmuch.h | 1 |
3 files changed, 11 insertions, 6 deletions
diff --git a/lib/index.cc b/lib/index.cc index 905366ae..af999bd3 100644 --- a/lib/index.cc +++ b/lib/index.cc @@ -548,7 +548,8 @@ _index_encrypted_mime_part (notmuch_message_t *message, } } #endif - clear = _notmuch_crypto_decrypt (message, crypto_ctx, encrypted_data, NULL, &err); + clear = _notmuch_crypto_decrypt (notmuch_indexopts_get_decrypt_policy (indexopts), + message, crypto_ctx, encrypted_data, NULL, &err); if (err) { _notmuch_database_log (notmuch, "Failed to decrypt during indexing. (%d:%d) [%s]\n", err->domain, err->code, err->message); diff --git a/lib/indexopts.c b/lib/indexopts.c index 78f53391..a04d1c1c 100644 --- a/lib/indexopts.c +++ b/lib/indexopts.c @@ -33,11 +33,14 @@ notmuch_database_get_default_indexopts (notmuch_database_t *db) if (err) return ret; - if (decrypt_policy && - ((!(strcasecmp(decrypt_policy, "true"))) || - (!(strcasecmp(decrypt_policy, "yes"))) || - (!(strcasecmp(decrypt_policy, "1"))))) - notmuch_indexopts_set_decrypt_policy (ret, NOTMUCH_DECRYPT_TRUE); + if (decrypt_policy) { + if ((!(strcasecmp(decrypt_policy, "true"))) || + (!(strcasecmp(decrypt_policy, "yes"))) || + (!(strcasecmp(decrypt_policy, "1")))) + notmuch_indexopts_set_decrypt_policy (ret, NOTMUCH_DECRYPT_TRUE); + else if (!strcasecmp(decrypt_policy, "auto")) + notmuch_indexopts_set_decrypt_policy (ret, NOTMUCH_DECRYPT_AUTO); + } free (decrypt_policy); return ret; diff --git a/lib/notmuch.h b/lib/notmuch.h index 47633496..ff860e06 100644 --- a/lib/notmuch.h +++ b/lib/notmuch.h @@ -2241,6 +2241,7 @@ notmuch_database_get_default_indexopts (notmuch_database_t *db); typedef enum { NOTMUCH_DECRYPT_FALSE, NOTMUCH_DECRYPT_TRUE, + NOTMUCH_DECRYPT_AUTO, } notmuch_decryption_policy_t; /** |
