From f754e1d73fad37b3a1ba27de5b49c2902e2f1f23 Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Mon, 13 Nov 2017 08:58:31 -0800 Subject: hash: special cases first, avoid exception. Handle known special cases for hashes first, to avoid all fallback cases. Also avoid the ValueError exception if possible, with a simple conditional. Signed-off-by: Robin H. Johnson --- gemato/hash.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gemato/hash.py b/gemato/hash.py index 3b4eb44..b5b57cd 100644 --- a/gemato/hash.py +++ b/gemato/hash.py @@ -34,14 +34,14 @@ def get_hash_by_name(name): Get a hashlib-compatible hash object for hash named @name. Supports multiple backends. """ - try: - return hashlib.new(name) - except ValueError: - pass - + # special case hashes if name == '__size__': return SizeHash() + # general hash support + if name in hashlib.algorithms_available: + return hashlib.new(name) + # fallback support if name.startswith('sha3_'): try: -- cgit v1.2.3