diff options
-rw-r--r-- | gemato/hash.py | 22 | ||||
-rw-r--r-- | tox.ini | 28 |
2 files changed, 50 insertions, 0 deletions
diff --git a/gemato/hash.py b/gemato/hash.py index 7247ace..6a1c854 100644 --- a/gemato/hash.py +++ b/gemato/hash.py @@ -24,6 +24,28 @@ def get_hash_by_name(name): try: return hashlib.new(name) except ValueError: + # fallback support + if name.startswith('sha3_'): + try: + import sha3 + except ImportError: + pass + else: + try: + return getattr(sha3, name)() + except AttributeError: + pass + elif name.startswith('blake2'): + try: + import pyblake2 + except ImportError: + pass + else: + try: + return getattr(pyblake2, name)() + except AttributeError: + pass + raise UnsupportedHash(name) @@ -1,5 +1,33 @@ [tox] envlist = py27,py34,py35,py36,pypy,pypy3 +[testenv:py27] +deps = + pyblake2 + pysha3 + +[testenv:py34] +deps = + pyblake2 + pysha3 + +[testenv:py35] +deps = + pyblake2 + pysha3 + +[testenv:py36] +# blake2 & sha3 are built-in +deps = + +[testenv:pypy] +deps = + pyblake2 + pysha3 + +[testenv:pypy3] +# note: pyblake2, pysha3 don't build +deps = + [testenv] commands = python -m unittest discover -v |