Push current state to Gitea
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import base64
|
||||
|
||||
from classes.Message import Message
|
||||
|
||||
|
||||
class AnnouncementMessage(Message):
|
||||
def __init__(self, name: str, announcement: bytes):
|
||||
super().__init__()
|
||||
self.message_fields['type'] = 'announcement'
|
||||
self.message_fields['name'] = name
|
||||
self.message_fields['announcement'] = announcement
|
||||
|
||||
def set_name(self, name: str):
|
||||
self.message_fields['name'] = name
|
||||
|
||||
def get_name(self) -> str:
|
||||
return self.message_fields['name']
|
||||
|
||||
def set_announcement(self, announcement: bytes):
|
||||
self.message_fields['announcement'] = base64.b64encode(announcement).decode('utf-8')
|
||||
|
||||
def get_announcement(self) -> bytes:
|
||||
return base64.b64decode(self.message_fields['announcement'])
|
||||
@@ -0,0 +1,33 @@
|
||||
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()
|
||||
@@ -0,0 +1,41 @@
|
||||
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'])
|
||||
@@ -0,0 +1,35 @@
|
||||
import base64
|
||||
|
||||
from classes.Message import Message
|
||||
|
||||
|
||||
class ShuffleMessage(Message):
|
||||
def __init__(self, name: str, cards: list[bytes], stage: str):
|
||||
super().__init__()
|
||||
self.message_fields['type'] = 'shuffle'
|
||||
self.set_name(name)
|
||||
self.set_cards(cards)
|
||||
self.set_stage(stage)
|
||||
|
||||
def set_name(self, name: str):
|
||||
self.message_fields['name'] = name
|
||||
|
||||
def get_name(self) -> str:
|
||||
return self.message_fields['name']
|
||||
|
||||
def set_cards(self, cards: list[bytes]):
|
||||
self.message_fields['cards'] = []
|
||||
for card in cards:
|
||||
self.message_fields['cards'].append(base64.b64encode(card).decode('utf-8'))
|
||||
|
||||
def get_cards(self) -> list[bytes]:
|
||||
cards = []
|
||||
for card in self.message_fields['cards']:
|
||||
cards.append(base64.b64decode(card))
|
||||
return cards
|
||||
|
||||
def set_stage(self, stage: str):
|
||||
self.message_fields['stage'] = stage
|
||||
|
||||
def get_stage(self) -> str:
|
||||
return self.message_fields['stage']
|
||||
Reference in New Issue
Block a user