mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-09 07:48:57 +00:00
test: add fingerprint consistency tests for key derivation
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import logging
|
import logging
|
||||||
import pytest
|
import pytest
|
||||||
|
from utils.fingerprint import generate_fingerprint
|
||||||
from utils.key_derivation import (
|
from utils.key_derivation import (
|
||||||
derive_key_from_password,
|
derive_key_from_password,
|
||||||
derive_key_from_password_argon2,
|
derive_key_from_password_argon2,
|
||||||
@@ -8,14 +9,19 @@ from utils.key_derivation import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_derive_key_deterministic():
|
def test_pbkdf2_fingerprint_affects_key():
|
||||||
password = "correct horse battery staple"
|
password = "correct horse battery staple"
|
||||||
fp = "fp"
|
fp1 = generate_fingerprint("seed one")
|
||||||
key1 = derive_key_from_password(password, fp, iterations=1)
|
fp2 = generate_fingerprint("seed two")
|
||||||
key2 = derive_key_from_password(password, fp, iterations=1)
|
|
||||||
|
key1 = derive_key_from_password(password, fp1, iterations=1)
|
||||||
|
key2 = derive_key_from_password(password, fp1, iterations=1)
|
||||||
|
key3 = derive_key_from_password(password, fp2, iterations=1)
|
||||||
|
|
||||||
assert key1 == key2
|
assert key1 == key2
|
||||||
|
assert key1 != key3
|
||||||
assert len(key1) == 44
|
assert len(key1) == 44
|
||||||
logging.info("Deterministic key derivation succeeded")
|
logging.info("PBKDF2 fingerprint behaviour verified")
|
||||||
|
|
||||||
|
|
||||||
def test_derive_key_empty_password_error():
|
def test_derive_key_empty_password_error():
|
||||||
@@ -37,14 +43,21 @@ def test_derive_index_key_seed_only():
|
|||||||
assert derive_index_key(seed) == derive_index_key_seed_only(seed)
|
assert derive_index_key(seed) == derive_index_key_seed_only(seed)
|
||||||
|
|
||||||
|
|
||||||
def test_argon2_key_deterministic():
|
def test_argon2_fingerprint_affects_key():
|
||||||
pw = "correct horse battery staple"
|
password = "correct horse battery staple"
|
||||||
fp = "fp"
|
fp1 = generate_fingerprint("seed one")
|
||||||
|
fp2 = generate_fingerprint("seed two")
|
||||||
|
|
||||||
k1 = derive_key_from_password_argon2(
|
k1 = derive_key_from_password_argon2(
|
||||||
pw, fp, time_cost=1, memory_cost=8, parallelism=1
|
password, fp1, time_cost=1, memory_cost=8, parallelism=1
|
||||||
)
|
)
|
||||||
k2 = derive_key_from_password_argon2(
|
k2 = derive_key_from_password_argon2(
|
||||||
pw, fp, time_cost=1, memory_cost=8, parallelism=1
|
password, fp1, time_cost=1, memory_cost=8, parallelism=1
|
||||||
)
|
)
|
||||||
|
k3 = derive_key_from_password_argon2(
|
||||||
|
password, fp2, time_cost=1, memory_cost=8, parallelism=1
|
||||||
|
)
|
||||||
|
|
||||||
assert k1 == k2
|
assert k1 == k2
|
||||||
|
assert k1 != k3
|
||||||
assert len(k1) == 44
|
assert len(k1) == 44
|
||||||
|
Reference in New Issue
Block a user