Add support for wide characters in passwords. #2628
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.
This is an attempt to address #1141 about problems with wide characters in passwords.
Login attempts where the password field contained most wide Unicode characters would trigger an error page and not just a failed login attempt. So would pages where an attempt was made to set a password with such a character. The error pages was triggered as
crypt
would die on most wide Unicode characters. However, there were apparently some which would work as a result of special handling in crypt for wide characters which could be downgraded to 8-bit characters.For example the character ג in passwords would trigger the error.
In order to support wide characters in passwords while not breaking any passwords which worked before this change, a password will be encoded into UTF-8 before being sent to crypt only when crypt dies on the original string.