Skip to content

Commit b8771db

Browse files
committed
Fix the ECDSA signature serialization format
1 parent 6c9cada commit b8771db

File tree

2 files changed

+12
-15
lines changed

2 files changed

+12
-15
lines changed

jwt/contrib/algorithms/py_ecdsa.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ def prepare_key(self, key):
5050

5151
def sign(self, msg, key):
5252
return key.sign(msg, hashfunc=self.hash_alg,
53-
sigencode=ecdsa.util.sigencode_der)
53+
sigencode=ecdsa.util.sigencode_string)
5454

5555
def verify(self, msg, key, sig):
5656
try:
5757
return key.verify(sig, msg, hashfunc=self.hash_alg,
58-
sigdecode=ecdsa.util.sigdecode_der)
59-
except ecdsa.der.UnexpectedDER:
58+
sigdecode=ecdsa.util.sigdecode_string)
59+
except AssertionError:
6060
return False

tests/contrib/test_algorithms.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,9 @@ def test_ec_sign_should_generate_correct_signature_value(self):
130130
jwt_message = ensure_bytes('Hello World!')
131131

132132
expected_sig = base64.b64decode(ensure_bytes(
133-
'MIGIAkIB9vYz+inBL8aOTA4auYz/zVuig7TT1bQgKROIQX9YpViHkFa4DT5'
134-
'5FuFKn9XzVlk90p6ldEj42DC9YecXHbC2t+cCQgCicY+8f3f/KCNtWK7cif'
135-
'6vdsVwm6Lrjs0Ag6ZqCf+olN11hVt1qKBC4lXppqB1gNWEmNQaiz1z2QRyc'
136-
'zJ8hSJmbw=='))
133+
'AC+m4Jf/xI3guAC6w0w37t5zRpSCF6F4udEz5LiMiTIjCS4vcVe6dDOxK+M'
134+
'mvkF8PxJuvqxP2CO3TR3okDPCl/NjATTO1jE+qBZ966CRQSSzcCM+tzcHzw'
135+
'LZS5kbvKu0Acd/K6Ol2/W3B1NeV5F/gjvZn/jOwaLgWEUYsg0o4XVrAg65'))
137136

138137
with open(key_path('testkey_ec'), 'r') as keyfile:
139138
jwt_key = algo.prepare_key(keyfile.read())
@@ -151,10 +150,9 @@ def test_ec_verify_should_return_false_if_signature_invalid(self):
151150
jwt_message = ensure_bytes('Hello World!')
152151

153152
jwt_sig = base64.b64decode(ensure_bytes(
154-
'MIGIAkIB9vYz+inBL8aOTA4auYz/zVuig7TT1bQgKROIQX9YpViHkFa4DT5'
155-
'5FuFKn9XzVlk90p6ldEj42DC9YecXHbC2t+cCQgCicY+8f3f/KCNtWK7cif'
156-
'6vdsVwm6Lrjs0Ag6ZqCf+olN11hVt1qKBC4lXppqB1gNWEmNQaiz1z2QRyc'
157-
'zJ8hSJmbw=='))
153+
'AC+m4Jf/xI3guAC6w0w37t5zRpSCF6F4udEz5LiMiTIjCS4vcVe6dDOxK+M'
154+
'mvkF8PxJuvqxP2CO3TR3okDPCl/NjATTO1jE+qBZ966CRQSSzcCM+tzcHzw'
155+
'LZS5kbvKu0Acd/K6Ol2/W3B1NeV5F/gjvZn/jOwaLgWEUYsg0o4XVrAg65'))
158156

159157
jwt_sig += ensure_bytes('123') # Signature is now invalid
160158

@@ -170,10 +168,9 @@ def test_ec_verify_should_return_true_if_signature_valid(self):
170168
jwt_message = ensure_bytes('Hello World!')
171169

172170
jwt_sig = base64.b64decode(ensure_bytes(
173-
'MIGIAkIB9vYz+inBL8aOTA4auYz/zVuig7TT1bQgKROIQX9YpViHkFa4DT5'
174-
'5FuFKn9XzVlk90p6ldEj42DC9YecXHbC2t+cCQgCicY+8f3f/KCNtWK7cif'
175-
'6vdsVwm6Lrjs0Ag6ZqCf+olN11hVt1qKBC4lXppqB1gNWEmNQaiz1z2QRyc'
176-
'zJ8hSJmbw=='))
171+
'AC+m4Jf/xI3guAC6w0w37t5zRpSCF6F4udEz5LiMiTIjCS4vcVe6dDOxK+M'
172+
'mvkF8PxJuvqxP2CO3TR3okDPCl/NjATTO1jE+qBZ966CRQSSzcCM+tzcHzw'
173+
'LZS5kbvKu0Acd/K6Ol2/W3B1NeV5F/gjvZn/jOwaLgWEUYsg0o4XVrAg65'))
177174

178175
with open(key_path('testkey_ec.pub'), 'r') as keyfile:
179176
jwt_pub_key = algo.prepare_key(keyfile.read())

0 commit comments

Comments
 (0)