void hash_soak(void *dst, const void *src, u64 slen);
dst is the 256bit key to be generated,
src is a byte array of all inputs,
slen is the source length in bytes.
For security, this function should have all the attributes of a cryptographic hash function. If there is no faster way to find collisions or determine the input based on the output than brute force, the candidate is considered barely secure.
Nothing stops users from providing weak passwords. But we should extract all entropy we are provided into a 256bit key.