Files
webrtc/secureput/app.py
2023-01-16 01:17:16 -08:00

36 lines
1.1 KiB
Python

import shelve
from uuid import uuid4
from socket import gethostname
import json
import pyqrcode
from secureput.secret import generate_secret_key
class App:
def __init__(self):
self.config = shelve.open("secureput_identity.shelve")
self.__init_config_default("deviceName", lambda: gethostname())
self.__init_config_default("deviceUUID", lambda: str(uuid4()))
self.__init_config_default("accountUUID", lambda: None)
def __init_config_default(self, key, default_value_lambda):
try:
self.config[key]
except KeyError:
self.config[key] = default_value_lambda()
def paired(self):
return self.config["accountUUID"] != None
def gen_pair_info(self):
pairing = {}
pairing["secret"] = generate_secret_key()
pairing["uuid"] = self.config["deviceUUID"]
self.config["deviceSecret"] = pairing["secret"]
url = pyqrcode.create(json.dumps(pairing))
print(url.terminal(quiet_zone=1))
if __name__ == "__main__":
app = App()
print(app.config["deviceName"])
print(app.config["deviceUUID"])
print(app.gen_pair_info())