22 lines
692 B
Python
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)
|