Use Base64.strict_encode64 and SSHA256 #303
Merged
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.
in the default ruby implementation :
Base64:encode64
,\n
is inserted every 60 encoded characters. It is legal according to the RFC 2045 and was done for sending binary content in e-mail, where the line length is limited.cf https://stackoverflow.com/questions/38370512/stub-random-value-in-rspec-with-secure-random
When we are using only ruby it works fine. If you are using another stack (like Spring security in java), it often uses the RFC 4648 that does not allow non ascii characters.
We cannot see it with SSHA (or others algorithms in ruby-ldap) as the salt + the hash is less than 60 chars. But if we implement longer hashes like SSHA256, there are
\n
that are inserted.With strict_encode64 we don't need to chomp.