Skip to content

Commit 2f2e8cb

Browse files
committed
- mark do_local_der and do_local_jwk as private
- create public version of do_keys (with write lock)
1 parent 670d0bc commit 2f2e8cb

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

src/cryptojwt/key_bundle.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -259,11 +259,11 @@ def __init__(
259259
self.source = None
260260
if isinstance(keys, dict):
261261
if "keys" in keys:
262-
self.do_keys(keys["keys"])
262+
self._do_keys(keys["keys"])
263263
else:
264-
self.do_keys([keys])
264+
self._do_keys([keys])
265265
else:
266-
self.do_keys(keys)
266+
self._do_keys(keys)
267267
else:
268268
self._set_source(source, fileformat)
269269
if self.local:
@@ -290,9 +290,9 @@ def _set_source(self, source, fileformat):
290290

291291
def _do_local(self, kid):
292292
if self.fileformat in ["jwks", "jwk"]:
293-
self.do_local_jwk(self.source)
293+
self._do_local_jwk(self.source)
294294
elif self.fileformat == "der":
295-
self.do_local_der(self.source, self.keytype, self.keyusage, kid)
295+
self._do_local_der(self.source, self.keytype, self.keyusage, kid)
296296

297297
def _local_update_required(self) -> bool:
298298
stat = os.stat(self.source)
@@ -304,7 +304,11 @@ def _local_update_required(self) -> bool:
304304
self.last_local = stat.st_mtime
305305
return True
306306

307+
@keys_writer
307308
def do_keys(self, keys):
309+
return self._do_keys(keys)
310+
311+
def _do_keys(self, keys):
308312
"""
309313
Go from JWK description to binary keys
310314
@@ -366,7 +370,7 @@ def do_keys(self, keys):
366370

367371
self.last_updated = time.time()
368372

369-
def do_local_jwk(self, filename):
373+
def _do_local_jwk(self, filename):
370374
"""
371375
Load a JWKS from a local file
372376
@@ -380,14 +384,14 @@ def do_local_jwk(self, filename):
380384
with open(filename) as input_file:
381385
_info = json.load(input_file)
382386
if "keys" in _info:
383-
self.do_keys(_info["keys"])
387+
self._do_keys(_info["keys"])
384388
else:
385-
self.do_keys([_info])
389+
self._do_keys([_info])
386390
self.last_local = time.time()
387391
self.time_out = self.last_local + self.cache_time
388392
return True
389393

390-
def do_local_der(self, filename, keytype, keyusage=None, kid=""):
394+
def _do_local_der(self, filename, keytype, keyusage=None, kid=""):
391395
"""
392396
Load a DER encoded file amd create a key from it.
393397
@@ -418,7 +422,7 @@ def do_local_der(self, filename, keytype, keyusage=None, kid=""):
418422
if kid:
419423
key_args["kid"] = kid
420424

421-
self.do_keys([key_args])
425+
self._do_keys([key_args])
422426
self.last_local = time.time()
423427
self.time_out = self.last_local + self.cache_time
424428
return True
@@ -465,7 +469,7 @@ def do_remote(self):
465469

466470
LOGGER.debug("Loaded JWKS: %s from %s", _http_resp.text, self.source)
467471
try:
468-
self.do_keys(self.imp_jwks["keys"])
472+
self._do_keys(self.imp_jwks["keys"])
469473
except KeyError:
470474
LOGGER.error("No 'keys' keyword in JWKS")
471475
self.ignore_errors_until = time.time() + self.ignore_errors_period
@@ -538,9 +542,9 @@ def update(self):
538542
try:
539543
if self.local:
540544
if self.fileformat in ["jwks", "jwk"]:
541-
updated = self.do_local_jwk(self.source)
545+
updated = self._do_local_jwk(self.source)
542546
elif self.fileformat == "der":
543-
updated = self.do_local_der(self.source, self.keytype, self.keyusage)
547+
updated = self._do_local_der(self.source, self.keytype, self.keyusage)
544548
elif self.remote:
545549
updated = self.do_remote()
546550
except Exception as err:
@@ -840,7 +844,7 @@ def load(self, spec):
840844
"""
841845
_keys = spec.get("keys", [])
842846
if _keys:
843-
self.do_keys(_keys)
847+
self._do_keys(_keys)
844848

845849
for attr, default in self.params.items():
846850
val = spec.get(attr)

0 commit comments

Comments
 (0)