Commit 5559fa18 authored by Pierre-Elliott Bécue's avatar Pierre-Elliott Bécue

[crans_utils/hash] Backward compatibility needed

 * À l'heure actuelle, les hash ssha contenus dans la base LDAP ont
 un sel de seulement 4 octets.
parent ecc1b59d
......@@ -238,11 +238,13 @@ def escape(chaine):
return ldap.filter.escape_filter_chars(chaine)
def hash_password(password, salt=None):
def hash_password(password, salt=None, longueur=4):
if longueur < 4:
raise ValueError("salt devrait faire au moins 4 octets")
if salt is None:
salt = os.urandom(8)
elif len(salt)<8:
raise ValueError("salt devrait faire au moins 8 octets")
salt = os.urandom(longueur)
elif len(salt)<4:
raise ValueError("salt devrait faire au moins 4 octets")
return '{SSHA}' + base64.b64encode(hashlib.sha1(password + salt).digest() + salt)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment