Fix IllegalArgumentException message for unknown Argon2 types #16971
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.
Parsing Argon2 params relies on
String[] parts = encodedHash.split("\\$")
. For a string beginning with a$
, the first element of the resulting array will be empty. This is already addressed in the code, with the variableint currentPart
being initialized with1
. But the IllegalArgumentException message incorrectly refers topart[0]
, which will be empty for a well-formed Argon2 string starting with$
.The fix is trivial in this case, just use the array index 1.
P.S. one could also check for the 0-th array element to be an empty string and throw an IllegalArgumentException if it's not. However, this requires additional domain expertise and as such goes beyond the scope.