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

34 lines
974 B
Python

import base64
from Crypto.PublicKey import ECC
from Crypto.PublicKey.ECC import EccKey
from classes.Message import Message
class IntroductionMessage(Message):
def __init__(self, name: str, public_key: EccKey, random_seed_commit: bytes):
super().__init__()
self.message_fields['type'] = 'introduction'
self.set_name(name)
self.set_seed_commit(random_seed_commit)
self.set_key(public_key)
def get_name(self) -> str:
return self.message_fields['name']
def set_name(self, name: str):
self.message_fields['name'] = name
def get_seed_commit(self) -> bytes:
return base64.b64decode(self.message_fields['seed_commit'])
def set_seed_commit(self, seed_commit: bytes):
self.message_fields['seed_commit'] = base64.b64encode(seed_commit).decode('utf-8')
def get_key(self) -> EccKey:
return ECC.import_key(self.message_fields['key'])
def set_key(self, key: EccKey):
self.message_fields['key'] = key.public_key().export_key(format="OpenSSH").strip()