mutt stable branch with some hacks
at jcs 57 lines 2.1 kB view raw
1This is an implementation of Autocrypt Level 1.1. <https://autocrypt.org/> 2 3 4Still Todo 5========== 6* Setup message creation 7* Setup message import 8 These can both be added to the account menu, and perhaps the first-run too. 9 10 11Developer Notes 12=============== 13 14* header->security | AUTOCRYPT 15 16 During message composition, AUTOCRYPT is mutually exclusive from 17 ENCRYPT and SIGN. The former means that autocrypt will sign and 18 encrypt the email upon send, the latter means the normal keyring 19 will do so. 20 21 We keep these separate so that autocrypt can detect the normal 22 keyring has been turned on (manually, or by oppenc or something) and 23 disable itself. 24 25 Outside message composition the flags are not exclusive. We can't 26 tell a message is an autocrypt message until we try to decrypt it. 27 Once we do so, the flag is added to the existing flags. The only 28 relevance for decrypted messages is when replying - in which case 29 we want to force using autocrypt in the reply. 30 31* header->security | AUTOCRYPT_OVERRIDE 32 33 I was loathe to use another bit for this, but unlike OPPENCRYPT, 34 AUTOCRYPT means the message *will* be encrypted, not that the option 35 is on. 36 37 We need a way to distinguish between the user manually enabling 38 autocrypt and the recommendation engine doing so. If this is not 39 set, the engine can turn AUTOCRYPT back off when the recipients 40 change. But if the user manually set it, we don't want to do that. 41 42* mutt_autocrypt_init() 43 44 All public functions (in autocrypt.h) should call this function to 45 make sure everything is set up. Nothing prevents the user from manually 46 flipping the option at runtime, but in that case the directory and such 47 may not even exist. 48 49 Right now, I only allow "first run" initialization during startup. 50 Not all calls are interactive, and we don't want to prompt the user 51 while opening a mailbox, for instance. 52 53* Database schema version 54 55 There is a "schema" table in the database, which records database 56 version. Any changes to the database should bump the schema version 57 by adding a call in mutt_autocrypt_schema_update().