From 23959eb5bf6c97bca663fc42e0975d3b4a62031c Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Wed, 7 Sep 2016 16:12:01 +0200 Subject: [PATCH] borg.key: include chunk id in exception msgs --- src/borg/crypto/key.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/borg/crypto/key.py b/src/borg/crypto/key.py index 16702c0dc..6c8f6ad37 100644 --- a/src/borg/crypto/key.py +++ b/src/borg/crypto/key.py @@ -366,7 +366,10 @@ class AESKeyBase(KeyBase): data[0] == PassphraseKey.TYPE and isinstance(self, RepoKey)): id_str = bin_to_hex(id) if id is not None else '(unknown)' raise IntegrityError('Chunk %s: Invalid encryption envelope' % id_str) - payload = self.cipher.decrypt(data) + try: + payload = self.cipher.decrypt(data) + except IntegrityError as e: + raise IntegrityError("Chunk %s: Could not decrypt [%s]" % (bin_to_hex(id), str(e))) if not decompress: return payload data = self.decompress(payload) @@ -391,7 +394,7 @@ class AESKeyBase(KeyBase): else: if not (manifest_data[0] == self.TYPE or manifest_data[0] == PassphraseKey.TYPE and isinstance(self, RepoKey)): - raise IntegrityError('Invalid encryption envelope') + raise IntegrityError('Manifest: Invalid encryption envelope') # manifest_blocks is a safe upper bound on the amount of cipher blocks needed # to encrypt the manifest. depending on the ciphersuite and overhead, it might # be a bit too high, but that does not matter.