Commit Graph

316 Commits

Author SHA1 Message Date
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
Simon Ser 40cadc850f
Update dependencies 2019-11-14 08:35:11 +01:00
Trevor Richards 9e57e014dd Update webapp version to 3.16.6 2019-10-27 08:46:00 +01:00
Simon Ser cc03e059b9
Save key salts after auth
The key salts endpoint can only be accessed right after authentication, it's
blocked after auth refresh.

Closes: https://github.com/emersion/hydroxide/issues/68
2019-08-31 17:43:49 +03:00
Simon Ser 2de4f13dc4
cmd/hydroxide: switch to stable API endpoint 2019-08-31 17:36:15 +03:00
Simon Ser 4c2066d28f
protonmail: log failed requests 2019-08-31 17:35:27 +03:00
Simon Ser 4b6614ca26
Update dependencies 2019-08-31 16:22:08 +03:00
Simon Ser 75984c4ff4
protonmail: fix /auth/refresh, remove Client{ID,Secret}
ClientID and ClientSecret are no longer used.

Closes: https://github.com/emersion/hydroxide/issues/68
2019-08-31 16:19:54 +03:00
Simon Ser 10cb8dbf40
Update dependencies 2019-08-14 23:05:09 +03:00
Simon Ser 41b720f09f
protonmail: AccessToken isn't encrypted anymore
Closes: https://github.com/emersion/hydroxide/issues/67
2019-08-14 23:01:39 +03:00
Simon Ser fef10d24fd
protonmail: update AuthInfo struct 2019-08-14 22:33:31 +03:00
Simon Ser fbf85fecaa
Add preliminary support for imports 2019-07-30 20:51:46 +03:00
Simon Ser 6fe47ba219
cmd/hydroxide: beautify help message 2019-07-30 19:25:01 +03:00
xcffl a46986a871 Make hostname and ports configurable
Signed-off-by: xcffl <xcffl@outlook.com>
2019-07-29 08:49:20 +03:00
Anirudh f8ed15f423 cmd/hydroxide: remove newline before usage
Signed-off-by: Anirudh <icyph0x@pm.me>
2019-07-28 12:43:46 +03:00
Anirudh 061cd42d4e cmd/hydroxide: better usage info
Signed-off-by: Anirudh <icyph0x@pm.me>
2019-07-28 12:43:46 +03:00