Skip to content

Commit a41dd7c

Browse files
committed
Use encode_string for key and data - fix for py26 unicode_literals
1 parent 92a2e75 commit a41dd7c

File tree

4 files changed

+16
-3
lines changed

4 files changed

+16
-3
lines changed

CHANGELOG.rst

+4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
Change Log
22
----------
33

4+
1.3.2
5+
~~~~~
6+
- Fix - unicode key
7+
48
1.3.1
59
~~~~~
610
- Get rid of brackets in decorator

VERSION.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.3.1
1+
1.3.2

djangohmac/sign.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,11 @@ def get_signature(self, request):
7171

7272
def _hmac_factory(self, data, key=None, digestmod=None):
7373
key = six.b(key) if key else self.hmac_key
74-
return hmac.new(key, data, digestmod=self.digestmod)
74+
return hmac.new(
75+
encode_string(key),
76+
encode_string(data),
77+
digestmod=self.digestmod
78+
)
7579

7680
def make_hmac(self, data='', key=None):
7781
""" Generates HMAC key
@@ -80,7 +84,7 @@ def make_hmac(self, data='', key=None):
8084
data (str): HMAC message
8185
key (str): secret key of another app
8286
"""
83-
hmac_token_server = self._hmac_factory(encode_string(data), key).digest()
87+
hmac_token_server = self._hmac_factory(data, key).digest()
8488
hmac_token_server = base64.b64encode(hmac_token_server)
8589
return hmac_token_server
8690

tests/test_hmac.py

+5
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,8 @@ def test_valid_signature_for_resticted_view(self):
5555
request,
5656
only=['serviceA']
5757
)
58+
59+
def test_generate_signature_for_unicode_key(self):
60+
uncode = self.hmac._hmac_factory('', key=u'unicode').digest()
61+
sr = self.hmac._hmac_factory('', key='unicode').digest()
62+
assert sr == uncode

0 commit comments

Comments
 (0)