Skip to content

Commit 3292070

Browse files
author
Roland Hedberg
committed
Try to get header alg once and for all.
1 parent 845263f commit 3292070

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/jwkest/jws.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -485,14 +485,10 @@ def verify_compact(self, jws, keys=None, allow_none=False, sigalg=None):
485485
jwt = JWSig().unpack(jws)
486486
self.jwt = jwt
487487

488-
if "alg" in self and "alg" in jwt.headers:
489-
if self["alg"] != jwt.headers["alg"]:
490-
raise SignerAlgError("Wrong signing algorithm")
491-
492488
try:
493489
_alg = jwt.headers["alg"]
494490
except KeyError:
495-
pass
491+
_alg = None
496492
else:
497493
if _alg is None or _alg.lower() == "none":
498494
if allow_none:
@@ -501,11 +497,15 @@ def verify_compact(self, jws, keys=None, allow_none=False, sigalg=None):
501497
else:
502498
raise SignerAlgError("none not allowed")
503499

504-
if sigalg and sigalg != jwt.headers["alg"]:
500+
if "alg" in self and _alg:
501+
if self["alg"] != _alg:
502+
raise SignerAlgError("Wrong signing algorithm")
503+
504+
if sigalg and sigalg != _alg:
505505
raise SignerAlgError("Expected {0} got {1}".format(
506506
sigalg, jwt.headers["alg"]))
507507

508-
self["alg"] = _alg = jwt.headers["alg"]
508+
self["alg"] = _alg
509509

510510
if keys:
511511
_keys = self._pick_keys(keys)

0 commit comments

Comments
 (0)