Added support for stdlib's pbkdf2, thanks Ayrx

This commit is contained in:
mdipierro
2014-08-10 12:45:37 -05:00
parent 2a2800bc25
commit 5e07ed79cc
2 changed files with 19 additions and 10 deletions
+1 -1
View File
@@ -1 +1 @@
Version 2.10.0-trunk+timestamp.2014.08.10.12.07.07 Version 2.10.0-trunk+timestamp.2014.08.10.12.45.17
+18 -9
View File
@@ -34,6 +34,7 @@ if python_version == 2:
else: else:
import pickle import pickle
import hashlib
from hashlib import md5, sha1, sha224, sha256, sha384, sha512 from hashlib import md5, sha1, sha224, sha256, sha384, sha512
try: try:
@@ -43,18 +44,26 @@ except ImportError:
import hmac import hmac
try: if hasattr(hashlib, "pbkdf2_hmac"):
try: def pbkdf2_hex(data, salt, iterations=1000, keylen=24, hashfunc=None):
from gluon.contrib.pbkdf2_ctypes import pbkdf2_hex hashfunc = hashfunc or sha1
except (ImportError, AttributeError): return hashlib.pbkdf2_hmac(hashfunc().name,
from gluon.contrib.pbkdf2 import pbkdf2_hex data, salt, iterations,
keylen).encode("hex")
HAVE_PBKDF2 = True HAVE_PBKDF2 = True
except ImportError: else:
try: try:
from .pbkdf2 import pbkdf2_hex try:
from gluon.contrib.pbkdf2_ctypes import pbkdf2_hex
except (ImportError, AttributeError):
from gluon.contrib.pbkdf2 import pbkdf2_hex
HAVE_PBKDF2 = True HAVE_PBKDF2 = True
except (ImportError, ValueError): except ImportError:
HAVE_PBKDF2 = False try:
from .pbkdf2 import pbkdf2_hex
HAVE_PBKDF2 = True
except (ImportError, ValueError):
HAVE_PBKDF2 = False
logger = logging.getLogger("web2py") logger = logging.getLogger("web2py")