34 lines
974 B
Python
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()
|