mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-08 23:38:49 +00:00
42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
import sys
|
|
from pathlib import Path
|
|
from tempfile import TemporaryDirectory
|
|
|
|
from helpers import create_vault, TEST_SEED, TEST_PASSWORD
|
|
|
|
sys.path.append(str(Path(__file__).resolve().parents[1]))
|
|
|
|
from password_manager.entry_management import EntryManager
|
|
from password_manager.backup import BackupManager
|
|
from password_manager.config_manager import ConfigManager
|
|
|
|
|
|
def test_pgp_key_determinism():
|
|
with TemporaryDirectory() as tmpdir:
|
|
tmp_path = Path(tmpdir)
|
|
vault, enc_mgr = create_vault(tmp_path, TEST_SEED, TEST_PASSWORD)
|
|
cfg_mgr = ConfigManager(vault, tmp_path)
|
|
backup_mgr = BackupManager(tmp_path, cfg_mgr)
|
|
entry_mgr = EntryManager(vault, backup_mgr)
|
|
|
|
idx = entry_mgr.add_pgp_key(
|
|
"pgp", TEST_SEED, key_type="ed25519", user_id="Test"
|
|
)
|
|
key1, fp1 = entry_mgr.get_pgp_key(idx, TEST_SEED)
|
|
key2, fp2 = entry_mgr.get_pgp_key(idx, TEST_SEED)
|
|
|
|
assert fp1 == fp2
|
|
assert key1 == key2
|
|
|
|
# parse returned armored key and verify fingerprint
|
|
from pgpy import PGPKey
|
|
|
|
parsed_key, _ = PGPKey.from_blob(key1)
|
|
assert parsed_key.fingerprint == fp1
|
|
|
|
# ensure the index file stores key_type and user_id
|
|
data = enc_mgr.load_json_data(entry_mgr.index_file)
|
|
entry = data["entries"][str(idx)]
|
|
assert entry["key_type"] == "ed25519"
|
|
assert entry["user_id"] == "Test"
|