56 lines
1.1 KiB
Python
56 lines
1.1 KiB
Python
|
import time
|
||
|
import json
|
||
|
from random import random
|
||
|
|
||
|
class Client:
|
||
|
def __init__(self, ws):
|
||
|
self.new = True
|
||
|
self.ws = ws
|
||
|
self.n = None
|
||
|
self.e = None
|
||
|
|
||
|
|
||
|
def log_prefix(t, client=None):
|
||
|
if client is None:
|
||
|
return str(time.time()) + ' [' + t + ':srv] '
|
||
|
return str(time.time()) + ' [' + t + ':' + str(client['id']) + '] '
|
||
|
|
||
|
|
||
|
def load_msg(message):
|
||
|
try:
|
||
|
msg = json.loads(message)
|
||
|
except:
|
||
|
msg = message
|
||
|
return msg
|
||
|
|
||
|
|
||
|
def load_pub_key(cli, msg):
|
||
|
try:
|
||
|
cli.n = msg['pub_key']['n']
|
||
|
cli.e = msg['pub_key']['e']
|
||
|
return True
|
||
|
except:
|
||
|
print('\tMessage had no attribute pub_key. Failed.')
|
||
|
return False
|
||
|
|
||
|
|
||
|
def gen_comm_msg(to, ident, msg):
|
||
|
message = {
|
||
|
'type':'message',
|
||
|
'to': to,
|
||
|
'id': ident,
|
||
|
'contents': msg
|
||
|
}
|
||
|
return json.dumps(message)
|
||
|
|
||
|
|
||
|
def gen_pub_key_msg(n, e):
|
||
|
message = {
|
||
|
'type': 'pub_key',
|
||
|
'pub_key':{
|
||
|
'n':n,
|
||
|
'e':e
|
||
|
}
|
||
|
}
|
||
|
return json.dumps(message)
|