[Date Prev][Date Next] [Chronological] [Thread] [Top]

Argon2 Password Hashing


as discussed in
I'm currently working on making my argon2 password hashing module also
work with libsodium instead of just the argon2 reference implementation.
In the progress, a few questions came up:

1) Libsodium doesn't expose all of the same parameters to argon2 that
the original implementation exposes. In Libsodium, we can only configure
the memory and CPU cost, while argon2 also allows configuring the salt
length (fixed 16bytes in libsodium), the hash length (fixed 32bytes in
libsodium), and the parallelism (fixed 1 thread in libsodium). So the
question is: Do we want to expose these when using the argon2 backend,
or do we not want to expose them at all, offering a more unified "API"?
Personally, I think these parameters are sane and don't really need to
be configurable (as opposed to the work factors, which SHOULD be

2) Libsodium exposes an API for random-number-generation. Should I use
this API for generating the salt when using argon2, or should I always
use the openldap-builtin lutil_entropy?

3) Regarding configurability: Is there a guide available that shows how
to add configuration parameters to a module? In my current
configuration, the memory and CPU cost factors are hardcoded into the
module, but making these configurable for users is desirable, since they
can potentially raise security based on the amount of Users vs amount of
processing power they have.

Best regards,
Simon Levermann

Attachment: signature.asc
Description: OpenPGP digital signature