Entry 5455

GAE Patch

   

Submitted by anonymous on July 30, 2010 at 7:28 p.m.
Language: Diff. Code size: 16.1 KB.

diff -ru a/google/appengine/api/datastore_file_stub.py b/google/appengine/api/datastore_file_stub.py
--- a/google/appengine/api/datastore_file_stub.py	2010-06-22 20:40:16.000000000 +0200
+++ b/google/appengine/api/datastore_file_stub.py	2010-07-30 18:31:02.710507099 +0200
@@ -37,7 +37,7 @@
 
 import datetime
 import logging
-import md5
+from hashlib import md5
 import os
 import struct
 import sys
@@ -704,7 +704,7 @@
 
       for property in clone.property_list() + clone.raw_property_list():
         if property.value().has_uservalue():
-          uid = md5.new(property.value().uservalue().email().lower()).digest()
+          uid = md5(property.value().uservalue().email().lower()).digest()
           uid = '1' + ''.join(['%02d' % ord(x) for x in uid])[:20]
           property.mutable_value().mutable_uservalue().set_obfuscated_gaiaid(
               uid)
diff -ru a/google/appengine/api/memcache/__init__.py b/google/appengine/api/memcache/__init__.py
--- a/google/appengine/api/memcache/__init__.py	2010-06-22 20:40:19.000000000 +0200
+++ b/google/appengine/api/memcache/__init__.py	2010-07-30 18:31:02.706506999 +0200
@@ -28,7 +28,7 @@
 import math
 import pickle
 import types
-import sha
+from hashlib import sha1 as sha
 
 from google.appengine.api import api_base_pb
 from google.appengine.api import apiproxy_stub_map
@@ -137,7 +137,7 @@
     server_key = server_key.encode('utf-8')
 
   if len(server_key) > MAX_KEY_SIZE:
-    server_key = sha.new(server_key).hexdigest()
+    server_key = sha(server_key).hexdigest()
 
   if server_to_user_dict is not None:
     if not isinstance(server_to_user_dict, dict):
diff -ru a/google/appengine/datastore/datastore_sqlite_stub.py b/google/appengine/datastore/datastore_sqlite_stub.py
--- a/google/appengine/datastore/datastore_sqlite_stub.py	2010-06-22 20:40:04.000000000 +0200
+++ b/google/appengine/datastore/datastore_sqlite_stub.py	2010-07-30 18:31:02.702506782 +0200
@@ -32,7 +32,7 @@
 import array
 import itertools
 import logging
-import md5
+from hashlib import md5
 import sys
 import threading
 
@@ -802,7 +802,7 @@
         for prop in itertools.chain(entity.property_list(),
                                     entity.raw_property_list()):
           if prop.value().has_uservalue():
-            uid = md5.new(prop.value().uservalue().email().lower()).digest()
+            uid = md5(prop.value().uservalue().email().lower()).digest()
             uid = '1' + ''.join(['%02d' % ord(x) for x in uid])[:20]
             prop.mutable_value().mutable_uservalue().set_obfuscated_gaiaid(uid)
 
diff -ru a/google/appengine/ext/ereporter/ereporter.py b/google/appengine/ext/ereporter/ereporter.py
--- a/google/appengine/ext/ereporter/ereporter.py	2010-06-22 20:40:35.000000000 +0200
+++ b/google/appengine/ext/ereporter/ereporter.py	2010-07-30 18:31:02.690506223 +0200
@@ -168,7 +168,7 @@
     site = '%s:%d' % (path, line_no)
     signature = '%s@%s' % (fulltype, site)
     if len(signature) > MAX_SIGNATURE_LENGTH:
-      signature = 'hash:%s' % sha.new(signature).hexdigest()
+      signature = 'hash:%s' % sha(signature).hexdigest()
 
     return signature
 
diff -ru a/google/appengine/ext/preload/__init__.py b/google/appengine/ext/preload/__init__.py
--- a/google/appengine/ext/preload/__init__.py	2010-06-22 20:40:36.000000000 +0200
+++ b/google/appengine/ext/preload/__init__.py	2010-07-30 18:31:02.698507005 +0200
@@ -104,7 +104,7 @@
 import mailcap
 import markupbase
 import math
-import md5
+from hashlib import md5
 import mhlib
 import mimetools
 import mimetypes
diff -ru a/google/appengine/ext/remote_api/handler.py b/google/appengine/ext/remote_api/handler.py
--- a/google/appengine/ext/remote_api/handler.py	2010-06-22 20:40:36.000000000 +0200
+++ b/google/appengine/ext/remote_api/handler.py	2010-07-30 18:31:02.690506223 +0200
@@ -143,7 +143,7 @@
               datastore_pb.Error.CONCURRENT_TRANSACTION,
               "Transaction precondition failed.")
         elif entity.has_entity():
