diff --git a/acme/acme/jose/jws.py b/acme/acme/jose/jws.py index 8fa8d7670..5f446e4b1 100644 --- a/acme/acme/jose/jws.py +++ b/acme/acme/jose/jws.py @@ -222,7 +222,8 @@ class Signature(json_util.JSONObjectWithFields): protected_params = {} for header in protect: - protected_params[header] = header_params.pop(header) + if header in header_params: + protected_params[header] = header_params.pop(header) if protected_params: # pylint: disable=star-args protected = cls.header_cls(**protected_params).json_dumps() diff --git a/acme/acme/jws.py b/acme/acme/jws.py index 79e96edcb..f9b81749a 100644 --- a/acme/acme/jws.py +++ b/acme/acme/jws.py @@ -49,6 +49,6 @@ class JWS(jose.JWS): # jwk field if kid is not provided. include_jwk = kid is None return super(JWS, cls).sign(payload, key=key, alg=alg, - protect=frozenset(['nonce', 'url', 'kid']), + protect=frozenset(['nonce', 'url', 'kid', 'jwk', 'alg']), nonce=nonce, url=url, kid=kid, include_jwk=include_jwk)