tests/test_kdf.py
1007 B · 31 lines · python Raw
1 """Tests for PBKDF2 key derivation."""
2
3 from __future__ import annotations
4
5 from pqc_agent_wallet.kdf import derive_key_from_passphrase
6
7
8 def test_same_inputs_produce_same_key() -> None:
9 salt = b"\x01" * 16
10 k1 = derive_key_from_passphrase("hunter2", salt, iterations=1000)
11 k2 = derive_key_from_passphrase("hunter2", salt, iterations=1000)
12 assert k1 == k2
13
14
15 def test_different_salt_produces_different_key() -> None:
16 k1 = derive_key_from_passphrase("hunter2", b"\x01" * 16, iterations=1000)
17 k2 = derive_key_from_passphrase("hunter2", b"\x02" * 16, iterations=1000)
18 assert k1 != k2
19
20
21 def test_different_passphrase_produces_different_key() -> None:
22 salt = b"\x01" * 16
23 k1 = derive_key_from_passphrase("hunter2", salt, iterations=1000)
24 k2 = derive_key_from_passphrase("hunter3", salt, iterations=1000)
25 assert k1 != k2
26
27
28 def test_default_length_is_32_bytes() -> None:
29 k = derive_key_from_passphrase("hunter2", b"\x01" * 16, iterations=1000)
30 assert len(k) == 32
31