summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@plope.com>2011-09-24 04:22:52 -0400
committerChris McDonough <chrism@plope.com>2011-09-24 04:22:52 -0400
commite1258eef6ed47831a8201e6b53ca341a901ad5c4 (patch)
tree296703cd2d71c94c40aca63a089cec9ce946e439
parent44ebac8a36467f2ad65cd40b906c576e4aca0330 (diff)
downloadpyramid-e1258eef6ed47831a8201e6b53ca341a901ad5c4.tar.gz
pyramid-e1258eef6ed47831a8201e6b53ca341a901ad5c4.tar.bz2
pyramid-e1258eef6ed47831a8201e6b53ca341a901ad5c4.zip
fix signed_serialize and signed_deserialize on py3
-rw-r--r--pyramid/session.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/pyramid/session.py b/pyramid/session.py
index cd685e51c..a59f9c628 100644
--- a/pyramid/session.py
+++ b/pyramid/session.py
@@ -10,6 +10,8 @@ from zope.interface import implementer
from pyramid.compat import pickle
from pyramid.compat import PY3
from pyramid.compat import text_
+from pyramid.compat import bytes_
+from pyramid.compat import native_
from pyramid.interfaces import ISession
def manage_accessed(wrapped):
@@ -234,8 +236,8 @@ def signed_serialize(data, secret):
response.set_cookie('signed_cookie', cookieval)
"""
pickled = pickle.dumps(data, pickle.HIGHEST_PROTOCOL)
- sig = hmac.new(secret, pickled, sha1).hexdigest()
- return sig + base64.standard_b64encode(pickled)
+ sig = hmac.new(bytes_(secret), pickled, sha1).hexdigest()
+ return sig + native_(base64.b64encode(pickled))
def signed_deserialize(serialized, secret, hmac=hmac):
""" Deserialize the value returned from ``signed_serialize``. If
@@ -253,12 +255,12 @@ def signed_deserialize(serialized, secret, hmac=hmac):
# hmac parameterized only for unit tests
try:
input_sig, pickled = (serialized[:40],
- base64.standard_b64decode(serialized[40:]))
+ base64.b64decode(bytes_(serialized[40:])))
except (binascii.Error, TypeError) as e:
# Badly formed data can make base64 die
raise ValueError('Badly formed base64 data: %s' % e)
- sig = hmac.new(secret, pickled, sha1).hexdigest()
+ sig = hmac.new(bytes_(secret), pickled, sha1).hexdigest()
if len(sig) != len(input_sig):
raise ValueError('Wrong signature length')