feat(v2): complete v2 reimplementation
This commit is contained in:
@@ -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]))
|
||||
Reference in New Issue
Block a user