DecentraSanta/WebServer/static/exchange_client.py
2025-04-20 14:13:29 +02:00

30 lines
1.0 KiB
Python

from typing import Optional, Callable
from Crypto.PublicKey.ECC import EccKey
from SantaExchange.Message import Message
from SantaExchange.MessageHandler import MessageHandler
from SantaExchange.SantasBrain import Brain
from SantaExchange.UserInterface import UserInterface
class ExchangeClient(MessageHandler, UserInterface):
def __init__(self, send_message_function, receive_user_function, announce_recipient_function):
MessageHandler.__init__(self)
UserInterface.__init__(self)
self.send_message_function = send_message_function
self.receive_user_function = receive_user_function
self.announce_recipient_function = announce_recipient_function
self.brain = Brain(self, self)
def send_message(self, message: Message, signing_key: EccKey):
message_string = message.generate_and_sign(signing_key)
self.send_message_function(message_string)
def receive_user(self, name: str):
self.receive_user_function(name)
def announce_recipient(self, name: str, other_info: str):
self.announce_recipient_function(name, other_info)