An interface that can be used to augment the behavior of a digest hash.
One example usecase is with the password based login modules to
modify the behavior of the hashing to introduce prefix/suffix salts.
Pass through access to the login module options. When coming from a
login module this includes the following keys:
javax.security.auth.login.name - for the username
javax.security.auth.login.password - for the String password