Class: Net::LDAP::Password

Inherits:
Object
  • Object
show all
Defined in:
lib/net/ldap/password.rb

Class Method Summary collapse

Class Method Details

.generate(type, str) ⇒ Object

Generate a password-hash suitable for inclusion in an LDAP attribute. Pass a hash type (currently supported: :md5 and :sha) and a plaintext password. This function will return a hashed representation.

– STUB: This is here to fulfill the requirements of an RFC, which one?

TODO, gotta do salted-sha and (maybe)salted-md5. Should we provide sha1 as a synonym for sha1? I vote no because then should you also provide ssha1 for symmetry?



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/net/ldap/password.rb', line 18

def generate(type, str)
  digest, digest_name = case type
                        when :md5
                          [Digest::MD5.new, 'MD5']
                        when :sha
                          [Digest::SHA1.new, 'SHA']
                        else
                          raise Net::LDAP::LdapError, "Unsupported password-hash type (#{type})"
                        end
  digest << str.to_s
  return "{#{digest_name}}#{[digest.digest].pack('m').chomp }"
end