M2-PT-DRP/source/behaviors/events/RequestKeyEvent.py

22 lines
788 B
Python

from source import packets
from source.behaviors import roles
from source.behaviors.events import base
from source.utils.crypto.type import CipherType
class RequestKeyEvent(base.BaseEvent):
"""
Event reacting to a machine trying to get our secret symmetric key for secure communication
"""
def handle(self, packet: packets.RequestKeyPacket, address: tuple):
# check if we are a master
if not isinstance(self.manager.role, roles.MasterRole):
return
# create a packet containing our secret key
packet = packets.KeyPacket(self.manager.communication.secret_key)
# send it back to the slave
self.manager.communication.send(packet, CipherType.RSA, address)
# TODO(Faraphel): check if we trust the slave ?