--- a/server/utils.py Fri Oct 12 15:38:58 2012 +0200
+++ b/server/utils.py Fri Oct 12 16:05:16 2012 +0200
@@ -52,7 +52,9 @@
return md5crypt(secret, self.salt.encode('ascii')).decode('utf-8')
_calc_checksum = calc_checksum
-_CRYPTO_CTX = CryptContext(['sha512_crypt', CustomMD5Crypt, 'des_crypt', 'ldap_salted_sha1'])
+_CRYPTO_CTX = CryptContext(['sha512_crypt', CustomMD5Crypt, 'des_crypt', 'ldap_salted_sha1'],
+ deprecated=['cubicwebmd5crypt', 'des_crypt'])
+verify_and_update = _CRYPTO_CTX.verify_and_update
def crypt_password(passwd, salt=None):
"""return the encrypted password using the given salt or a generated one
@@ -62,8 +64,11 @@
# empty hash, accept any password for backwards compat
if salt == '':
return salt
- if _CRYPTO_CTX.verify(passwd, salt):
- return salt
+ try:
+ if _CRYPTO_CTX.verify(passwd, salt):
+ return salt
+ except ValueError: # e.g. couldn't identify hash
+ pass
# wrong password
return ''