diff --git a/src/borg/crypto/key.py b/src/borg/crypto/key.py index a45c6c7953..338888b3af 100644 --- a/src/borg/crypto/key.py +++ b/src/borg/crypto/key.py @@ -246,6 +246,8 @@ def unpack_and_verify_manifest(self, data, force_tam_not_required=False): unpacker = get_limited_unpacker("manifest") unpacker.feed(data) unpacked = unpacker.unpack() + if AUTHENTICATED_NO_KEY: + return unpacked, True # True is a lie. if "tam" not in unpacked: if tam_required: raise TAMRequiredError(self.repository._location.canonical_path()) @@ -271,8 +273,6 @@ def unpack_and_verify_manifest(self, data, force_tam_not_required=False): offset = data.index(tam_hmac) data[offset : offset + 64] = bytes(64) tam_key = self._tam_key(tam_salt, context=b"manifest") - if AUTHENTICATED_NO_KEY: - return unpacked, True # True is a lie. calculated_hmac = hmac.digest(tam_key, data, "sha512") if not hmac.compare_digest(calculated_hmac, tam_hmac): raise TAMInvalid()