@@ -79,7 +79,7 @@ def get_jwt_keys(jwt, keys, use):
79
79
80
80
81
81
class JWT (object ):
82
- def __init__ (self , own_keys , iss = '' , rec_keys = None , lifetime = 0 ,
82
+ def __init__ (self , own_keys = None , iss = '' , rec_keys = None , lifetime = 0 ,
83
83
sign_alg = 'RS256' , encrypt = False , enc_enc = "A128CBC-HS256" ,
84
84
enc_alg = "RSA1_5" ):
85
85
self .own_keys = own_keys
@@ -92,6 +92,15 @@ def __init__(self, own_keys, iss='', rec_keys=None, lifetime=0,
92
92
self .enc_enc = enc_enc
93
93
self .with_jti = False
94
94
95
+ def receiver_keys (self , recv ):
96
+ return self .rec_keys [recv ]
97
+
98
+ def receivers_keys (self ):
99
+ return self .rec_keys
100
+
101
+ def my_keys (self ):
102
+ return self .own_keys
103
+
95
104
def _encrypt (self , payload , recv , cty = 'JWT' ):
96
105
kwargs = {"alg" : self .enc_alg , "enc" : self .enc_enc }
97
106
@@ -100,7 +109,7 @@ def _encrypt(self, payload, recv, cty='JWT'):
100
109
101
110
# use the clients public key for encryption
102
111
_jwe = JWE (payload , ** kwargs )
103
- return _jwe .encrypt (self .rec_keys [ recv ] , context = "public" )
112
+ return _jwe .encrypt (self .receiver_keys ( recv ) , context = "public" )
104
113
105
114
def pack_init (self ):
106
115
"""
@@ -121,7 +130,7 @@ def pack_key(self, owner='', kid=''):
121
130
:param kid: Key ID
122
131
:return: One key
123
132
"""
124
- keys = pick_key (self .own_keys , 'sig' , alg = self .sign_alg , kid = kid )
133
+ keys = pick_key (self .my_keys () , 'sig' , alg = self .sign_alg , kid = kid )
125
134
126
135
if not keys :
127
136
raise NoSuitableSigningKeys ('kid={}' .format (kid ))
@@ -173,7 +182,7 @@ def pack(self, payload=None, kid='', owner='', recv='', **kwargs):
173
182
return _sjwt
174
183
175
184
def _verify (self , rj , token ):
176
- keys = get_jwt_keys (rj .jwt , self .rec_keys , 'sig' )
185
+ keys = get_jwt_keys (rj .jwt , self .receivers_keys () , 'sig' )
177
186
return rj .verify_compact (token , keys )
178
187
179
188
def _decrypt (self , rj , token ):
0 commit comments