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)