Initial commit

This commit is contained in:
user
2026-07-12 14:06:45 +04:00
commit a75028d68f
148 changed files with 3275 additions and 0 deletions
@@ -0,0 +1 @@
#
@@ -0,0 +1,21 @@
from core.public_params import PublicParams
from core.participant import Participant
def check_case(prime_modulus, generator, x, y, K_expected):
"""
Строит участников, имитирует обмен и проверяет совпадение ключа с эталоном.
Возвращает: ok (bool), (A, B, K_a, K_b)
"""
params = PublicParams(prime_modulus, generator)
alice = Participant(params, secret=x)
bob = Participant(params, secret=y)
A = alice.public_value
B = bob.public_value
K_a = alice.compute_shared_key(B)
K_b = bob.compute_shared_key(A)
ok = (K_a == K_b == K_expected)
return ok, (A, B, K_a, K_b)
@@ -0,0 +1,13 @@
def format_line(i, A, B, K_a, K_b, ok):
"""
Форматирует вывод строки для теста.
"""
status = "OK" if ok else "FAIL"
return (
f"#{i:>2}: "
f"A={A:>6} "
f"B={B:>6} "
f"K_A={K_a:>6} "
f"K_B={K_b:>6} "
f"-> {status}"
)