make the sha import use hashlib and make the hashlib import work sanely
authorSeth Vidal <skvidal@fedoraproject.org>
Thu, 22 Apr 2010 21:07:13 +0000 (17:07 -0400)
committerSeth Vidal <skvidal@fedoraproject.org>
Thu, 22 Apr 2010 21:07:13 +0000 (17:07 -0400)
on versions of python that don't have a hashlib (python < 2.5)

certmaster/certmaster.py
scripts/certmaster-sync

index 9548b8b..b0a216b 100644 (file)
@@ -22,7 +22,19 @@ import traceback
 import os
 import os.path
 from OpenSSL import crypto
-import sha
+
+try:
+    import hashlib
+except ImportError:
+    # Python-2.4.z ... gah! (or even 2.3!)
+    import sha
+    class hashlib:
+        @staticmethod
+        def new(algo):
+            if algo == 'sha1':
+                return sha.new()
+            raise ValueError, "Bad checksum type"
+
 import glob
 import socket
 import exceptions
@@ -123,10 +135,10 @@ class CertMaster(object):
         if os.path.exists(csrfile):
             oldfo = open(csrfile)
             oldcsrbuf = oldfo.read()
-            oldsha = sha.new()
+            oldsha = hashlib.new('sha1')
             oldsha.update(oldcsrbuf)
             olddig = oldsha.hexdigest()
-            newsha = sha.new()
+            newsha = hashlib.new('sha1')
             newsha.update(csrbuf)
             newdig = newsha.hexdigest()
             if not newdig == olddig:
index bd27af5..fd1db93 100644 (file)
@@ -7,7 +7,19 @@
 
 import os
 import sys
-import sha
+try:
+    import hashlib
+except ImportError:
+    # Python-2.4.z ... gah! (or even 2.3!)
+    import sha
+    class hashlib:
+        @staticmethod
+        def new(algo):
+            if algo == 'sha1':
+                return sha.new()
+            raise ValueError, "Bad checksum type"
+
+
 import xmlrpclib
 from glob import glob
 from time import sleep
@@ -72,7 +84,7 @@ def local_certs():
     return results
 
 def checksum(f):
-    thissum = sha.new()
+    thissum = hashlib.new('sha1')
     if os.path.exists(f):
         fo = open(f, 'r')
         data = fo.read()