Commit Graph

7 Commits

Author SHA1 Message Date
c57aeac7f0 prevent unicode-confusion in password by applying PRECIS, and username/email address by applying unicode NFC normalization
an é (e with accent) can also be written as e+\u0301. the first form is NFC,
the second NFD. when logging in, we transform usernames (email addresses) to
NFC. so both forms will be accepted. if a client is using NFD, they can log
in too.

for passwords, we apply the PRECIS "opaquestring", which (despite the name)
transforms the value too: unicode spaces are replaced with ascii spaces. the
string is also normalized to NFC. PRECIS may reject confusing passwords when
you set a password.
2024-03-09 09:20:29 +01:00
8c99e54ec1 update dependencies 2023-11-09 21:19:51 +01:00
0d8603f9e1 update latest deps 2023-09-20 16:52:18 +02:00
3ef1f31359 update dependencies 2023-07-28 22:47:28 +02:00
01adad62b2 implement decoding charsets (other than ascii and utf-8) while reading textual message parts, and improve search
message.Part now has a ReaderUTF8OrBinary() along with the existing Reader().
the new function returns a reader of decoded content. we now use it in a few
places, including search. we only support the charsets in
golang.org/x/text/encoding/ianaindex.

search has also been changed to not read the entire message in memory. instead,
we make one 8k buffer for reading and search in that, and we keep the buffer
around for all messages. saves quite some allocations when searching large
mailboxes.
2023-07-28 22:15:23 +02:00
ba75c73716 update to latest golang.org/x/crypto 2023-03-06 08:35:57 +01:00
cb229cb6cf mox! 2023-01-30 14:27:06 +01:00