8000 Ported 0.1.2 as 0.1.4 seems problematic · Stackdriver/twilio-python@ee137b3 · GitHub
[go: up one dir, main page]

Skip to content
This repository was archived by the owner on Feb 1, 2018. It is now read-only.

Commit ee137b3

Browse files
committed
Ported 0.1.2 as 0.1.4 seems problematic
1 parent a935163 commit ee137b3

File tree

1 file changed

+7
-19
lines changed

1 file changed

+7
-19
lines changed

twilio/jwt/__init__.py

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,16 @@
66
import base64
77
import hashlib
88
import hmac
9-
from six import text_type, binary_type, b
10-
9+
from six import text_type, b
1110
# default text to binary representation conversion
1211
def binary(txt):
1312
return txt.encode('utf-8')
13+
1414
try:
1515
import json
1616
except ImportError:
1717
import simplejson as json
18-
19-
18+
2019
__all__ = ['encode', 'decode', 'DecodeError']
2120

2221
class DecodeError(Exception): pass
@@ -34,24 +33,14 @@ def base64url_decode(input):
3433
def base64url_encode(input):
3534
return base64.urlsafe_b64encode(input).decode('utf-8').replace('=', '')
3635

37-
def header(jwt):
38-
header_segment = jwt.split('.', 1)[0]
39-
try:
40-
return json.loads(base64url_decode(header_segment))
41-
except (ValueError, TypeError):
42-
raise DecodeError("Invalid header encoding")
43-
4436
def encode(payload, key, algorithm='HS256'):
4537
segments = []
4638
header = {"typ": "JWT", "alg": algorithm}
47-
header_as_binary = binary(json.dumps(header))
48-
segments.append(base64url_encode(header_as_binary))
49-
payload_as_binary = binary(json.dumps(payload))
50-
segments.append(base64url_encode(payload_as_binary))
39+
segments.append(base64url_encode(binary(json.dumps(header))))
40+
segments.append(base64url_encode(binary(json.dumps(payload))))
5141
signing_input = '.'.join(segments)
5242
try:
53-
ascii_key = text_type(key).encode('utf8')
54-
signature = signing_methods[algorithm](binary(signing_input), ascii_key)
43+
signature = signing_methods[algorithm](binary(signing_input), binary(key))
5544
except KeyError:
5645
raise NotImplementedError("Algorithm not supported")
5746
segments.append(base64url_encode(signature))
@@ -71,8 +60,7 @@ def decode(jwt, key='', verify=True):
7160
raise DecodeError("Invalid segment encoding")
7261
if verify:
7362
try:
74-
ascii_key = key
75-
if not signature == signing_methods[header['alg']](binary(signing_input), binary(ascii_key)):
63+
if not signature == signing_methods[header['alg']](binary(signing_input), binary(key)):
7664
raise DecodeError("Signature verification failed")
7765
except KeyError:
7866
raise DecodeError("Algorithm not supported")

0 commit comments

Comments
 (0)
0