2025-04-17 19:25:23 +02:00

41 lines
1.2 KiB
Python

import base64
from Crypto.PublicKey import ECC
from Crypto.PublicKey.ECC import EccKey
from classes.Message import Message
class ReadyMessage(Message):
def __init__(self, name: str, participants: list[tuple[str, EccKey]], random_seed: bytes):
super().__init__()
self.message_fields['type'] = 'ready'
self.set_name(name)
self.set_participants(participants)
self.set_random_seed(random_seed)
def set_name(self, name: str):
self.message_fields['name'] = name
def get_name(self) -> str:
return self.message_fields['name']
def set_participants(self, participants: list[tuple[str, EccKey]]):
self.message_fields['participants'] = []
for name, key in participants:
key = key.public_key().export_key(format='OpenSSH')
self.message_fields['participants'].append((name, key))
def get_participants(self) -> list[tuple[str, EccKey]]:
participant_list = []
for name, key in self.message_fields['participants']:
key = ECC.import_key(key)
participant_list.append((name, key))
return participant_list
def set_random_seed(self, random_seed: bytes):
self.message_fields['random_seed'] = base64.b64encode(random_seed).decode('utf-8')
def get_random_seed(self) -> bytes:
return base64.b64decode(self.message_fields['random_seed'])