-          entity_hash = sha.new(entity.entity().Encode()).digest()
+          entity_hash = sha(entity.entity().Encode()).digest()
           if precondition.hash() != entity_hash:
             raise apiproxy_errors.ApplicationError(
                 datastore_pb.Error.CONCURRENT_TRANSACTION,
diff -ru a/google/appengine/ext/remote_api/remote_api_stub.py b/google/appengine/ext/remote_api/remote_api_stub.py
--- a/google/appengine/ext/remote_api/remote_api_stub.py	2010-06-22 20:40:36.000000000 +0200
+++ b/google/appengine/ext/remote_api/remote_api_stub.py	2010-07-30 18:31:02.690506223 +0200
@@ -61,7 +61,7 @@
 import os
 import pickle
 import random
-import sha
+from hashlib import sha1 as sha
 import sys
 import thread
 import threading
@@ -294,7 +294,7 @@
       for key, entity in zip(newkeys, entities):
         entity_hash = None
         if entity.has_entity():
-          entity_hash = sha.new(entity.entity().Encode()).digest()
+          entity_hash = sha(entity.entity().Encode()).digest()
         txdata.preconditions[key.Encode()] = (key, entity_hash)
 
       new_response = datastore_pb.GetResponse()
diff -ru a/google/appengine/ext/webapp/template.py b/google/appengine/ext/webapp/template.py
--- a/google/appengine/ext/webapp/template.py	2010-06-22 20:40:37.000000000 +0200
+++ b/google/appengine/ext/webapp/template.py	2010-07-30 18:31:02.698507005 +0200
@@ -42,7 +42,7 @@
 
 
 
-import md5
+from hashlib import md5
 import os
 
 try:
diff -ru a/google/appengine/tools/appcfg.py b/google/appengine/tools/appcfg.py
--- a/google/appengine/tools/appcfg.py	2010-06-22 20:40:06.000000000 +0200
+++ b/google/appengine/tools/appcfg.py	2010-07-30 18:31:02.714506891 +0200
@@ -38,7 +38,7 @@
 import os
 import random
 import re
-import sha
+from hashlib import sha1 as sha
 import sys
 import tempfile
 import time
@@ -59,12 +59,17 @@
 from google.appengine.tools import appengine_rpc
 from google.appengine.tools import bulkloader
 
-
 MAX_FILES_TO_CLONE = 100
 LIST_DELIMITER = '\n'
 TUPLE_DELIMITER = '|'
 
-VERSION_FILE = '../VERSION'
+CURRENT_DIR = os.path.dirname(__file__)
+if CURRENT_DIR.endswith(os.path.join('google', 'appengine', 'tools')):
+    APPENGINE_DIR = os.path.abspath(
+            os.path.join(CURRENT_DIR, *([os.pardir]*3)))
+else:
+    APPENGINE_DIR = CURRENT_DIR
+VERSION_FILE = os.path.join(APPENGINE_DIR, 'VERSION')
 
 UPDATE_CHECK_TIMEOUT = 3
 
@@ -1232,7 +1237,7 @@
   Returns:
     The string representation of the hash.
   """
-  h = sha.new(content).hexdigest()
+  h = sha(content).hexdigest()
   return '%s_%s_%s_%s_%s' % (h[0:8], h[8:16], h[16:24], h[24:32], h[32:40])
 
 
diff -ru a/google/appengine/tools/dev_appserver_login.py b/google/appengine/tools/dev_appserver_login.py
--- a/google/appengine/tools/dev_appserver_login.py	2010-06-22 20:40:09.000000000 +0200
+++ b/google/appengine/tools/dev_appserver_login.py	2010-07-30 18:31:02.714506891 +0200
@@ -30,7 +30,7 @@
 
 import cgi
 import Cookie
-import md5
+from hashlib import md5
 import os
 import sys
 import urllib
@@ -84,7 +84,7 @@
   if admin:
     admin_string = 'True'
   if email:
-    user_id_digest = md5.new(email.lower()).digest()
+    user_id_digest = md5(email.lower()).digest()
     user_id = '1' + ''.join(['%02d' % ord(x) for x in user_id_digest])[:20]
   else:
     user_id = ''
diff -ru a/google/appengine/tools/dev_appserver_upload.py b/google/appengine/tools/dev_appserver_upload.py
--- a/google/appengine/tools/dev_appserver_upload.py	2010-06-22 20:40:10.000000000 +0200
+++ b/google/appengine/tools/dev_appserver_upload.py	2010-07-30 18:31:02.714506891 +0200
@@ -29,7 +29,7 @@
 import base64
 import cStringIO
 import datetime
-import md5
+from hashlib import md5
 import random
 import time
 
diff -ru a/lib/django/django/contrib/auth/models.py b/lib/django/django/contrib/auth/models.py
--- a/lib/django/django/contrib/auth/models.py	2010-05-25 20:51:59.000000000 +0200
+++ b/lib/django/django/contrib/auth/models.py	2010-07-30 18:31:02.806507005 +0200
@@ -12,11 +12,11 @@
     """
     algo, salt, hsh = enc_password.split('$')
     if algo == 'md5':
-        import md5
-        return hsh == md5.new(salt+raw_password).hexdigest()
+        from hashlib import md5
+        return hsh == md5(salt+raw_password).hexdigest()
     elif algo == 'sha1':
         import sha
-        return hsh == sha.new(salt+raw_password).hexdigest()
+        return hsh == sha(salt+raw_password).hexdigest()
     raise ValueError, "Got unknown password algorithm type in password."
 
 class SiteProfileNotAvailable(Exception):
@@ -140,8 +140,8 @@
     def set_password(self, raw_password):
         import sha, random
         algo = 'sha1'
-        salt = sha.new(str(random.random())).hexdigest()[:5]
-        hsh = sha.new(salt+raw_password).hexdigest()
+        salt = sha(str(random.random())).hexdigest()[:5]
+        hsh = sha(salt+raw_password).hexdigest()
         self.password = '%s$%s$%s' % (algo, salt, hsh)
 
     def check_password(self, raw_password):
@@ -152,8 +152,8 @@
         # Backwards-compatibility check. Older passwords won't include the
         # algorithm or salt.
         if '$' not in self.password:
-            import md5
-            is_correct = (self.password == md5.new(raw_password).hexdigest())
+            from hashlib import md5
+            is_correct = (self.password == md5(raw_password).hexdigest())
             if is_correct:
                 # Convert the password to the new, more secure format.
                 self.set_password(raw_password)
diff -ru a/lib/django/django/contrib/comments/models.py b/lib/django/django/contrib/comments/models.py
--- a/lib/django/django/contrib/comments/models.py	2010-05-25 20:51:59.000000000 +0200
+++ b/lib/django/django/contrib/comments/models.py	2010-07-30 18:31:02.802506381 +0200
@@ -27,8 +27,8 @@
         'pa,ra') and target (something like 'lcom.eventtimes:5157'). Used to
         validate that submitted form options have not been tampered-with.
         """
-        import md5
-        return md5.new(options + photo_options + rating_options + target + settings.SECRET_KEY).hexdigest()
+        from hashlib import md5
+        return md5(options + photo_options + rating_options + target + settings.SECRET_KEY).hexdigest()
 
     def get_rating_options(self, rating_string):
         """
