Files
2026-07-12 14:06:45 +04:00

22 lines
692 B
Python

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)