@@ -284,10 +284,10 @@ def _set_source(self, source, fileformat):
284284
285285 def _do_local (self , kid ):
286286 if self .fileformat in ["jwks" , "jwk" ]:
287- self ._do_local_jwk (self .source )
287+ updated , res = self ._do_local_jwk (self .source )
288288 elif self .fileformat == "der" :
289- self ._do_local_der (self .source , self .keytype , self .keyusage , kid )
290- return self . _keys
289+ updated , res = self ._do_local_der (self .source , self .keytype , self .keyusage , kid )
290+ return res
291291
292292 def _local_update_required (self ) -> bool :
293293 stat = os .stat (self .source )
@@ -386,18 +386,19 @@ def _do_local_jwk(self, filename):
386386 :return: True if load was successful or False if file hasn't been modified
387387 """
388388 if not self ._local_update_required ():
389- return False
389+ return False , None
390390
391391 LOGGER .info ("Reading local JWKS from %s" , filename )
392392 with open (filename ) as input_file :
393393 _info = json .load (input_file )
394394 if "keys" in _info :
395- self ._add_jwk_dicts (_info ["keys" ])
395+ res = self .jwk_dicts_as_keys (_info ["keys" ])
396396 else :
397- self ._add_jwk_dicts ([_info ])
397+ res = self .jwk_dicts_as_keys ([_info ])
398+
398399 self .last_local = time .time ()
399400 self .time_out = self .last_local + self .cache_time
400- return True
401+ return True , res
401402
402403 def _do_local_der (self , filename , keytype , keyusage = None , kid = "" ):
403404 """
@@ -409,7 +410,7 @@ def _do_local_der(self, filename, keytype, keyusage=None, kid=""):
409410 :return: True if load was successful or False if file hasn't been modified
410411 """
411412 if not self ._local_update_required ():
412- return False
413+ return False , None
413414
414415 LOGGER .info ("Reading local DER from %s" , filename )
415416 key_args = {}
@@ -430,10 +431,10 @@ def _do_local_der(self, filename, keytype, keyusage=None, kid=""):
430431 if kid :
431432 key_args ["kid" ] = kid
432433
433- self ._add_jwk_dicts ([key_args ])
434+ res = self .jwk_dicts_as_keys ([key_args ])
434435 self .last_local = time .time ()
435436 self .time_out = self .last_local + self .cache_time
436- return True
437+ return True , res
437438
438439 def _do_remote (self ):
439440 """
@@ -553,9 +554,13 @@ def update(self):
553554 try :
554555 if self .local :
555556 if self .fileformat in ["jwks" , "jwk" ]:
556- updated = self ._do_local_jwk (self .source )
557+ updated , k = self ._do_local_jwk (self .source )
558+ if k :
559+ self ._keys .extend (k )
557560 elif self .fileformat == "der" :
558- updated = self ._do_local_der (self .source , self .keytype , self .keyusage )
561+ updated , k = self ._do_local_der (self .source , self .keytype , self .keyusage )
562+ if k :
563+ self ._keys .extend (k )
559564 elif self .remote :
560565 updated = self ._do_remote ()
561566 except Exception as err :
0 commit comments