From 05d7ee9ed8e5cbd3cac137bbc1d42cf8eb995565 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Sun, 24 Apr 2022 21:55:41 +0200 Subject: [PATCH 1/2] give a more helpful error msg for unsupported encrypted key format, fixes #6561 --- src/borg/crypto/key.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/borg/crypto/key.py b/src/borg/crypto/key.py index 57e8ceed9..50a0a4ed0 100644 --- a/src/borg/crypto/key.py +++ b/src/borg/crypto/key.py @@ -629,8 +629,10 @@ class KeyfileKeyBase(AESKeyBase): unpacker.feed(data) data = unpacker.unpack() enc_key = EncryptedKey(internal_dict=data) - assert enc_key.version == 1 - assert enc_key.algorithm == 'sha256' + if enc_key.version != 1: + raise Error("encrypted key version %d is not supported by this borg version." % enc_key.version) + if enc_key.algorithm != 'sha256': + raise Error("encrypted key algorithm '%s' is not supported by this borg version." % enc_key.algorithm) key = passphrase.kdf(enc_key.salt, enc_key.iterations, 32) data = AES(key, b'\0'*16).decrypt(enc_key.data) if hmac.compare_digest(hmac_sha256(key, data), enc_key.hash): From 25390de2c79e4d996ece4beb30678d7b2b7863b2 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Sun, 24 Apr 2022 22:02:37 +0200 Subject: [PATCH 2/2] give a more helpful error msg for unsupported key format, fixes #6561 --- src/borg/crypto/key.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/borg/crypto/key.py b/src/borg/crypto/key.py index 50a0a4ed0..7a2e73886 100644 --- a/src/borg/crypto/key.py +++ b/src/borg/crypto/key.py @@ -614,7 +614,7 @@ class KeyfileKeyBase(AESKeyBase): data = msgpack.unpackb(data) key = Key(internal_dict=data) if key.version != 1: - raise IntegrityError('Invalid key file header') + raise Error("key version %d is not supported by this borg version.") self.repository_id = key.repository_id self.enc_key = key.enc_key self.enc_hmac_key = key.enc_hmac_key