summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hellkamp <marc@gsites.de>2011-10-24 17:43:43 +0200
committerMarcel Hellkamp <marc@gsites.de>2011-10-24 17:43:43 +0200
commitf1b5a3a6050ae07255b4294c6022ad06359179a8 (patch)
tree4a6fdd9817b384b737363ef4daa5c5f2fa4c0ba9
parent779510caccaedfab14837693f8e0edf749b63ef9 (diff)
downloadbottle-f1b5a3a6050ae07255b4294c6022ad06359179a8.tar.gz
Fix python 3 unicode error in encode/decode_cookie. (fix #241)
Thanks to Jaimie Murdock for the bug report.
-rwxr-xr-xbottle.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/bottle.py b/bottle.py
index 9303d24..a764054 100755
--- a/bottle.py
+++ b/bottle.py
@@ -1848,7 +1848,7 @@ def _lscmp(a, b):
def cookie_encode(data, key):
''' Encode and sign a pickle-able object. Return a (byte) string '''
msg = base64.b64encode(pickle.dumps(data, -1))
- sig = base64.b64encode(hmac.new(key, msg).digest())
+ sig = base64.b64encode(hmac.new(tob(key), msg).digest())
return tob('!') + sig + tob('?') + msg
@@ -1857,7 +1857,7 @@ def cookie_decode(data, key):
data = tob(data)
if cookie_is_encoded(data):
sig, msg = data.split(tob('?'), 1)
- if _lscmp(sig[1:], base64.b64encode(hmac.new(key, msg).digest())):
+ if _lscmp(sig[1:], base64.b64encode(hmac.new(tob(key), msg).digest())):
return pickle.loads(base64.b64decode(msg))
return None