feat(v2): complete v2 reimplementation

This commit is contained in:
2026-07-31 13:33:39 +02:00
parent 396219e776
commit bd107d6a30
137 changed files with 20737 additions and 155 deletions
+21
View File
@@ -0,0 +1,21 @@
from __future__ import annotations
import os
import pytest
from backup_tool.security.repository_crypto import (
RepositoryKeyError,
decrypt_object,
encrypt_object,
object_aad,
)
def test_encrypted_object_hides_plaintext_and_rejects_tampering() -> None:
key = os.urandom(32)
aad = object_aad("repository", "epoch", "blob", "identity")
stored = encrypt_object(key, aad, b"secret-content")
assert b"secret-content" not in stored
assert decrypt_object(key, aad, stored) == b"secret-content"
with pytest.raises(RepositoryKeyError):
decrypt_object(key, aad, stored[:-1] + bytes([stored[-1] ^ 1]))