diff options
Diffstat (limited to 'jwcrypto/jwe.py')
-rw-r--r-- | jwcrypto/jwe.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/jwcrypto/jwe.py b/jwcrypto/jwe.py index eb48d94..978fc5e 100644 --- a/jwcrypto/jwe.py +++ b/jwcrypto/jwe.py @@ -440,6 +440,17 @@ class JWE(object): jh = self.merge_headers(jh, rh) return jh + def get_alg_enc_from_headers(self, jh): + algname = jh.get('alg', None) + if algname is None: + raise InvalidJWEData('Missing "alg" from headers') + alg = self._jwa(algname) + encname = jh.get('enc', None) + if encname is None: + raise InvalidJWEData('Missing "enc" from headers') + enc = self._jwa(encname) + return alg, enc + def add_recipient(self, key, header=None): """ Encrypt the provided payload with the given key. @@ -455,8 +466,7 @@ class JWE(object): raise ValueError('key is not a JWK object') jh = self.get_jose_header(header) - alg = self._jwa(jh.get('alg', None)) - enc = self._jwa(jh.get('enc', None)) + alg, enc = self.get_alg_enc_from_headers(jh) rec = dict() if header: |