wafsamba: Make sure md5 is really work before using it or overriding the hash function
authorAlexander Bokovoy <ab@samba.org>
Fri, 7 Dec 2012 15:36:02 +0000 (17:36 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Sat, 8 Dec 2012 12:30:07 +0000 (13:30 +0100)
In FIPS mode importing md5 Python module will not cause any error but calling md5.md5()
function will throw ValueError since md5 is not available.

Make sure md5.md5() actually works and if not, fall back to use hash replacement that
we already have in wafsamba.

Reviewed-by: Andreas Schneider <asn@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Sat Dec  8 13:30:07 CET 2012 on sn-devel-104

buildtools/wafsamba/samba_utils.py

index c1869df1c26a6d7cb2c7cef5cced73b229632754..cab87a4dbba2f79c2683cf14a552aaa1d472dd50 100644 (file)
@@ -388,9 +388,17 @@ def RUN_COMMAND(cmd,
 # make sure we have md5. some systems don't have it
 try:
     from hashlib import md5
+    try:
+        foo = md5.md5('abcd')
+    except ValueError:
+        raise
 except:
     try:
         import md5
+        try:
+            foo = md5.md5('abcd')
+        except ValueError:
+            raise
     except:
         import Constants
         Constants.SIG_NIL = hash('abcd')