Support for -tls-cert and -tls-key to point to a certificate and
key to encrypt communications between the user and hydroxide.
Support for -tls-client-ca to ask client to present a certificate
signed by the provided CA.
Closes: https://github.com/emersion/hydroxide/issues/13
Apparently the ProtonMail API no longer accepts non-multipart messages
when importing. This fixes the error:
[36027] Imported message is not fully encrypted
* Save all Rcpt command parameters on allReceivers
* On Data command, if bccList is empty, compare To and CC with
allReceivers
* Receivers not referenced by To and CC are BCC
In 93c8007, SRP signature errors were made non-fatal because many
users got the following error:
openpgp: unsupported feature: public key algorithm 22
This is because Protonmail started signing these messages with an
EDDSA key, an algorithm which the Go OpenPGP library does not
support. The switch to github.com/protonmail/crypto introduces this
algorithm, so messages that haven't been tampered with should pass
the verification.
Hi, I had a problem where the suggested usage is not actually how hydroxide was able to parse flags.
Currently, `hydroxide help` claims the correct order is
`usage: hydroxide <command> <flags>`
However, my flags are silently ignored when placing them in that order.
```
# hydroxide serve -smtp-port 2024
2020/07/01 01:43:20 CardDAV server listening on 127.0.0.1:8080
2020/07/01 01:43:20 SMTP server listening on 127.0.0.1:1025
2020/07/01 01:43:20 IMAP server listening on 127.0.0.1:1143
```
So I goofed with it a while and found out that hydroxide will not ignore flags if they go *before* the command.
```
hydroxide -smtp-port 2024 serve
2020/07/01 01:44:12 CardDAV server listening on 127.0.0.1:8080
2020/07/01 01:44:12 SMTP server listening on 127.0.0.1:2024
2020/07/01 01:44:12 IMAP server listening on 127.0.0.1:1143
```
The usage information should be changed to reflect this.
* Increased MaxSpace int size
This change prevents errors when python smtplib calls hydroxide.
* Updated UsedSpace to int64
To prevent errors when numbers exceed 32 bit capacity.