Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Base64.strict_encode64 and SSHA256 #303

Merged
merged 4 commits into from
Aug 29, 2020
Merged

Conversation

bamthomas
Copy link
Contributor

@bamthomas bamthomas commented Apr 16, 2018

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.

Base64.encode64 adds \n every 60 encoded chars. This was originally an encoding mechanism for sending binary
content in e-mail, where the line length is limited. For passwords we dont want this.
cf https://stackoverflow.com/questions/2620975/strange-n-in-base64-encoded-string-in-ruby
@bamthomas
Copy link
Contributor Author

maybe this is like the pull #201

@clader
Copy link

clader commented Feb 2, 2019

Is there any movement to get this added (or to get #201 added)?

Only having support for ssha password creation is starting to be a blocker for our org as our security team is now requiring stronger passwords in our LDAP env.

Our openLDAP deployment supports all the way up to ssha512, but we are unable to use the net-ldap gem to set passwords with this level of encryption.

@HarlemSquirrel HarlemSquirrel added this to the v0.17 milestone Jul 9, 2020
@HarlemSquirrel HarlemSquirrel merged commit 1792608 into ruby-ldap:master Aug 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants