Commit Graph

281 Commits

Author SHA1 Message Date
Simon Ser fe98e9c3ac
imports: wrap inline part in multipart message
Apparently the ProtonMail API no longer accepts non-multipart messages
when importing. This fixes the error:

    [36027] Imported message is not fully encrypted
2020-12-17 14:28:19 +01:00
Simon Ser 7b6061868f
cmd/hydroxide: fix skipped bytes on eml import 2020-12-17 13:55:47 +01:00
MrViK 4903cb08dd
imap: fix not being able to delete mails and [2000] IDs required
* Advertise imap.DeletedFlag on permanent flags
* Check if `mbox.deleted` has elements before sending API request
2020-12-17 13:32:28 +01:00
Simon Ser b4e52ac715
Add support for mbox files for import-messages 2020-12-10 22:26:54 +01:00
Víctor 86db01792a smtp: fix bcc being ignored
* 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
2020-11-24 10:42:50 +01:00
Simon Ser 358ca10548
exports: fix typo
Fixes: b116e0d5b0 ("exports: set charset to UTF-8")
2020-11-24 10:38:09 +01:00
Simon Ser b116e0d5b0
exports: set charset to UTF-8
Same as fdc51440c3 ("imap: set charset header to utf-8") but for
exports.
2020-11-23 10:02:20 +01:00
MrViK fdc51440c3
imap: set charset header to utf-8
Fixes #116
2020-11-23 09:59:51 +01:00
Simon Ser 5dc0d0b2e8
protonmail: update calendar endpoints
They are now under the /calendar/v1 prefix.
2020-10-13 17:29:16 +02:00
Simon Ser bcb69ab597
Update dependencies 2020-09-15 10:38:23 +02:00
Simon Ser fce7129990
Add -message-id flag to export-messages command 2020-09-15 10:37:01 +02:00
Simon Ser bd861cdb00
Add export-messages command
Right now only supports exporting conversations, and doesn't support
attachments.
2020-09-14 12:46:47 +02:00
Simon Ser ea188ff133
protonmail: add Client.GetConversation 2020-09-14 12:46:22 +02:00
Simon Ser 0e0fb0c38e
protonmail: introduce Timestamp 2020-09-14 12:09:50 +02:00
Simon Ser 524e2fc323
s/flags/options/ 2020-09-14 11:30:12 +02:00
TheOtherAdam 784a69efa0 Update README.md with new install instructions 2020-07-08 09:13:06 +02:00
Daniel Bertalan fe6f0a620f protonmail: make SRP modulus signature failures fatal
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.
2020-07-02 12:23:44 +02:00
Daniel Bertalan 06f6d5b8e9 protonmail: verify SRP modulus signatures
Code follows how the official proton-bridge is doing it.
2020-07-02 12:23:44 +02:00
Daniel Bertalan c483823b5c Use Protonmail fork of golang.org/x/crypto
Adds support for ed25519 (termed State-of-the-art by PM) private
keys. SRP modulus signature verification segfaults, so I commented
it out.
2020-07-02 12:23:44 +02:00
Hubcapp 246e71fbfe update usage help to correct flag-command order
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.
2020-07-01 11:34:11 +02:00
Simon Ser 74c2b8fa37
imports: fix io.Copy call for the message body 2020-06-11 11:04:57 +02:00
Simon Ser 346a0443db
imports: don't set empty Content-Type header field 2020-06-11 11:04:05 +02:00
Simon Ser 0b790847d9
protonmail: add ListCalendars, ListCalendarEvents 2020-03-12 01:23:24 +01:00
Simon Ser 1557b45d88
imap: add support for multiple Reply-To fields 2020-03-09 10:08:47 +01:00
Simon Ser d97056a61a
protonmail: add Client.Debug
This prints HTTP requests and responses.
2020-03-07 18:12:53 +01:00
Simon Ser 4ede51e2b0
protonmail: fix "invalid refresh token" errors
The UID is now provided as a header field.

Closes: https://github.com/emersion/hydroxide/issues/81
2020-03-07 18:09:50 +01:00
Simon Ser 87dbf04035
cmd/hydroxide: fix sub-command arg processing 2020-03-07 17:54:40 +01:00
Dmitry Valter ea106494fe Fix Attachment Error 15212
Change AttachmentKeys format from ID:Key to ID:{Algorithm,Key}.
2020-03-02 11:59:24 +01:00
Simon Ser b6073991b8
Update dependencies 2020-02-29 18:10:57 +01:00
Simon Ser 857d122113
cmd/hydroxide: move usage string to global constant 2020-02-29 12:36:48 +01:00
Simon Ser c1888bcc66
cmd/hydroxide: rename hydroxide.go to main.go 2020-02-29 12:35:09 +01:00
Simon Ser d65465dae5
cmd/hydroxide: add -debug flag 2020-02-29 12:34:20 +01:00
Simon Ser 4346b0163f
imap: add backend mutex 2020-02-29 12:13:32 +01:00
Simon Ser 5cd1c7a921
imap: consistently index users by IMAP-supplied username
The IMAP-supplied username may be different from the canonical
ProtonMail username.

References: https://github.com/emersion/hydroxide/issues/83
2020-02-29 12:06:09 +01:00
Simon Ser cbcde22b5b
imap: fix some race conditions 2020-02-29 11:59:15 +01:00
Simon Ser 8fef87f17f
imap: allow setting labels (as flags) 2020-02-29 11:43:24 +01:00
Simon Ser 126e260d2e
imap: expose labels as message flags
This is read-only for now.
2020-02-29 11:28:04 +01:00
Simon Ser 25bd036b53
imap: fix confusion between mailbox flags and attributes 2020-02-29 10:50:23 +01:00
Simon Ser 7d3d0ee71e
carddav: update to go-webdav v0.2.0 2020-02-04 21:28:25 +01:00
Simon Ser 5fb5ec9775
imap: expose folders as mailboxes 2020-01-29 14:59:45 +01:00
Simon Ser cffd3cd13a
protonmail: add Client.ListLabels 2020-01-29 14:39:30 +01:00
Simon Ser 83311a0302
imap: refcount clients
Closes: https://github.com/emersion/hydroxide/issues/59
2020-01-27 19:35:40 +01:00
Simon Ser 7d69179f76
Upgrade dependencies 2020-01-18 10:32:32 +01:00
Harley Lang f7b1ac9d6e Increased MaxSpace int size (#80)
* 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.
2020-01-04 18:33:23 +01:00
Simon Ser 897ec17f53
go fmt 2019-12-09 12:27:16 +01:00
Simon Ser 135281c48a
Update dependencies 2019-12-08 12:25:26 +01:00
Simon Ser 80e0fa6f3e
Fix 2FA support
The 2FA information is now returned after the /auth request instead of
the /auth/info one.

Closes: https://github.com/emersion/hydroxide/issues/76
2019-12-08 12:14:41 +01:00
Simon Ser 1edc88fd5a
imports: check protonmail.ImportResult.Err 2019-11-14 09:38:30 +01:00
Simon Ser db983eed89
protonmail: fix "invalid input" error on /auth/refresh
It seems like we were just missing a valid RedirectURI.

References: https://github.com/emersion/hydroxide/issues/70
2019-11-14 09:12:34 +01:00
Dmitry Valter d5a7cf4e0a auth/auth: add refresh error 2000 hotfix
References: https://github.com/emersion/hydroxide/issues/70
2019-11-14 08:36:09 +01:00