diff options
Diffstat (limited to 'passlib/handlers/ldap_digests.py')
-rw-r--r-- | passlib/handlers/ldap_digests.py | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/passlib/handlers/ldap_digests.py b/passlib/handlers/ldap_digests.py index 30254f0..f4d0c7e 100644 --- a/passlib/handlers/ldap_digests.py +++ b/passlib/handlers/ldap_digests.py @@ -12,7 +12,6 @@ import re # pkg from passlib.handlers.misc import plaintext from passlib.utils import unix_crypt_schemes, to_unicode -from passlib.utils.compat import uascii_to_str, unicode, u from passlib.utils.decor import classproperty import passlib.utils.handlers as uh # local @@ -53,7 +52,7 @@ class _Base64DigestHelper(uh.StaticHandler): return cls.ident def _calc_checksum(self, secret): - if isinstance(secret, unicode): + if isinstance(secret, str): secret = secret.encode("utf-8") chk = self._hash_func(secret).digest() return b64encode(chk).decode("ascii") @@ -92,10 +91,10 @@ class _SaltedBase64DigestHelper(uh.HasRawSalt, uh.HasRawChecksum, uh.GenericHand def to_string(self): data = self.checksum + self.salt hash = self.ident + b64encode(data).decode("ascii") - return uascii_to_str(hash) + return hash def _calc_checksum(self, secret): - if isinstance(secret, unicode): + if isinstance(secret, str): secret = secret.encode("utf-8") return self._hash_func(secret + self.salt).digest() @@ -108,9 +107,9 @@ class ldap_md5(_Base64DigestHelper): The :meth:`~passlib.ifc.PasswordHash.hash` and :meth:`~passlib.ifc.PasswordHash.genconfig` methods have no optional keywords. """ name = "ldap_md5" - ident = u("{MD5}") + ident = u"{MD5}" _hash_func = md5 - _hash_regex = re.compile(u(r"^\{MD5\}(?P<chk>[+/a-zA-Z0-9]{22}==)$")) + _hash_regex = re.compile(r"^\{MD5\}(?P<chk>[+/a-zA-Z0-9]{22}==)$") class ldap_sha1(_Base64DigestHelper): """This class stores passwords using LDAP's plain SHA1 format, and follows the :ref:`password-hash-api`. @@ -118,9 +117,9 @@ class ldap_sha1(_Base64DigestHelper): The :meth:`~passlib.ifc.PasswordHash.hash` and :meth:`~passlib.ifc.PasswordHash.genconfig` methods have no optional keywords. """ name = "ldap_sha1" - ident = u("{SHA}") + ident = u"{SHA}" _hash_func = sha1 - _hash_regex = re.compile(u(r"^\{SHA\}(?P<chk>[+/a-zA-Z0-9]{27}=)$")) + _hash_regex = re.compile(r"^\{SHA\}(?P<chk>[+/a-zA-Z0-9]{27}=)$") class ldap_salted_md5(_SaltedBase64DigestHelper): """This class stores passwords using LDAP's salted MD5 format, and follows the :ref:`password-hash-api`. @@ -156,10 +155,10 @@ class ldap_salted_md5(_SaltedBase64DigestHelper): This format now supports variable length salts, instead of a fix 4 bytes. """ name = "ldap_salted_md5" - ident = u("{SMD5}") + ident = u"{SMD5}" checksum_size = 16 _hash_func = md5 - _hash_regex = re.compile(u(r"^\{SMD5\}(?P<tmp>[+/a-zA-Z0-9]{27,}={0,2})$")) + _hash_regex = re.compile(r"^\{SMD5\}(?P<tmp>[+/a-zA-Z0-9]{27,}={0,2})$") class ldap_salted_sha1(_SaltedBase64DigestHelper): """ @@ -197,11 +196,11 @@ class ldap_salted_sha1(_SaltedBase64DigestHelper): This format now supports variable length salts, instead of a fix 4 bytes. """ name = "ldap_salted_sha1" - ident = u("{SSHA}") + ident = u"{SSHA}" checksum_size = 20 _hash_func = sha1 # NOTE: 32 = ceil((20 + 4) * 4/3) - _hash_regex = re.compile(u(r"^\{SSHA\}(?P<tmp>[+/a-zA-Z0-9]{32,}={0,2})$")) + _hash_regex = re.compile(r"^\{SSHA\}(?P<tmp>[+/a-zA-Z0-9]{32,}={0,2})$") @@ -237,12 +236,12 @@ class ldap_salted_sha256(_SaltedBase64DigestHelper): .. versionadded:: 1.7.3 """ name = "ldap_salted_sha256" - ident = u("{SSHA256}") + ident = u"{SSHA256}" checksum_size = 32 default_salt_size = 8 _hash_func = sha256 # NOTE: 48 = ceil((32 + 4) * 4/3) - _hash_regex = re.compile(u(r"^\{SSHA256\}(?P<tmp>[+/a-zA-Z0-9]{48,}={0,2})$")) + _hash_regex = re.compile(r"^\{SSHA256\}(?P<tmp>[+/a-zA-Z0-9]{48,}={0,2})$") class ldap_salted_sha512(_SaltedBase64DigestHelper): @@ -277,12 +276,12 @@ class ldap_salted_sha512(_SaltedBase64DigestHelper): .. versionadded:: 1.7.3 """ name = "ldap_salted_sha512" - ident = u("{SSHA512}") + ident = u"{SSHA512}" checksum_size = 64 default_salt_size = 8 _hash_func = sha512 # NOTE: 91 = ceil((64 + 4) * 4/3) - _hash_regex = re.compile(u(r"^\{SSHA512\}(?P<tmp>[+/a-zA-Z0-9]{91,}={0,2})$")) + _hash_regex = re.compile(r"^\{SSHA512\}(?P<tmp>[+/a-zA-Z0-9]{91,}={0,2})$") class ldap_plaintext(plaintext): @@ -299,7 +298,7 @@ class ldap_plaintext(plaintext): :param encoding: This controls the character encoding to use (defaults to ``utf-8``). - This encoding will be used to encode :class:`!unicode` passwords + This encoding will be used to encode :class:`!str` passwords under Python 2, and decode :class:`!bytes` hashes under Python 3. .. versionchanged:: 1.6 @@ -309,7 +308,7 @@ class ldap_plaintext(plaintext): # is override identify() name = "ldap_plaintext" - _2307_pat = re.compile(u(r"^\{\w+\}.*$")) + _2307_pat = re.compile(r"^\{\w+\}.*$") @uh.deprecated_method(deprecated="1.7", removed="2.0") @classmethod @@ -337,7 +336,7 @@ def _init_ldap_crypt_handlers(): g = globals() for wname in unix_crypt_schemes: name = 'ldap_' + wname - g[name] = uh.PrefixWrapper(name, wname, prefix=u("{CRYPT}"), lazy=True) + g[name] = uh.PrefixWrapper(name, wname, prefix=u"{CRYPT}", lazy=True) del g _init_ldap_crypt_handlers() |