From 6a565c8006093d0a84fe592eb2f8430723e7ee25 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Tue, 10 Jun 2025 22:01:59 +0200 Subject: [PATCH] pathlib refactor key --- src/borg/crypto/key.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/borg/crypto/key.py b/src/borg/crypto/key.py index 454f6449a..08cb284c2 100644 --- a/src/borg/crypto/key.py +++ b/src/borg/crypto/key.py @@ -3,6 +3,7 @@ import hmac import os import textwrap from hashlib import sha256, pbkdf2_hmac +from pathlib import Path from typing import Literal, ClassVar from collections.abc import Callable @@ -642,11 +643,11 @@ class FlexiKey: def _find_key_in_keys_dir(self): id = self.repository.id - keys_dir = get_keys_dir() - for name in os.listdir(keys_dir): - filename = os.path.join(keys_dir, name) + keys_path = Path(get_keys_dir()) + for entry in keys_path.iterdir(): + filename = keys_path / entry.name try: - return self.sanity_check(filename, id) + return self.sanity_check(str(filename), id) except (KeyfileInvalidError, KeyfileMismatchError): pass @@ -668,12 +669,12 @@ class FlexiKey: def _get_new_target_in_keys_dir(self, args): filename = args.location.to_key_filename() - path = filename + path = Path(filename) i = 1 - while os.path.exists(path): + while path.exists(): i += 1 - path = filename + ".%d" % i - return path + path = Path(filename + ".%d" % i) + return str(path) def load(self, target, passphrase): if self.STORAGE == KeyBlobStorage.KEYFILE: