argon2 KDF support has been implemented in the official clients and server now. This PR adds support to bitw, to be able to log in when argon2 is selected as the user's KDF.
The prelogin response now has 2 optional parameters, kdfMemory and kdfParallelism. The KDF value which previously was always 0, can now also be 1 for argon2id. To derive the master key, the email has to be sha256 hashed, and the memory value is converted from MiB to KiB.
As far as I know, Go has no builtin for optionals, so for now the optional parameters would just be set to "0". Let me know if I should use an optional library or some other approach instead.
Hi,
argon2 KDF support has been implemented in the official clients and server now. This PR adds support to bitw, to be able to log in when argon2 is selected as the user's KDF.
The prelogin response now has 2 optional parameters, kdfMemory and kdfParallelism. The KDF value which previously was always 0, can now also be 1 for argon2id. To derive the master key, the email has to be sha256 hashed, and the memory value is converted from MiB to KiB.
As far as I know, Go has no builtin for optionals, so for now the optional parameters would just be set to "0". Let me know if I should use an optional library or some other approach instead.