diff -ru a/lib/django/django/contrib/csrf/middleware.py b/lib/django/django/contrib/csrf/middleware.py
--- a/lib/django/django/contrib/csrf/middleware.py	2010-05-25 20:51:59.000000000 +0200
+++ b/lib/django/django/contrib/csrf/middleware.py	2010-07-30 18:31:02.790507139 +0200
@@ -7,7 +7,7 @@
 """
 from django.conf import settings
 from django.http import HttpResponseForbidden
-import md5
+from hashlib import md5
 import re
 import itertools
 
@@ -19,7 +19,7 @@
 _HTML_TYPES = ('text/html', 'application/xhtml+xml')    
 
 def _make_token(session_id):
-    return md5.new(settings.SECRET_KEY + session_id).hexdigest()
+    return md5(settings.SECRET_KEY + session_id).hexdigest()
 
 class CsrfMiddleware(object):
     """Django middleware that adds protection against Cross Site
diff -ru a/lib/django/django/contrib/formtools/preview.py b/lib/django/django/contrib/formtools/preview.py
--- a/lib/django/django/contrib/formtools/preview.py	2010-05-25 20:51:59.000000000 +0200
+++ b/lib/django/django/contrib/formtools/preview.py	2010-07-30 18:31:02.790507139 +0200
@@ -50,7 +50,7 @@
 from django.shortcuts import render_to_response
 from django.template.context import RequestContext
 import cPickle as pickle
-import md5
+from hashlib import md5
 
 AUTO_ID = 'formtools_%s' # Each form here uses this as its auto_id parameter.
 
@@ -152,7 +152,7 @@
         # Use HIGHEST_PROTOCOL because it's the most efficient. It requires
         # Python 2.3, but Django requires 2.3 anyway, so that's OK.
         pickled = pickle.dumps(data, protocol=pickle.HIGHEST_PROTOCOL)
