Todo list, and bugs
===================

KNOWN BUGS:
O signed plain: a line beginning with "--" is transformed to "- --"
  This is not a bug; this is done by gpg. There is an option ib gpg to avoid this, but it should not be enabled for emails!
X When asked for a passphrase, if user enters a bad one, an alert panel is displayed, complaining about a SIGPIPE signal
  The alert panel can be dismissed without any fear; everything worked well though.
  Now exception is caught, and we display gpg error
- BCC users are never taken in account for encrypted files; their email address, thus PGP key, is not used for encryption
- (MacOS X Server 1.x only) GPGMail fails to decrypt twice in-a-row the same MIME message.
X It may happen that Mail.app/MailViewer.app displays PGP signatures using non-ASCII characters, but GPGMail never creates non-ASCII signatures/encrypted messages; this is a display problem.
  There was a problem with quoted-printable
- In some circumstances, GPGMail is unable to decrypt MIME messages if your secret keyring contains more than one key.
- (MacOS X Server 1.x only) App blocked during decryption. Happened only 1x. Bad passphrase? Maybe we should put a watchdog and enable "cancel" for decryption.
- Forwarded/Replied mail is encrypted; does not happen (MOXS) if user double-clicked on message.
X Broken pipe exception if gpg cannot find public key; also in some unknown other cases!!
  Exception is now caught, and gpg error is displayed.
X Customizing Compose toolbar: button state is not correct
- Passphrase panel: sometimes passphrase has not be forgotten and is redisplayed in panel. How to repeat?!
X On MOX, there's a message from Gordon I cannot verify (plain text)
  I didn't get MimePart data correctly; it was no longer quoted-printable => contained 8-bit characters
- Toolbar Items restoration: it may happen that order is not restored correctly: check stored indexes!
- Toolbar buttons are sometimes duplicated, when you have multiple viewers.
X Create a MIME (multipart/alternative) message from forward/reply AND no rich text; encrypting it resulted in an ill-formed message (is missing subparts headers)
  Seems there's a bug in Mail.app; see patch in -[Message(GPGMail) gpgEncryptWithIdentity:passphrase:recipients:signatureType:]
- If a message is signed and encrypted, and public key is not available, then decryption will fail. It should not!
X On MOX, with decrypted messages, user looses ability to click on hyperlinks (mailto, http, ...)
  Changed invoked method to reload textView
- On MOX, appearance of encrypted MIME message in mailbox changes after first decryption: before, user sees two attachments (with label), after he sees only one (without label). Maybe a cache problem?
X On MOX, some URLs in message, containing =, are not correctly rendered: tries to decode quoted-printable sequence!
  Corrected after I modified -[MimePart gpgBodyPart]...
X Compose window is not redrawn correctly when mail delivery fails
  Now we redraw in an async way (delayed)
(- Following mails in GPGMail.mbox are unverifiable/undecryptable: 6 (missing key), 22 (missing key), 37 (Mulberry mail with 2 sigs), 110, 111)
X Some weird behaviors: - decrypts/authenticates previously selected message, but not current one
                        - first message authentication fails, without any message
  These bugs were due to the non-thread-safetiness of GPGHandler...
- It happens that after having decrypted a message, the password panel appears again, during modal sheet; after this message can no longer be displayed in clear
- Annoying logs in console about toolbar items
X DOES NOT WORK AT ALL ON 10.1: it needs a LOT of work... (if ever possible)
X Some OpenPGP signed messages by GPGMailv13 are not verified by v13! (GPGMail#295)
X Some OpenPGP signed messages by mutt/PGPFreeware 5.0i/PGP 6.5.8 are not verified by v13! (GnuPG#191, 199, cf GPGMail#292, SourceForge#99, 100)
- It may happen that resulting encrypted message is empty! Problem with keys? We should check output length.
- In passphrase panel, pressing Return clicks OK, but pressing Escape does nothing except beeping + OK button is not the default one (due to a bug with Japanese font?)


Modifications:
- Add full compliance with RFC 3156
- Better filtering of gpg error messages using GPGME
- Allows decrypted message forwarding
- Replace state buttons in Compose toolbar with custom view containing 2 checkboxes; label is PGP.
- Automatic decrypt/verify only if message is unread
- Use sheet when asking passphrase


New Features:
X Add command-key shortcuts
X Add contextual menu entries for MessageViewer
- Add support for multiple PGP identities
- Allow recipients choice
- Use KeyChain Manager
- Customize display of signed/encrypted message
- Add support for BCC recipients
- Add support for partial encryption/signature (not the whole message)
- Full multithreading of encryption/decryption
- Add support for S/MIME
X Localization in different languages
(- MacOS X Server: add buttons on Mailbox Viewer to decrypt/authenticate selected message)
- Read/write the following headers:
  X-PGP-KeyID: shortKeyID
  X-Request-PGP: http://url/to/get/publicKey
  X-PGP-Key: 2048R/keyID/fingerprint
X Modify MIME version header: add (GPGMail 0.5.1v8), or add X-PGP-Agent: GPGMail 0.5.1v8
- Allow user to set passphrase timeout
- Display (in toolbar or tableView) if message was authenticated, without modal panel; user can get more information in a drawer. If automatic, icon indicates "signed|correctly signed|bad sig" and the action is "show more sig info"; else icon indicates "signed|not signed" and the action is "verify". We could do like the Junk view which is located between the tableView and the textView
- If pubkey is not available when sending, automatic download via gpg
- Choose signing key according to account (optional)
- On install, test if gpg exists (or propose download), if keys has been generated (or generate them), set com.apple.mail defaults, use Apple's installer
(- Allow automatic setting of keyserver (in options file, because of gpgme))
X Always use Open-PGP style (optional)
- Do not display ----- PGP ----- headers (optional)
- Do not display modal panel for sig authentication, but rather an icon in message; if user clicks it, more info (name, date, etc.)
- There is not enough support in email clients that I've seen for doing stuff like automatically rejecting or tagging messages signed with revoked certificates.
- In Composer, add icon next to headers if mail is signed and/or encrypted (a la Outlook)
- Control automatic signing by account
- Use own defaults domain (see CFPreferences documentation)
- Set OpenPGP/Inline format on a per-address basis (save this in AddressBook)
- Add support for groups of addresses (use AddressBook)
- Add new column in tableView to show signed/authenticated (+sorting; use lock icon in KeychainManager)
- Allow installation for all users on the same host (seems we need to write our own 'defaults' tool)
- Could we add scripting support??
