commit:     5804bfcc13b6b35e2bab5d6d93f899f8648bbd89
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 20 03:42:21 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Mar 21 02:30:24 2023 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=5804bfcc

checksum: drop mhash usage for WHIRLPOOL; consolidate RIPEMD logic

- Drop mhash fallback logic for WHIRLPOOL as we already have:
  hashlib > pycrypto > bundled C > bundled pure Python

- Consolidate the RIPEMD logic accordingly as we don't need to share the
  mhash fallback logic between WHIRLPOOL and RIPEMD anymore.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 lib/portage/checksum.py | 49 +++++++++++++++++++++----------------------------
 1 file changed, 21 insertions(+), 28 deletions(-)

diff --git a/lib/portage/checksum.py b/lib/portage/checksum.py
index 3b9796b32..b10643476 100644
--- a/lib/portage/checksum.py
+++ b/lib/portage/checksum.py
@@ -26,7 +26,7 @@ from portage.localization import _
 # SHA256: hashlib
 # SHA512: hashlib
 # RMD160: hashlib, pycrypto, mhash
-# WHIRLPOOL: hashlib, mhash, bundled (C), bundled (Python)
+# WHIRLPOOL: hashlib, bundled (C), bundled (Python)
 # BLAKE2B (512): hashlib
 # BLAKE2S (512): hashlib
 # SHA3_256: hashlib
@@ -141,33 +141,26 @@ if "RMD160" not in hashfunc_map:
         if rmd160hash_ is not None:
             _generate_hash_function("RMD160", rmd160hash_, origin="pycrypto")
     except ImportError:
-        pass
-
-        pass
-
-
-# Try to use mhash if available
-# mhash causes GIL presently, so it gets less priority than hashlib and
-# pycrypto. However, it might be the only accelerated implementation of
-# WHIRLPOOL available.
-if "RMD160" not in hashfunc_map or "WHIRLPOOL" not in hashfunc_map:
-    try:
-        import mhash
-
-        for local_name, hash_name in (
-            ("RMD160", "RIPEMD160"),
-            ("WHIRLPOOL", "WHIRLPOOL"),
-        ):
-            if local_name not in hashfunc_map and hasattr(mhash, 
f"MHASH_{hash_name}"):
-                _generate_hash_function(
-                    local_name,
-                    functools.partial(
-                        mhash.MHASH, getattr(mhash, f"MHASH_{hash_name}")
-                    ),
-                    origin="mhash",
-                )
-    except ImportError:
-        pass
+        # Try to use mhash if available
+        # mhash causes GIL presently, so it gets less priority than hashlib and
+        # pycrypto. However, it might be the only accelerated implementation of
+        # WHIRLPOOL available.
+        try:
+            import mhash
+
+            for local_name, hash_name in (("RMD160", "RIPEMD160"),):
+                if local_name not in hashfunc_map and hasattr(
+                    mhash, f"MHASH_{hash_name}"
+                ):
+                    _generate_hash_function(
+                        local_name,
+                        functools.partial(
+                            mhash.MHASH, getattr(mhash, f"MHASH_{hash_name}")
+                        ),
+                        origin="mhash",
+                    )
+        except ImportError:
+            pass
 
 
 _whirlpool_unaccelerated = False

Reply via email to