mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-10 00:09:04 +00:00
35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
import re
|
|
import sys
|
|
from pathlib import Path
|
|
from tempfile import TemporaryDirectory
|
|
|
|
from cryptography.fernet import Fernet
|
|
|
|
sys.path.append(str(Path(__file__).resolve().parents[1]))
|
|
|
|
from password_manager.encryption import EncryptionManager
|
|
from utils.checksum import verify_and_update_checksum
|
|
|
|
|
|
def test_encryption_checksum_workflow():
|
|
with TemporaryDirectory() as tmpdir:
|
|
tmp_path = Path(tmpdir)
|
|
key = Fernet.generate_key()
|
|
manager = EncryptionManager(key, tmp_path)
|
|
|
|
data = {"value": 1}
|
|
manager.save_json_data(data)
|
|
manager.update_checksum()
|
|
|
|
enc_file = tmp_path / "seedpass_entries_db.json.enc"
|
|
chk_file = tmp_path / "seedpass_entries_db.json_checksum.txt"
|
|
|
|
checksum = chk_file.read_text().strip()
|
|
assert re.fullmatch(r"[0-9a-f]{64}", checksum)
|
|
|
|
manager.save_json_data({"value": 2})
|
|
assert not verify_and_update_checksum(str(enc_file), str(chk_file))
|
|
|
|
manager.update_checksum()
|
|
assert verify_and_update_checksum(str(enc_file), str(chk_file))
|