-        return md5.new(pickled).hexdigest()
+        return md5(pickled).hexdigest()
 
     def failed_hash(self, request):
         "Returns an HttpResponse in the case of an invalid security hash."
diff -ru a/lib/django/django/contrib/sessions/models.py b/lib/django/django/contrib/sessions/models.py
--- a/lib/django/django/contrib/sessions/models.py	2010-05-25 20:51:59.000000000 +0200
+++ b/lib/django/django/contrib/sessions/models.py	2010-07-30 18:31:02.790507139 +0200
@@ -8,7 +8,7 @@
     def encode(self, session_dict):
         "Returns the given session dictionary pickled and encoded as a string."
         pickled = pickle.dumps(session_dict)
-        pickled_md5 = md5.new(pickled + settings.SECRET_KEY).hexdigest()
+        pickled_md5 = md5(pickled + settings.SECRET_KEY).hexdigest()
         return base64.encodestring(pickled + pickled_md5)
 
     def get_new_session_key(self):
@@ -16,7 +16,7 @@
         # The random module is seeded when this Apache child is created.
         # Use person_id and SECRET_KEY as added salt.
         while 1:
-            session_key = md5.new(str(random.randint(0, sys.maxint - 1)) + str(random.randint(0, sys.maxint - 1)) + settings.SECRET_KEY).hexdigest()
+            session_key = md5(str(random.randint(0, sys.maxint - 1)) + str(random.randint(0, sys.maxint - 1)) + settings.SECRET_KEY).hexdigest()
             try:
                 self.get(session_key=session_key)
             except self.model.DoesNotExist:
@@ -77,7 +77,7 @@
     def get_decoded(self):
         encoded_data = base64.decodestring(self.session_data)
         pickled, tamper_check = encoded_data[:-32], encoded_data[-32:]
-        if md5.new(pickled + settings.SECRET_KEY).hexdigest() != tamper_check:
+        if md5(pickled + settings.SECRET_KEY).hexdigest() != tamper_check:
             from django.core.exceptions import SuspiciousOperation
             raise SuspiciousOperation, "User tampered with session cookie."
         try:
diff -ru a/lib/django/django/middleware/common.py b/lib/django/django/middleware/common.py
--- a/lib/django/django/middleware/common.py	2010-05-25 20:52:00.000000000 +0200
+++ b/lib/django/django/middleware/common.py	2010-07-30 18:31:02.810506873 +0200
@@ -1,7 +1,7 @@
 from django.conf import settings
 from django import http
 from django.core.mail import mail_managers
-import md5
+from hashlib import md5
 import re
 
 class CommonMiddleware(object):
@@ -72,7 +72,7 @@
 
         # Use ETags, if requested.
         if settings.USE_ETAGS:
-            etag = md5.new(response.content).hexdigest()
+            etag = md5(response.content).hexdigest()
             if request.META.get('HTTP_IF_NONE_MATCH') == etag:
                 response = http.HttpResponseNotModified()
             else:
diff -ru a/lib/django/django/utils/cache.py b/lib/django/django/utils/cache.py
--- a/lib/django/django/utils/cache.py	2010-05-25 20:52:00.000000000 +0200
+++ b/lib/django/django/utils/cache.py	2010-07-30 18:31:02.786506497 +0200
@@ -74,7 +74,7 @@
         cache_timeout = settings.CACHE_MIDDLEWARE_SECONDS
     now = datetime.datetime.utcnow()
     if not response.has_header('ETag'):
-        response['ETag'] = md5.new(response.content).hexdigest()
+        response['ETag'] = md5(response.content).hexdigest()
     if not response.has_header('Last-Modified'):
         response['Last-Modified'] = now.strftime('%a, %d %b %Y %H:%M:%S GMT')
     if not response.has_header('Expires'):
@@ -111,7 +111,7 @@
 
 def _generate_cache_key(request, headerlist, key_prefix):
     "Returns a cache key from the headers given in the header list."
-    ctx = md5.new()
+    ctx = md5()
     for header in headerlist:
         value = request.META.get(header, None)
         if value is not None:
diff -ru a/lib/webob/webob/__init__.py b/lib/webob/webob/__init__.py
--- a/lib/webob/webob/__init__.py	2010-05-25 20:52:01.000000000 +0200
+++ b/lib/webob/webob/__init__.py	2010-07-30 18:31:02.854508386 +0200
@@ -1919,8 +1919,8 @@
         """
         if body is None:
             body = self.body
-        import md5
-        h = md5.new(body)
+        from hashlib import md5
+        h = md5(body)
         self.etag = h.digest().encode('base64').replace('\n', '').strip('=')
 
     expires = converter(

This snippet took 0.00 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).