Commit 7cb8892f authored by Russell Keith-Magee's avatar Russell Keith-Magee
Browse files

Fixed #12362 -- Corrected Python 2.4 incompatibility with hmac constructor in...

Fixed #12362 -- Corrected Python 2.4 incompatibility with hmac constructor in contrib.messages. Thanks to Jeremy Dunck for the report and patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@11814 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent dd27fe74
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
import hmac

from django.conf import settings
from django.utils.hashcompat import sha_constructor
from django.utils.hashcompat import sha_hmac
from django.contrib.messages import constants
from django.contrib.messages.storage.base import BaseStorage, Message
from django.utils import simplejson as json
@@ -41,7 +41,6 @@ class MessageDecoder(json.JSONDecoder):
        decoded = super(MessageDecoder, self).decode(s, **kwargs)
        return self.process_messages(decoded)


class CookieStorage(BaseStorage):
    """
    Stores messages in a cookie.
@@ -103,7 +102,7 @@ class CookieStorage(BaseStorage):
        SECRET_KEY, modified to make it unique for the present purpose.
        """
        key = 'django.contrib.messages' + settings.SECRET_KEY
        return hmac.new(key, value, sha_constructor).hexdigest()
        return hmac.new(key, value, sha_hmac).hexdigest()

    def _encode(self, messages, encode_empty=False):
        """
+4 −0
Original line number Diff line number Diff line
@@ -8,9 +8,13 @@ available.
try:
    import hashlib
    md5_constructor = hashlib.md5
    md5_hmac = md5_constructor
    sha_constructor = hashlib.sha1
    sha_hmac = sha_constructor
except ImportError:
    import md5
    md5_constructor = md5.new
    md5_hmac = md5
    import sha
    sha_constructor = sha.new
    sha_hmac = sha