@@ -80,7 +80,7 @@ def __init__(self, key_jar=None, iss='', lifetime=0,
80
80
enc_enc = "A128CBC-HS256" , enc_alg = "RSA1_5" , msg_cls = None ,
81
81
iss2msg_cls = None , skew = 15 ,
82
82
allowed_sign_algs = None , allowed_enc_algs = None ,
83
- allowed_enc_encs = None ):
83
+ allowed_enc_encs = None , zip = '' ):
84
84
self .key_jar = key_jar # KeyJar instance
85
85
self .iss = iss # My identifier
86
86
self .lifetime = lifetime # default life time of the signature
@@ -99,6 +99,7 @@ def __init__(self, key_jar=None, iss='', lifetime=0,
99
99
self .allowed_sign_algs = allowed_sign_algs
100
100
self .allowed_enc_algs = allowed_enc_algs
101
101
self .allowed_enc_encs = allowed_enc_encs
102
+ self .zip = zip
102
103
103
104
def receiver_keys (self , recv , use ):
104
105
"""
@@ -107,7 +108,7 @@ def receiver_keys(self, recv, use):
107
108
:param use: What the keys should be usable for
108
109
:return: A list of keys.
109
110
"""
110
- return self .key_jar .get (use , owner = recv )
111
+ return self .key_jar .get (use , issuer_id = recv )
111
112
112
113
def receivers (self ):
113
114
"""Return a list of identifiers.
@@ -117,20 +118,22 @@ def receivers(self):
117
118
"""
118
119
return self .key_jar .owners
119
120
120
- def my_keys (self , owner_id = '' , use = 'sig' ):
121
- _k = self .key_jar .get (use , owner = owner_id )
122
- if owner_id != '' :
121
+ def my_keys (self , issuer_id = '' , use = 'sig' ):
122
+ _k = self .key_jar .get (use , issuer_id = issuer_id )
123
+ if issuer_id != '' :
123
124
try :
124
- _k .extend (self .key_jar .get (use , owner = '' ))
125
+ _k .extend (self .key_jar .get (use , issuer_id = '' ))
125
126
except KeyError :
126
127
pass
127
128
return _k
128
129
129
- def _encrypt (self , payload , recv , cty = 'JWT' ):
130
+ def _encrypt (self , payload , recv , cty = 'JWT' , zip = '' ):
130
131
kwargs = {"alg" : self .enc_alg , "enc" : self .enc_enc }
131
132
132
133
if cty :
133
134
kwargs ["cty" ] = cty
135
+ if zip :
136
+ kwargs ['zip' ] = zip
134
137
135
138
# use the clients public key for encryption
136
139
_jwe = JWE (payload , ** kwargs )
@@ -173,28 +176,28 @@ def pack_init(self, recv, aud):
173
176
174
177
return argv
175
178
176
- def pack_key (self , owner_id = '' , kid = '' ):
179
+ def pack_key (self , issuer_id = '' , kid = '' ):
177
180
"""
178
181
Find a key to be used for signing the Json Web Token
179
182
180
- :param owner_id : Owner of the keys to chose from
183
+ :param issuer_id : Owner of the keys to chose from
181
184
:param kid: Key ID
182
185
:return: One key
183
186
"""
184
- keys = pick_key (self .my_keys (owner_id , 'sig' ), 'sig' , alg = self .alg ,
187
+ keys = pick_key (self .my_keys (issuer_id , 'sig' ), 'sig' , alg = self .alg ,
185
188
kid = kid )
186
189
187
190
if not keys :
188
191
raise NoSuitableSigningKeys ('kid={}' .format (kid ))
189
192
190
193
return keys [0 ] # Might be more then one if kid == ''
191
194
192
- def pack (self , payload = None , kid = '' , owner = '' , recv = '' , aud = None , ** kwargs ):
195
+ def pack (self , payload = None , kid = '' , issuer_id = '' , recv = '' , aud = None , ** kwargs ):
193
196
"""
194
197
195
198
:param payload: Information to be carried as payload in the JWT
196
199
:param kid: Key ID
197
- :param owner : The owner of the the keys that are to be used for signing
200
+ :param issuer_id : The owner of the the keys that are to be used for signing
198
201
:param recv: The intended immediate receiver
199
202
:param aud: Intended audience for this JWS/JWE, not expected to
200
203
contain the recipient.
@@ -221,12 +224,12 @@ def pack(self, payload=None, kid='', owner='', recv='', aud=None, **kwargs):
221
224
222
225
_args ['jti' ] = _jti
223
226
224
- if not owner and self .iss :
225
- owner = self .iss
227
+ if not issuer_id and self .iss :
228
+ issuer_id = self .iss
226
229
227
230
if self .sign :
228
231
if self .alg != 'none' :
229
- _key = self .pack_key (owner , kid )
232
+ _key = self .pack_key (issuer_id , kid )
230
233
# _args['kid'] = _key.kid
231
234
else :
232
235
_key = None
@@ -238,9 +241,9 @@ def pack(self, payload=None, kid='', owner='', recv='', aud=None, **kwargs):
238
241
239
242
if _encrypt :
240
243
if not self .sign :
241
- return self ._encrypt (_sjwt , recv , cty = 'json' )
244
+ return self ._encrypt (_sjwt , recv , cty = 'json' , zip = self . zip )
242
245
243
- return self ._encrypt (_sjwt , recv )
246
+ return self ._encrypt (_sjwt , recv , zip = self . zip )
244
247
else :
245
248
return _sjwt
246
249
0 commit comments