feat: add algorithm interface and registry

This commit is contained in:
2025-11-13 13:11:07 +00:00
parent 18c991181a
commit 5c4371f787
2 changed files with 63 additions and 0 deletions

23
tests/test_algorithms.py Normal file
View File

@@ -0,0 +1,23 @@
import pytest
from algorithms import Algorithm, get_algorithm
def test_algorithm_has_required_methods():
"""Verify Algorithm protocol defines required methods."""
algo = get_algorithm("pbkdf2")
assert hasattr(algo, "hash")
assert hasattr(algo, "verify")
assert hasattr(algo, "identifier")
def test_get_algorithm_returns_pbkdf2():
"""Verify default algorithm is PBKDF2."""
algo = get_algorithm("pbkdf2")
assert algo.identifier == "pbkdf2"
def test_get_algorithm_unknown_raises_error():
"""Verify unknown algorithm raises ValueError."""
with pytest.raises(ValueError, match="Unknown algorithm"):
get_algorithm("unknown")