RFC9106: change defaults and add profiles #106
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of changes
Change the default parameter choice to RFC9106's recommended "low memory" option and provide named profiles for both high-memory (recommended on systems that can support it) and low-memory profiles.
Also adds the ability to create
Profile
instances (or subclasses) that wrapPasswordHasher
's parameters.Remaining tasks
Both of these will be done when the implementation strategy is confirmed
Questions
Profile
singletons. Another option would be to subclassProfile
and exclude the values from the__init__
provided from dataclasses. This comes with inconsistent initialization behavior betweenProfile
and its provided subclasses but avoids singletons. This would be okay ifProfile
was no longer exposed to the user.Profile
defaultsencoding
andtype
just asPasswordHasher
does. If we want to avoid this duplication, we could remove all defaults fromProfile
and enforce all parameters are explicit.Closes #101