https://bugs.openldap.org/show_bug.cgi?id=9517
--- Comment #4 from gilbert.kowarzyk@servicenow.com --- I also found these teo relevant threads:
- https://www.openldap.org/lists/openldap-devel/201703/msg00002.html - https://github.com/jedisct1/libsodium/issues/509
In summary, libsodium being a high-level library, it hides some of the parameters in the name of "easing complexity" and "avoiding misuse" (such as "salt length", and "output length"). However, it also hides "parallelism", which I think should probably remain configurable.
Indeed, from my understanding, Argon2 is specifically designed to have "execution time", "memory required", and "degree of parallelism" as the three parameters that can be tuned, such as to maximize its resistance: - making it "more expensive" to crack when many fast cores are available (e.g. GPU or ASIC) - requiring more memory (thus increasing the cost of the hardware required to attempt a brute-force attack) - changing the memory access pattern to reduce side-channel attacks.
I seems that the compromise of leaving out "parallelism" goes a bit against it's original design.