One interesting thing to note about the salt as a constructor parameter is that it allows implementation of a higher-level passlib-style agile-KDF that conforms to the same interface as the low level functions.