diff --git a/jwcrypto/jwk.py b/jwcrypto/jwk.py index fe8598e..c273445 100644 --- a/jwcrypto/jwk.py +++ b/jwcrypto/jwk.py @@ -339,6 +339,7 @@ def __init__(self, **kwargs): super(JWK, self).__init__() self._cache_pub_k = None self._cache_pri_k = None + self.unsafe_skip_rsa_key_validation = False if 'generate' in kwargs: self.generate_key(**kwargs) @@ -838,7 +839,9 @@ def _rsa_pub(self): def _rsa_pri(self): k = self._cache_pri_k if k is None: - k = self._rsa_pri_n().private_key(default_backend()) + u = self.unsafe_skip_rsa_key_validation + k = self._rsa_pri_n().private_key(default_backend(), + unsafe_skip_rsa_key_validation=u) self._cache_pri_k = k return k @@ -993,8 +996,10 @@ def import_from_pem(self, data, password=None, kid=None): """ try: + u = self.unsafe_skip_rsa_key_validation key = serialization.load_pem_private_key( - data, password=password, backend=default_backend()) + data, password=password, backend=default_backend(), + unsafe_skip_rsa_key_validation=u) except ValueError as e: if password is not None: raise e