From 234b9b57666b9f1d7acde93c5a3ff30e9f6817ae Mon Sep 17 00:00:00 2001 From: quadrismegistus Date: Fri, 4 Sep 2020 13:46:22 +0100 Subject: [PATCH] major changes --- api/persona.py | 739 ------------------ backend/caller.py | 205 ----- docs/cryptosystems-Kademlia.png | Bin 0 -> 119714 bytes docs/cryptosystems-Operator.png | Bin 94047 -> 111373 bytes docs/cryptosystems.drawio | 2 +- komrade/__init__.py | 17 + {api => komrade/api}/__init__.py | 0 {api => komrade/api}/api.py | 0 komrade/api/persona.py | 81 ++ {api => komrade/api}/persona0.py | 0 {api => komrade/api}/run.sh | 0 komrade/backend/__init__.py | 0 komrade/backend/caller.py | 93 +++ {backend => komrade/backend}/crypt.py | 9 +- {backend => komrade/backend}/ether.py | 0 komrade/backend/keymaker.py | 205 +++++ {backend => komrade/backend}/keyserver0.py | 0 {backend => komrade/backend}/the_operator.py | 76 +- komrade/frontend/__init__.py | 0 {frontend => komrade/frontend}/app.json | 0 .../frontend}/assets/Hammer_and_sickle.png | Bin .../frontend}/assets/Hammer_and_sickle.xcf | Bin .../frontend}/assets/Strengthen.ttf | Bin .../frontend}/assets/avatar.jpg | Bin .../frontend}/assets/avatars/elon.png | Bin .../frontend}/assets/avatars/marx.png | Bin .../frontend}/assets/avatars/zuck.png | Bin .../frontend}/assets/bg-brightblue.png | Bin .../frontend}/assets/bg-brown.png | Bin .../frontend}/assets/bg-green.png | Bin .../frontend}/assets/bg-greenblue.png | Bin .../frontend}/assets/bg-purple.png | Bin .../frontend}/assets/bg-purple2.png | Bin .../frontend}/assets/bg-russiangreen.png | Bin {frontend => komrade/frontend}/assets/bg.png | Bin .../clenched-fist-vector-publicdomain.eps | Bin .../clenched-fist-vector-publicdomain.xcf | Bin .../frontend}/assets/cover.jpg | Bin .../frontend}/assets/fist.png | Bin .../frontend}/assets/fist.xcf | Bin .../frontend}/assets/fist2.png | Bin .../frontend}/assets/fist3.png | Bin .../frontend}/assets/font.otf | Bin .../frontend}/assets/komrade-peek-2.gif | Bin .../frontend}/assets/komrade-screen-peek.gif | Bin .../komrade-screen-preview-2020-08-23.gif | Bin .../frontend}/assets/komrade.png | Bin .../frontend}/assets/komrade2.png | Bin .../frontend}/assets/komrade2.xcf | Bin .../frontend}/assets/logo (copy).png | Bin .../frontend}/assets/logo.png | Bin .../frontend}/assets/output.png | Bin .../frontend}/assets/overpass-mono-bold.otf | Bin .../frontend}/assets/overpass-mono-light.otf | Bin .../assets/overpass-mono-regular.otf | Bin .../assets/overpass-mono-semibold.otf | Bin .../frontend}/assets/screen-feed.png | Bin .../frontend}/assets/screen-login.png | Bin .../frontend}/assets/screen-post.png | Bin .../frontend}/assets/spiral2.png | Bin .../frontend}/assets/spiral3.png | Bin .../frontend}/assets/spiral3b.png | Bin .../frontend}/assets/spiral4.png | Bin .../frontend}/assets/spiral4b.png | Bin {frontend => komrade/frontend}/config.py | 0 .../etc/examples/kivy_asyncio_example.py | 0 .../frontend}/etc/first_node.py | 0 .../frontend}/etc/icon_preview.py | 0 {frontend => komrade/frontend}/etc/test.py | 0 {frontend => komrade/frontend}/main.py | 0 {frontend => komrade/frontend}/misc.py | 0 {frontend => komrade/frontend}/pub | Bin {frontend => komrade/frontend}/root.kv | 0 {frontend => komrade/frontend}/run.sh | 0 .../frontend}/screens/base.py | 0 .../frontend}/screens/base.pyc | Bin .../frontend}/screens/feed/feed.kv | 0 .../frontend}/screens/feed/feed.py | 0 .../frontend}/screens/login/login.kv | 0 .../frontend}/screens/login/login.py | 0 .../frontend}/screens/messages/messages.kv | 0 .../frontend}/screens/messages/messages.py | 0 .../screens/notifications/notifications.kv | 0 .../screens/notifications/notifications.py | 0 .../frontend}/screens/post/post.kv | 0 .../frontend}/screens/post/post.py | 0 .../frontend}/screens/profile/profile.kv | 0 .../frontend}/screens/profile/profile.py | 0 {frontend => komrade/frontend}/watcher.py | 0 89 files changed, 453 insertions(+), 974 deletions(-) delete mode 100644 api/persona.py delete mode 100644 backend/caller.py create mode 100644 docs/cryptosystems-Kademlia.png create mode 100644 komrade/__init__.py rename {api => komrade/api}/__init__.py (100%) rename {api => komrade/api}/api.py (100%) create mode 100644 komrade/api/persona.py rename {api => komrade/api}/persona0.py (100%) rename {api => komrade/api}/run.sh (100%) create mode 100644 komrade/backend/__init__.py create mode 100644 komrade/backend/caller.py rename {backend => komrade/backend}/crypt.py (92%) rename {backend => komrade/backend}/ether.py (100%) create mode 100644 komrade/backend/keymaker.py rename {backend => komrade/backend}/keyserver0.py (100%) rename {backend => komrade/backend}/the_operator.py (76%) create mode 100644 komrade/frontend/__init__.py rename {frontend => komrade/frontend}/app.json (100%) rename {frontend => komrade/frontend}/assets/Hammer_and_sickle.png (100%) rename {frontend => komrade/frontend}/assets/Hammer_and_sickle.xcf (100%) rename {frontend => komrade/frontend}/assets/Strengthen.ttf (100%) rename {frontend => komrade/frontend}/assets/avatar.jpg (100%) rename {frontend => komrade/frontend}/assets/avatars/elon.png (100%) rename {frontend => komrade/frontend}/assets/avatars/marx.png (100%) rename {frontend => komrade/frontend}/assets/avatars/zuck.png (100%) rename {frontend => komrade/frontend}/assets/bg-brightblue.png (100%) rename {frontend => komrade/frontend}/assets/bg-brown.png (100%) rename {frontend => komrade/frontend}/assets/bg-green.png (100%) rename {frontend => komrade/frontend}/assets/bg-greenblue.png (100%) rename {frontend => komrade/frontend}/assets/bg-purple.png (100%) rename {frontend => komrade/frontend}/assets/bg-purple2.png (100%) rename {frontend => komrade/frontend}/assets/bg-russiangreen.png (100%) rename {frontend => komrade/frontend}/assets/bg.png (100%) rename {frontend => komrade/frontend}/assets/clenched-fist-vector-publicdomain.eps (100%) rename {frontend => komrade/frontend}/assets/clenched-fist-vector-publicdomain.xcf (100%) rename {frontend => komrade/frontend}/assets/cover.jpg (100%) rename {frontend => komrade/frontend}/assets/fist.png (100%) rename {frontend => komrade/frontend}/assets/fist.xcf (100%) rename {frontend => komrade/frontend}/assets/fist2.png (100%) rename {frontend => komrade/frontend}/assets/fist3.png (100%) rename {frontend => komrade/frontend}/assets/font.otf (100%) rename {frontend => komrade/frontend}/assets/komrade-peek-2.gif (100%) rename {frontend => komrade/frontend}/assets/komrade-screen-peek.gif (100%) rename {frontend => komrade/frontend}/assets/komrade-screen-preview-2020-08-23.gif (100%) rename {frontend => komrade/frontend}/assets/komrade.png (100%) rename {frontend => komrade/frontend}/assets/komrade2.png (100%) rename {frontend => komrade/frontend}/assets/komrade2.xcf (100%) rename {frontend => komrade/frontend}/assets/logo (copy).png (100%) rename {frontend => komrade/frontend}/assets/logo.png (100%) rename {frontend => komrade/frontend}/assets/output.png (100%) rename {frontend => komrade/frontend}/assets/overpass-mono-bold.otf (100%) rename {frontend => komrade/frontend}/assets/overpass-mono-light.otf (100%) rename {frontend => komrade/frontend}/assets/overpass-mono-regular.otf (100%) rename {frontend => komrade/frontend}/assets/overpass-mono-semibold.otf (100%) rename {frontend => komrade/frontend}/assets/screen-feed.png (100%) rename {frontend => komrade/frontend}/assets/screen-login.png (100%) rename {frontend => komrade/frontend}/assets/screen-post.png (100%) rename {frontend => komrade/frontend}/assets/spiral2.png (100%) rename {frontend => komrade/frontend}/assets/spiral3.png (100%) rename {frontend => komrade/frontend}/assets/spiral3b.png (100%) rename {frontend => komrade/frontend}/assets/spiral4.png (100%) rename {frontend => komrade/frontend}/assets/spiral4b.png (100%) rename {frontend => komrade/frontend}/config.py (100%) rename {frontend => komrade/frontend}/etc/examples/kivy_asyncio_example.py (100%) rename {frontend => komrade/frontend}/etc/first_node.py (100%) rename {frontend => komrade/frontend}/etc/icon_preview.py (100%) rename {frontend => komrade/frontend}/etc/test.py (100%) rename {frontend => komrade/frontend}/main.py (100%) rename {frontend => komrade/frontend}/misc.py (100%) rename {frontend => komrade/frontend}/pub (100%) rename {frontend => komrade/frontend}/root.kv (100%) rename {frontend => komrade/frontend}/run.sh (100%) rename {frontend => komrade/frontend}/screens/base.py (100%) rename {frontend => komrade/frontend}/screens/base.pyc (100%) rename {frontend => komrade/frontend}/screens/feed/feed.kv (100%) rename {frontend => komrade/frontend}/screens/feed/feed.py (100%) rename {frontend => komrade/frontend}/screens/login/login.kv (100%) rename {frontend => komrade/frontend}/screens/login/login.py (100%) rename {frontend => komrade/frontend}/screens/messages/messages.kv (100%) rename {frontend => komrade/frontend}/screens/messages/messages.py (100%) rename {frontend => komrade/frontend}/screens/notifications/notifications.kv (100%) rename {frontend => komrade/frontend}/screens/notifications/notifications.py (100%) rename {frontend => komrade/frontend}/screens/post/post.kv (100%) rename {frontend => komrade/frontend}/screens/post/post.py (100%) rename {frontend => komrade/frontend}/screens/profile/profile.kv (100%) rename {frontend => komrade/frontend}/screens/profile/profile.py (100%) rename {frontend => komrade/frontend}/watcher.py (100%) diff --git a/api/persona.py b/api/persona.py deleted file mode 100644 index 7471c40..0000000 --- a/api/persona.py +++ /dev/null @@ -1,739 +0,0 @@ -import os -import asyncio -from pythemis.skeygen import KEY_PAIR_TYPE, GenerateKeyPair -from pythemis.smessage import SMessage, ssign, sverify -from pythemis.exception import ThemisError -from pythemis.scell import SCellSeal - -from base64 import b64decode,b64encode -# from kademlia.network import Server -import os,time,sys,logging -from pathlib import Path -import requests - -sys.path.append('../p2p') -BSEP=b'||||||||||' -BSEP2=b'@@@@@@@@@@' -BSEP3=b'##########' -NODE_SLEEP_FOR=1 - -P2P_PREFIX=b'/persona/' -P2P_PREFIX_POST=b'/msg/' -P2P_PREFIX_INBOX=b'/inbox/' -P2P_PREFIX_OUTBOX=b'/outbox/' - -WORLD_PUB_KEY = b'VUVDMgAAAC1z53KeApQY4RICK5k0nXnnS+K17veIFMPlFKo7mqnRhTZDhAmG' -WORLD_PRIV_KEY = b'UkVDMgAAAC26HXeGACxZUoKYKlZ7sDmVoLwffNj3CrdqoPrE94+2ysfhufmP' - -KOMRADE_PUB_KEY = b'VUVDMgAAAC09uo+wAgu/V9xyvMkMDbOQEk1ssOrFADaiyTzfwVjE6o8FHoil' -KOMRADE_PRIV_KEY = b'UkVDMgAAAC33fFiaAIpmQewjkYndzMcMkj1mLy/lE4RXJQzIlUN94tyC5g29' - -DEBUG = True -UPLOAD_DIR = 'uploads/' -ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif'} - -PORT_LISTEN = 5639 -NODE_SLEEP_FOR=1 -NODES_PRIME = [("128.232.229.63",8467)] -KEYSERVER_ADDR = 'komrade.app' #'128.232.229.63' -KEYSERVER_PORT = 5566 - - -KEY_PATH = os.path.join(os.path.expanduser('~'),'.komrade') -KEY_PATH_PUB = os.path.join(KEY_PATH,'.locs') -KEY_PATH_PRIV = os.path.join(KEY_PATH,'.keys') - -for x in [KEY_PATH,KEY_PATH_PUB,KEY_PATH_PRIV]: - if not os.path.exists(x): os.makedirs(x) - -WORLD_PRIV_KEY_FN = os.path.join(KEY_PATH_PRIV,'.world.key') -WORLD_PUB_KEY_FN = os.path.join(KEY_PATH_PUB,'.world.loc') -KOMRADE_PRIV_KEY_FN = os.path.join(KEY_PATH_PRIV,'.komrade.key') -KOMRADE_PUB_KEY_FN = os.path.join(KEY_PATH_PUB,'.komrade.loc') - - -def check_world_keys(): - if not os.path.exists(WORLD_PRIV_KEY_FN): - with open(WORLD_PRIV_KEY_FN,'wb') as of: - of.write(WORLD_PRIV_KEY) - - if not os.path.exists(WORLD_PUB_KEY_FN): - with open(WORLD_PUB_KEY_FN,'wb') as of: - of.write(WORLD_PUB_KEY) - - if not os.path.exists(KOMRADE_PRIV_KEY_FN): - with open(KOMRADE_PRIV_KEY_FN,'wb') as of: - of.write(KOMRADE_PRIV_KEY) - - if not os.path.exists(KOMRADE_PUB_KEY_FN): - with open(KOMRADE_PUB_KEY_FN,'wb') as of: - of.write(KOMRADE_PUB_KEY) - -# check_world_keys() - - -## CONNECTING - - - - -## utils - -def get_random_id(): - import uuid - return uuid.uuid4().hex - -def get_random_binary_id(): - import base64 - idstr = get_random_id() - return base64.b64encode(idstr.encode()) - - -def logger(): - import logging - handler = logging.StreamHandler() - formatter = logging.Formatter('[%(asctime)s]\n%(message)s\n') - handler.setFormatter(formatter) - logger = logging.getLogger(__file__) - logger.addHandler(handler) - logger.setLevel(logging.DEBUG) - return logger - -LOG = None - -def log(*x): - global LOG - if not LOG: LOG=logger().debug - - tolog=' '.join(str(_) for _ in x) - LOG(tolog) - - - -class NetworkStillConnectingError(OSError): pass - - - - - - - -class Persona(object): - - def __init__(self,name,api=None,node=None,create_if_missing=True): - self.name=name - self.log=log - self.privkey=None - self.pubkey=None - self.api=api - - self.can_receive = False - self.can_send = False - # self.can_login = False - self.external_keys_loaded = False - - - self.pubkey_enc = None - self.pubkey_decr = None - - # self._node=node - self.create_if_missing=create_if_missing - # self.log(f'>> Persona.__init__(name={name},create_if_missing={create_if_missing})') - - # load at least any local keys (non-async) - self.find_keys_local() - # self.login_or_register() - - - - def __repr__(self): - #pkeystr = '+loc' if self.has_public_key() else '' - #privkeystr = ' +key' if self.has_private_key() else '' - # ptypestr='acccount' if self.has_private_key() else 'contact' - ptypestr='loc' if not self.has_private_key() else 'keyloc' - - return f'{self.name} ({ptypestr})' - - def get_keyserver_pubkey(self): - Q=f'http://{KEYSERVER_ADDR}:{KEYSERVER_PORT}/pub' - - r = self.api.request(Q) - return r.content - # self.log('r =',r,b64encode(r.content)) - # pubkey_b64 = b64encode(r.content) - # return pubkey_b64 - - def get_externally_signed_pubkey(self): - Q=f'http://{KEYSERVER_ADDR}:{KEYSERVER_PORT}/get/{self.name}' - self.log('Q:',Q) - r = self.api.request(Q) - package_b64 = r.content - package = b64decode(package_b64) - self.log('package <--',package) - if not package: return (b'',b'',b'') - return package.split(BSEP) - # pubkey_b64, signed_pubkey_b64, server_signed_pubkey_b64 = package.split(BSEP) - - # signed_pubkey = b64encode(r.content) - # return (b64encode(pubkey), b64encode(signed_pubkey)) - - def set_externally_signed_pubkey(self): - import requests - Q=f'http://{KEYSERVER_ADDR}:{KEYSERVER_PORT}/add/{self.name}' #/{name}/{key} - - package = self.pubkey_b64 + BSEP + self.signed_pubkey_b64 - self.log('set_externally_signed_pubkey package -->',package) - - r = requests.post(Q, data=package) #{'name':self.name,'key':self.pubkey_b64}) - return r - - def has_private_key(self): - return self.privkey is not None - - def has_public_key(self): - return self.pubkey is not None - - - @property - async def node(self): - node = await self.api.node - return node - - - def load_keyserver_pubkey(self): - self.keyserver_pubkey_b64 = self.get_keyserver_pubkey() - self.keyserver_pubkey = b64decode(self.keyserver_pubkey_b64) - self.log('keyserver_pubkey =',self.keyserver_pubkey) - return self.keyserver_pubkey - - def load_external_keys(self): - if self.external_keys_loaded: return - - self.pubkey_ext_b64, self.signed_pubkey_ext_b64, self.server_signed_pubkey_ext_b64 = self.get_externally_signed_pubkey() - self.log('pubkey_ext_b64 =',self.pubkey_ext_b64) - self.log('signed_pubkey_ext_b64 =',self.signed_pubkey_ext_b64) - self.log('server_signed_pubkey_ext_b64 =',self.server_signed_pubkey_ext_b64) - self.external_keys_loaded = True - - def keyserver_name_exists(self): - user_missing = (self.pubkey_ext_b64 is b'' or self.signed_pubkey_ext_b64 is b'' or self.server_signed_pubkey_ext_b64 is b'') - return not user_missing - - - def meet(self,save_loc=True): - pubkey_ext = b64decode(self.pubkey_keyserver_verified) - self.log('pubkey_ext',pubkey_ext) - self.pubkey=pubkey_ext - self.log('setting self.pubkey to external value:',self.pubkey) - self.log('self.pubkey_64',self.pubkey_b64) - self.log('keyserver_verified',self.pubkey_keyserver_verified) - - with open(self.key_path_pub,'wb') as of: - of.write(self.pubkey_keyserver_verified) - - return {'success':'Met person as acquaintance'} - - def register(self): - # register - if self.create_if_missing: - self.gen_keys() - res = self.set_externally_signed_pubkey() - self.log('set_externally_signed_pubkey res =',res) - if res is None: - return {'error':'Could not set externally signed pubkey'} - else: - return {'success':'Created new pubkey'} - else: - return {'error':'No public key externally, but create_if_missing==False'} - - - # login, meet, or register - def boot(self): - # keyserver active? - keyserver_pubkey = self.keyserver_pubkey = self.load_keyserver_pubkey() - if keyserver_pubkey is None: - return {'error':'Cannot conntact keyserver'} - - # load external keys - self.load_external_keys() - - # user exists... - if self.keyserver_name_exists(): - - # if I claim to be this person - if self.privkey and self.pubkey_decr: - attempt = self.login() - self.log('login attempt ->',attempt) - return attempt - - # otherwise just meet them - attempt = self.meet() - self.log('meet attempt ->',attempt) - return attempt - - # user does not exist - attempt = self.register() - self.log('register attempt -->',attempt) - return attempt - - @property - def key_path_pub(self): - return os.path.join(KEY_PATH_PUB,'.'+self.name+'.loc') - - @property - def key_path_pub_enc(self): - return os.path.join(KEY_PATH_PUB,'.'+self.name+'.loc.box') - - - @property - def key_path_priv(self): - return os.path.join(KEY_PATH_PRIV,'.'+self.name+'.key') - - @property - def name_b64(self): - return b64encode(self.name.encode()) - - - @property - def privkey_b64(self): - return b64encode(self.privkey) - - @property - def pubkey_b64(self): - return b64encode(self.pubkey) if self.pubkey else b'' - - @property - def signed_pubkey_b64(self): - return self.sign(self.pubkey_b64) - # return self.encrypt(self.pubkey_b64, self.pubkey_b64) - - ## genearating keys - - # def gen_keys1(self): - # self.log('gen_keys()') - # keypair = GenerateKeyPair(KEY_PAIR_TYPE.EC) - # self.privkey = keypair.export_private_key() - # self.pubkey = keypair.export_public_key() - - # self.log(f'priv_key saved to {self.key_path_priv}') - # with open(self.key_path_priv, "wb") as private_key_file: - # private_key_file.write(self.privkey_b64) - - # with open(self.key_path_pub, "wb") as public_key_file: - # # save SIGNED public key - # public_key_file.write(self.pubkey_b64) - - # with open(self.key_path_pub_enc,'wb') as signed_public_key_file: - # # self.log('encrypted_pubkey_b64 -->',self.encrypted_pubkey_b64) - # pubkey_b64 = b64encode(self.pubkey) - # self.log('pubkey',self.pubkey) - # self.log('pubkey_b64',pubkey_b64) - - # encrypted_pubkey_b64 = self.encrypt(pubkey_b64, pubkey_b64, KOMRADE_PRIV_KEY) - # self.log('encrypted_pubkey_b64 -->',encrypted_pubkey_b64) - - # signed_public_key_file.write(encrypted_pubkey_b64) - - def gen_keys(self,passphrase=None): - """ - Generate private/public key pair - Secure that with passphrase - """ - - ## Generate key pair - self.log('gen_keys()') - keypair = GenerateKeyPair(KEY_PAIR_TYPE.EC) - self.privkey = keypair.export_private_key() - self.pubkey = keypair.export_public_key() - - ## Secure with passphrase - if passphrase is None: passphrase=input('Please protect account with passphrase:\n') - cell = SCellSeal(passphrase=passphrase) - keypair_b = self.privkey + BSEP + self.pubkey - - keypair_b_encr = cell.encrypt(keypair_b) - - - self.log(f'priv_key saved to {self.key_path_priv}') - with open(self.key_path_priv, "wb") as private_key_file: - private_key_file.write(self.privkey_b64) - - with open(self.key_path_pub, "wb") as public_key_file: - # save SIGNED public key - public_key_file.write(self.pubkey_b64) - - with open(self.key_path_pub_enc,'wb') as signed_public_key_file: - # self.log('encrypted_pubkey_b64 -->',self.encrypted_pubkey_b64) - pubkey_b64 = b64encode(self.pubkey) - self.log('pubkey',self.pubkey) - self.log('pubkey_b64',pubkey_b64) - - encrypted_pubkey_b64 = self.encrypt(pubkey_b64, pubkey_b64, KOMRADE_PRIV_KEY) - self.log('encrypted_pubkey_b64 -->',encrypted_pubkey_b64) - - signed_public_key_file.write(encrypted_pubkey_b64) - - - ## loading keys from disk - - def find_keys_local(self): - self.log(f'find_keys_local(path_pub={self.key_path_pub}, path_priv={self.key_path_priv})') - - if os.path.exists(self.key_path_priv): - with open(self.key_path_priv) as priv_f: - self.privkey=b64decode(priv_f.read()) - - # Load from encrypted? - if os.path.exists(self.key_path_pub_enc) and self.privkey: - with open(self.key_path_pub_enc) as pub_f: - self.pubkey_enc=pub_f.read() - self.pubkey_decr=self.decrypt(self.pubkey_enc, KOMRADE_PUB_KEY) - # self.pubkey=self.pubkey_decr - self.log('loaded self.pubkey from enc',self.pubkey) - self.can_receive = True - self.can_send = True - - # load from nonencrypted pubkey? - if os.path.exists(self.key_path_pub): - with open(self.key_path_pub) as pub_f: - self.pubkey=b64decode(pub_f.read()) - self.log('loaded self.pubkey from UNenc',self.pubkey) - self.can_receive = True - - @property - def pubkey_keyserver_verified(self): - # test if remote data agrees - if not hasattr(self,'_keyserver_verified'): - self._keyserver_verified = self.verify(self.server_signed_pubkey_ext_b64, self.keyserver_pubkey_b64) - return self._keyserver_verified - - def login(self): - # test if local data present - if not self.pubkey or not self.pubkey_decr: - return {'error':'Public keys not present'} - - # test if local data agrees - self.log('self.pubkey',self.pubkey_b64) - self.log('self.pubkey_decr',self.pubkey_decr) - if self.pubkey_b64 != self.pubkey_decr: - return {'error':'Public keys do not match'} - - # test if remote data agrees - keyserver_verified = self.pubkey_keyserver_verified - if keyserver_verified is None: - return {'error':'Keyserver verification failed'} - - # test if pubkey match - enc_match = self.pubkey_decr == keyserver_verified - if enc_match: - return {'success':'Keys matched'} - return {'error':'Keys did not match'} - - - - - - - ## E/D/S/V - - def encrypt(self,msg_b64,for_pubkey_b64, privkey_b64=None): - self.log('encrypt()',msg_b64,for_pubkey_b64,privkey_b64) - - privkey = b64decode(privkey_b64) if privkey_b64 else self.privkey - # handle verification failure - for_pubkey = b64decode(for_pubkey_b64) - encrypted_msg = SMessage(privkey, for_pubkey).wrap(msg_b64) - return b64encode(encrypted_msg) - - def decrypt(self,encrypted_msg_b64,from_pubkey_b64, privkey_b64=None): - privkey = b64decode(privkey_b64) if privkey_b64 else self.privkey - - # handle verification failure - from_pubkey = b64decode(from_pubkey_b64) - encrypted_msg = b64decode(encrypted_msg_b64) - decrypted_msg = SMessage(privkey, from_pubkey).unwrap(encrypted_msg) - return decrypted_msg - - def sign(self,msg_b64, privkey=None): - if not privkey: privkey=self.privkey - signed_msg = b64encode(ssign(privkey, msg_b64)) - return signed_msg - - def verify(self,signed_msg_b64,pubkey_b64=None): - if pubkey_b64 is None: pubkey_b64=self.pubkey_b64 - - self.log('verify() signed_msg_b64 =',signed_msg_b64) - self.log('verify() pubkey_b64 =',pubkey_b64) - signed_msg = b64decode(signed_msg_b64) - public_key = b64decode(pubkey_b64) - - self.log('verify() signed_msg =',signed_msg) - self.log('verify() public_key =',public_key) - - try: - verified_msg = sverify(public_key, signed_msg) - return verified_msg - except ThemisError as e: - print('!!',e) - return None - - - - - @property - def uri_inbox(self): - return P2P_PREFIX_INBOX+self.name.encode() - - @property - def uri_outbox(self): - return P2P_PREFIX_OUTBOX+self.name.encode() - - @property - def app_pubkey_b64(self): - return KOMRADE_PUB_KEY - - - - - ## POSTING/SENDING MSGS - - async def post(self,encrypted_payload_b64,to_person): - # double wrap - double_encrypted_payload = self.encrypt(encrypted_payload_b64, to_person.pubkey_b64, KOMRADE_PRIV_KEY) - self.log('double_encrypted_payload =',double_encrypted_payload) - - post_id = get_random_binary_id() #get_random_id().encode() - node = await self.node - - uri_post = P2P_PREFIX_POST + post_id - res = await node.set(uri_post, double_encrypted_payload) - self.log('result of post() =',res) - - return uri_post - - async def send(self,msg_b,to,from_person=None): - """ - 1) [Encrypted payload:] - 1) Timestamp - 2) Public key of sender - 3) Public key of recipient - 4) AES-encrypted Value - 2) [Decryption tools] - 1) AES-decryption key - 2) AES decryption IV value - 5) Signature of value by author - """ - - if type(msg_b)==str: msg_b=msg_b.encode() - msg_b64=b64encode(msg_b) - - # encrypt and sign - to_person = to - if from_person is None: from_person = self - encrypted_payload = from_person.encrypt(msg_b64, to_person.pubkey_b64) - signed_encrypted_payload = from_person.sign(encrypted_payload) - - # package - time_b64 = b64encode(str(time.time()).encode()) - WDV_b64 = b64encode(BSEP.join([ - signed_encrypted_payload, - from_person.pubkey_b64, - from_person.name_b64, - time_b64])) - self.log('WDV_b64 =',WDV_b64) - - # post - post_id = await self.post(WDV_b64, to_person) - self.log('post_id <-',post_id) - - # add to inbox - res = await to_person.add_to_inbox(post_id) - self.log('add_to_inbox <-',res) - - # add to outbox? - # pass - - - - - - - - - - - async def load_inbox(self,decrypt_msg_uri=False,last=None): - node = await self.node - encrypted_inbox_idstr_b64 = await node.get(self.uri_inbox) - self.log('encrypted_inbox_idstr_b64 =',encrypted_inbox_idstr_b64) - if encrypted_inbox_idstr_b64 is None: return [] - - # inbox_idstr = self.decrypt(encrypted_inbox_idstr_b64, self.app_pubkey_b64) - # self.log('decrypted inbox_idstr =',inbox_idstr) - # decrypt! - - encrypted_inbox_idstr = b64decode(encrypted_inbox_idstr_b64) - self.log('encrypted_inbox_idstr =',encrypted_inbox_idstr) - - inbox_ids = encrypted_inbox_idstr.split(BSEP) if encrypted_inbox_idstr is not None else [] - self.log('inbox_ids =',inbox_ids) - - if decrypt_msg_uri: - inbox_ids = [self.decrypt(enc_msg_id_b64,KOMRADE_PUB_KEY) for enc_msg_id_b64 in inbox_ids] - self.log('inbox_ids decrypted =',inbox_ids) - - return inbox_ids[:last] - - async def add_to_inbox(self,msg_uri,inbox_sofar=None): - # encrypt msg id so only inbox owner can resolve the pointer - self.log('unencrypted msg uri:',msg_uri) - encrypted_msg_uri = self.encrypt(msg_uri, self.pubkey_b64, KOMRADE_PRIV_KEY) - self.log('encrypted msg uri:',encrypted_msg_uri) - - # get current inbox - if inbox_sofar is None: inbox_sofar=await self.load_inbox() - self.log('inbox_sofar:',inbox_sofar) - - # add new value - new_inbox = inbox_sofar + [encrypted_msg_uri] - new_inbox_b = BSEP.join(new_inbox) - self.log('new_inbox_b:',new_inbox_b) - - new_inbox_b64 = b64encode(new_inbox_b) - - self.log('new_inbox_b64:',new_inbox_b64) - - # set on net - node = await self.node - await node.set(self.uri_inbox,new_inbox_b64) - - new_length = len(new_inbox) - return {'success':'Inbox length increased to %s' % new_length} - #return {'error':'Could not append data'} - - - async def add_to_outbox(self): - """ - Do not store on server! - """ - pass - - async def read_inbox(self,uri_inbox=None): - if uri_inbox is None: uri_inbox = P2P_PREFIX_INBOX+self.name.encode() - node = await self.node - inbox_ids = await node.get(uri_inbox) - if inbox_ids is not None: - inbox_ids = inbox_ids.split(BSEP) - self.log('found inbox IDs:',inbox_ids) - - msgs_toread = [self.read_msg(msg_id) for msg_id in inbox_ids] - msgs = await asyncio.gather(*msgs_toread) - self.log('read_inbox() msgs = ',msgs) - return msgs - return [] - - async def read_outbox(self,uri_outbox=None): - if uri_outbox is None: uri_outbox = P2P_PREFIX_OUTBOX+self.name.encode() - return await self.read_inbox(uri_outbox) - - - async def read_msg(self,msg_id): - self.log(f'Persona.read_msg({msg_id}) ?') - uri_msg=P2P_PREFIX_POST+msg_id - node = await self.node - - res = await node.get(uri_msg) - self.log('res = ',res) - if res is not None: - double_encrypted_payload_b64 = res - single_encrypted_payload = self.decrypt(double_encrypted_payload_b64, KOMRADE_PUB_KEY) - self.log('GOT ENRYPTED PAYLOAD:',single_encrypted_payload) - - signed_encrypted_payload_b64,from_pubkey_b64,name_b64,time_b64 = single_encrypted_payload.split(BSEP) - self.log('signed_encrypted_payload =',signed_encrypted_payload_b64) - self.log('from_pubkey_b64 =',from_pubkey_b64) - self.log('time_b64 =',time_b64) - - from_name = b64decode(name_b64).decode() - self.log('from_name =',from_name) - timestamp = b64decode(time_b64).decode() - tmpP = Persona(from_name) - await tmpP.boot() - from_pubkey_b64_acc_to_name = tmpP.pubkey_b64 - assert from_pubkey_b64==from_pubkey_b64_acc_to_name - - encrypted_payload_b64 = self.verify(signed_encrypted_payload_b64, from_pubkey_b64) - self.log('encrypted_payload_b64 =',encrypted_payload_b64) - - payload = self.decrypt(encrypted_payload_b64, from_pubkey_b64) - self.log('payload =',payload) - return { - 'success':True, - 'content':payload, - 'from_name':from_name, - 'from_pubkey_b64':from_pubkey_b64, - 'timestamp':timestamp - } - return {'error':'Unknown'} - - - -def run_multiple_tasks(tasks): - async def _go(tasks): - res = await asyncio.gather(*tasks, return_exceptions=True) - return res - return asyncio.get_event_loop().run_until_complete(_go(tasks)) - -async def main(): - - # start node - from kademlia.network import Server - #from p2p_api import - PORT_LISTEN = 5969 - - # NODES_PRIME = [("128.232.229.63",8467), ("68.66.241.111",8467)] - NODES_PRIME = [("128.232.229.63",8467)] - - node = Server(log=log) - await node.listen(PORT_LISTEN) - await node.bootstrap(NODES_PRIME) - - marx = Persona('marx',node=node) - elon = Persona('elon2',node=node) - world = Persona('world',node=node) - await world.boot() - - - await marx.boot() - await elon.boot() - - # await marx.send(b'Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! Secret message 2! ',to=elon) - - - # await elon.read_inbox() - - await marx.send(b'A specter is haunting the internet',to=world) - await elon.send(b'My rockets explode and so will your mind',to=world) - await elon.send(b'My rockets explode and so will your mind',to=world) - - await world.read_inbox() - - return True - - -if __name__=='__main__': - asyncio.run(main()) - - - - - - - - - - - - - - diff --git a/backend/caller.py b/backend/caller.py deleted file mode 100644 index 19e16ca..0000000 --- a/backend/caller.py +++ /dev/null @@ -1,205 +0,0 @@ -from pythemis.skeygen import KEY_PAIR_TYPE, GenerateKeyPair -from pythemis.smessage import SMessage, ssign, sverify -from pythemis.skeygen import GenerateSymmetricKey -from pythemis.scell import SCellSeal -from pythemis.exception import ThemisError -import getpass,os -from crypt import Crypt -from the_operator import TheOperator - -# paths -PATH_KOMRADE = os.path.abspath(os.path.join(os.path.expanduser('~'),'.komrade')) -PATH_CALLER = os.path.join(PATH_KOMRADE,'.caller') -PATH_CALLER_PUBKEY = os.path.join(PATH_CALLER,'.ca.key.pub.encr') -PATH_CALLER_PRIVKEY = os.path.join(PATH_CALLER,'.ca.key.priv.encr') -PATH_CRYPT_KEYS = os.path.join(PATH_CALLER,'.ca.db.keys.crypt') -PATH_CRYPT_DATA = os.path.join(PATH_CALLER,'.ca.db.data.encr') - - - -# class HelloOperator(object): -# def __init__(self,op=None): -# # for now -# self.op = TheOperator() - -# def create_keys(self,name): -# return self.op.create_keys(name) - -# def exists(self,*x,**y): return self.op.exists(*x,**y) - - -class Caller(object): - - ### INIT CODE - def __init__(self,name): - self.name=name - self.op = TheOperator() - - - def log(self,*x): print(*x) - - - ## CRYPT BASICS - - @property - def crypt_cell(self): - pass - - @property - def crypt_keys(self): - if not hasattr(self,'_crypt_keys'): - self._crypt_keys = Crypt(fn=PATH_CRYPT_KEYS) - return self._crypt_keys - - @property - def crypt_data(self): - if not hasattr(self,'_crypt_data'): - self._crypt_data = Crypt(fn=PATH_CRYPT_DATA) - return self._crypt_data - - - - ### CREATION OF KEYS - - # Get key de-cryptors - def gen_pass_keycell(self,pass_phrase,q_name='Read permissions?'): - if pass_phrase is None: - pass_key = GenerateSymmetricKey() - pass_cell = SCellSeal(key=pass_key) - else: - if pass_phrase is True: pass_phrase=getpass.getpass(f'Enter pass phrase [{q_name}]: ') - pass_key = None - pass_cell = SCellSeal(passphrase=pass_phrase) - return (pass_key, pass_cell) - - - def create_keys(self,pubkey_pass = None, privkey_pass = None, adminkey_pass = None): - # Get keys back from The Operator - res = self.op.create_keys(self.name) - self.log('create_keys() res from Operator? <-',res) - assert type(res)==tuple and len(res)==3 - (pubkey_decr, privkey_decr, adminkey_decr) = res - - # Get new encryptors - pubkey_passkey,pubkey_passcell = self.gen_pass_keycell(pubkey_pass,q_name='Permission key, to find') - privkey_passkey,privkey_passcell = self.gen_pass_keycell(privkey_pass,q_name='Permission key, to read') - adminkey_passkey,adminkey_passcell = self.gen_pass_keycell(adminkey_pass,q_name='Permission key, to admin') - - # double-encrypt what was received - pubkey_decr_encr = pubkey_passcell.encrypt(pubkey_decr) - privkey_decr_encr = privkey_passcell.encrypt(privkey_decr) - adminkey_decr_encr = adminkey_passcell.encrypt(adminkey_decr) - - # store double encrypted keys - self.crypt_keys.set(self.name,pubkey_decr_encr,prefix='/pub_decr_encr/') - self.crypt_keys.set(pubkey_decr,privkey_decr_encr,prefix='/priv_decr_encr/') - self.crypt_keys.set(privkey_decr,adminkey_decr_encr,prefix='/admin_decr_encr/') - - # store decryption keys if not passworded? - if pubkey_passkey: self.crypt_keys.set(self.name,pubkey_passkey,prefix='/pub_decr_decr/') - if privkey_passkey: self.crypt_keys.set(pubkey_decr,privkey_passkey,prefix='/priv_decr_decr/') - if adminkey_passkey: self.crypt_keys.set(privkey_decr,adminkey_passkey,prefix='/admin_decr_decr/') - - # done? - - - - ## MAGIC KEY ATTRIBUTES - - @property - def pubkey_decr_encr(self): - return self.crypt_keys.get(self.name,prefix='/pub_decr_encr/') - - @property - def privkey_decr_encr(self): - return self.crypt_keys.get(self.pubkey_decr,prefix='/priv_decr_encr/') - - @property - def pubkey_decr_encr(self): - return self.crypt_keys.get(self.privkey_decr,prefix='/admin_decr_encr/') - - - - - - # loading keys back - - @property - def pubkey_decr_cell(self): - decr_key = self.crypt_keys.get(self.name,prefix='/pub_decr_encr/') - if not decr_key: - if not self.passphrase: return - decr_cell = SCellSeal(passphrase=self.passphrase) - else: - decr_cell = SCellSeal(key=decr_key) - return decr_cell - - - @property - def privkey_decr_cell(self): - decr_key = self.crypt_keys.get(self.name,prefix='/priv_decr_encr/') - if not decr_key: - if not self.passphrase: return - decr_cell = SCellSeal(passphrase=self.passphrase) - else: - decr_cell = SCellSeal(key=decr_key) - return decr_cell - - @property - def adminkey_decr_cell(self): - decr_key = self.crypt_keys.get(self.name,prefix='/admin_decr_encr/') - if not decr_key: - if not self.passphrase: return - decr_cell = SCellSeal(passphrase=self.passphrase) - else: - decr_cell = SCellSeal(key=decr_key) - return decr_cell - - @property - def pubkey_decr(self): - return self.pubkey_decr_cell.decrypt(self.pubkey_decr_encr) - - @property - def privkey_decr(self): - return self.privkey_decr_cell.decrypt(self.privkey_decr_encr) - - @property - def adminkey_decr(self): - return self.adminkey_decr_cell.decrypt(self.adminkey_decr_encr) - - - - - - - ### HIGH LEVEL - # Do I exist? - - def exists(self): - return self.op.exists(self.name) - - def register(self,passphrase = None, as_group=False): - if self.exists(): - self.log('ERROR: user already exists') - return - - if not passphrase: passphrase = getpass.getpass('Enter password for new account: ') - self.passphrase=passphrase - - if as_group: - self.create_keys(adminkey_pass=passphrase) - else: - self.create_keys(privkey_pass=passphrase, adminkey_pass=passphrase) - - - def login(self,passphrase = None): - if not passphrase: passphrase = getpass.getpass('Enter login password: ') - self.passphrase = passphrase - if not - - - -if __name__ == '__main__': - caller = Caller('elon2') - - caller.register() \ No newline at end of file diff --git a/docs/cryptosystems-Kademlia.png b/docs/cryptosystems-Kademlia.png new file mode 100644 index 0000000000000000000000000000000000000000..2e34400c72cddcfa4c34071eb6539603866db650 GIT binary patch literal 119714 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

wY4!g$V*aCw)ktf5uRb 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 delta 83812 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�i6Cg_u;d9rd&Gc!)sg)6Nr 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

q&g>nc0=Aa5G5*d=m8i(yNDe;b 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 UH+r!c(7_)gJ#*4s9mlBu0t~r{TmS$7 diff --git a/docs/cryptosystems.drawio b/docs/cryptosystems.drawio index ec435a5..0457796 100644 --- a/docs/cryptosystems.drawio +++ b/docs/cryptosystems.drawio @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/komrade/__init__.py b/komrade/__init__.py new file mode 100644 index 0000000..cbf9b45 --- /dev/null +++ b/komrade/__init__.py @@ -0,0 +1,17 @@ +### +# Define some basic things while we're here + +class KomradeException(Exception): pass + +# make sure komrade is on path +import sys,os +sys.path.append(os.path.dirname(__file__)) + +import inspect +class Logger(object): + def log(self,*x): + curframe = inspect.currentframe() + calframe = inspect.getouterframes(curframe, 2) + mytype = type(self).__name__ + caller = calframe[1][3] + print(f'\n[{mytype}.{caller}()]',*x) diff --git a/api/__init__.py b/komrade/api/__init__.py similarity index 100% rename from api/__init__.py rename to komrade/api/__init__.py diff --git a/api/api.py b/komrade/api/api.py similarity index 100% rename from api/api.py rename to komrade/api/api.py diff --git a/komrade/api/persona.py b/komrade/api/persona.py new file mode 100644 index 0000000..95d8797 --- /dev/null +++ b/komrade/api/persona.py @@ -0,0 +1,81 @@ +# mine imports +import os,sys; sys.path.append(os.path.abspath(os.path.join(os.path.abspath(os.path.join(os.path.dirname(__file__),'..')),'..'))) +from komrade.backend.caller import Caller +from komrade import KomradeException,Logger + +# other imports +import asyncio,os,time,sys,logging,getpass +from pythemis.skeygen import KEY_PAIR_TYPE, GenerateKeyPair +from pythemis.smessage import SMessage, ssign, sverify +from pythemis.exception import ThemisError +from pythemis.scell import SCellSeal +from base64 import b64decode,b64encode +from pathlib import Path + + +class Model(Logger): pass + +class UserAlreadyExists(KomradeException): pass + +class Persona(Model): + def __init__(self, name, is_group=False): + self.name = name + self.is_group=is_group + + @property + def op(self): + return Caller(self.name) + + + ### + # MAJOR OPERATIONS + ### + + def register(self,passphrase = None): + """ + Register this new persona. + Protect keys according to a passphrase. + If group, only admin key pass-protected; + if individual, all keys pass-protected. + """ + + # Does user already exist? + if self.op.exists(): raise UserAlreadyExists('User already exists') + + # Get passphrase + if not passphrase: passphrase = getpass.getpass('Enter password for new account: ') + + # Create + if self.is_group: + self.op.create_keys(adminkey_pass=passphrase) + else: + self.op.create_keys(privkey_pass=passphrase,adminkey_pass=passphrase) + + + def login(self,passphrase = None): + # Get passphrase + if not passphrase: passphrase = getpass.getpass('Enter login password: ') + + # Get my decryption keys + if self.is_group: + keychain_decr = self.op.keychain_decr(adminkey_pass=passphrase) + else: + keychain_decr = self.op.keychain_decr(privkey_pass=passphrase,adminkey_pass=passphrase) + + print(keychain_decr) + + + + + + +if __name__ == '__main__': + import random + idnum = random.choice(list(range(1000))) + persona = Persona('elon'+str(idnum)) + print('\n\n\nREGISTERING\n\n\n') + persona.register(passphrase='bb') + + print('\n\n\nLOGGING IN\n\n\n') + + persona.login(passphrase='bb') \ No newline at end of file diff --git a/api/persona0.py b/komrade/api/persona0.py similarity index 100% rename from api/persona0.py rename to komrade/api/persona0.py diff --git a/api/run.sh b/komrade/api/run.sh similarity index 100% rename from api/run.sh rename to komrade/api/run.sh diff --git a/komrade/backend/__init__.py b/komrade/backend/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/komrade/backend/caller.py b/komrade/backend/caller.py new file mode 100644 index 0000000..3c9f07b --- /dev/null +++ b/komrade/backend/caller.py @@ -0,0 +1,93 @@ +import os,sys; sys.path.append(os.path.abspath(os.path.join(os.path.abspath(os.path.join(os.path.dirname(__file__),'..')),'..'))) +from komrade.backend.crypt import Crypt +from komrade.backend.the_operator import TheOperator +from komrade.backend.keymaker import Keymaker +from komrade import KomradeException,Logger + + +from pythemis.skeygen import KEY_PAIR_TYPE, GenerateKeyPair +from pythemis.smessage import SMessage, ssign, sverify +from pythemis.skeygen import GenerateSymmetricKey +from pythemis.scell import SCellSeal +from pythemis.exception import ThemisError +import getpass,os + + +# paths +PATH_KOMRADE = os.path.abspath(os.path.join(os.path.expanduser('~'),'.komrade')) +PATH_CALLER = os.path.join(PATH_KOMRADE,'.caller') +PATH_CALLER_PUBKEY = os.path.join(PATH_CALLER,'.ca.key.pub.encr') +PATH_CALLER_PRIVKEY = os.path.join(PATH_CALLER,'.ca.key.priv.encr') +PATH_CRYPT_KEYS = os.path.join(PATH_CALLER,'.ca.db.keys.crypt') +PATH_CRYPT_DATA = os.path.join(PATH_CALLER,'.ca.db.data.encr') + + + +# class HelloOperator(object): +# def __init__(self,op=None): +# # for now +# self.op = TheOperator() + +# def create_keys(self,name): +# return self.op.create_keys(name) + +# def exists(self,*x,**y): return self.op.exists(*x,**y) + + +class Caller(Keymaker): + + ### INIT CODE + def __init__(self,name): + self.name=name + self.op = TheOperator() + + ## CRYPT BASICS + + @property + def crypt_cell(self): + pass + + ### CREATION OF KEYS + def exists(self): + return self.op.exists(self.name) + + + def create_keys(self,pubkey_pass = None, privkey_pass = None, adminkey_pass = None): + # Get keys back from The Operator + res = self.op.create_keys(self.name) + self.log('create_keys() res from Operator? <-',res) + assert type(res)==tuple and len(res)==3 + (pubkey_decr, privkey_decr, adminkey_decr) = res + + # double-encrypt what was received + pubkey_decr_decr_key,pubkey_decr_decr_cell = self.pubkey_decr_decr_keycell(passphrase=pubkey_pass) + self.log('pubkey_decr_decr_key <--',pubkey_decr_decr_key) + self.log('pubkey_decr_decr_cell <--',pubkey_decr_decr_cell) + self.log('pubkey_decr <--',pubkey_decr) + pubkey_decr_encr = pubkey_decr_decr_cell.encrypt(pubkey_decr) + self.log('pubkey_decr_encr <--',pubkey_decr_encr) + + # privkey_decr_encr = privkey_passcell.encrypt(privkey_decr) + # self.log('pubkey_decr_encr <--',pubkey_decr_encr) + + # adminkey_decr_encr = adminkey_passcell.encrypt(adminkey_decr) + # self.log('pubkey_decr_encr <--',pubkey_decr_encr) + + # store double encrypted keys + self.crypt_keys.set(self.name,pubkey_decr_encr,prefix='/pub_decr_encr/') + # self.crypt_keys.set(pubkey_decr,privkey_decr_encr,prefix='/priv_decr_encr/') + # self.crypt_keys.set(privkey_decr,adminkey_decr_encr,prefix='/admin_decr_encr/') + + # store decryption keys if not passworded? + if pubkey_decr_decr_key: self.crypt_keys.set(self.name,pubkey_decr_decr_key,prefix='/pub_decr_decr_key/') + # if privkey_passkey: self.crypt_keys.set(pubkey_decr,privkey_passkey,prefix='/priv_decr_decr_key/') + # if adminkey_passkey: self.crypt_keys.set(privkey_decr,adminkey_passkey,prefix='/admin_decr_decr_key/') + + # done? + + + +if __name__ == '__main__': + caller = Caller('elon2') + + # caller.register() \ No newline at end of file diff --git a/backend/crypt.py b/komrade/backend/crypt.py similarity index 92% rename from backend/crypt.py rename to komrade/backend/crypt.py index 46d51b9..ac6568f 100644 --- a/backend/crypt.py +++ b/komrade/backend/crypt.py @@ -11,19 +11,24 @@ from pythemis.skeygen import GenerateSymmetricKey from pythemis.scell import SCellSeal from pythemis.exception import ThemisError import zlib +from komrade import KomradeException,Logger +LOG_GET_SET = False -class Crypt(object): - def log(self,*x): print(*x) +class Crypt(Logger): def __init__(self,name=None,fn=None,cell=None): if not name and fn: name=os.path.basename(fn).replace('.','_') self.name,self.fn,self.cell = name,fn,cell self.store = FilesystemStore(self.fn) + + def log(self,*x): + if LOG_GET_SET: + super().log(*x) def hash(self,binary_data): return hashlib.sha256(binary_data).hexdigest() diff --git a/backend/ether.py b/komrade/backend/ether.py similarity index 100% rename from backend/ether.py rename to komrade/backend/ether.py diff --git a/komrade/backend/keymaker.py b/komrade/backend/keymaker.py new file mode 100644 index 0000000..6f65cde --- /dev/null +++ b/komrade/backend/keymaker.py @@ -0,0 +1,205 @@ +class Keymaker(Logger): + + + ### BASE STORAGE + @property + def crypt_keys(self): + if not hasattr(self,'_crypt_keys'): + self._crypt_keys = Crypt(fn=PATH_CRYPT_KEYS) + return self._crypt_keys + + @property + def crypt_data(self): + if not hasattr(self,'_crypt_data'): + self._crypt_data = Crypt(fn=PATH_CRYPT_DATA) + return self._crypt_data + + + ### STARTING WITH MOST ABSTRACT + + ### (1) Final keys + def getkey(self, uri, passphrases={}, keychain_encr={}, keychain_decr={}, keyname=''): + if not keyname: return + key = None + + # if the decryption keys have been provided to me + if keychain_decr: + # get the relevant decryption key + key_decr = keychain_encr.get(f'{keyname}key_decr'): + + # see if I have the right encrypted key + key_encr = self.getkey_encr(uri, passphrases=passphrases, keychain_decr=keychain_decr, keyname=keyname) + + # conversely, if the encryption keys have been provided to me + elif keychain_encr: + # get the relevant encryption key + key_encr = keychain_encr.get(f'{keyname}key_decr'): + + # see if I have the right encrypted key + key_decr = self.getkey_decr(uri, passphrases=passphrases, keychain_decr=keychain_decr, keyname=keyname) + + # then, once I have both: + if not keychain_decr and not keychain_encr: return + try: + key = SCellSeal(key=key_decr).decrypt(key_encr) + except ThemisError as e: + self.log('key recovery failed',e) + return key + + def pubkey(self, **kwargs): + return self.getkey(uri=self.name,keyname='pub',**kwargs) + def privkey(self, **kwargs): + return self.getkey(uri=self.pubkey(**kwargs),keyname='priv',**kwargs) + def adminkey(self, **kwargs): + return self.getkey(uri=self.privkey(**kwargs),keyname='admin',**kwargs) + + + + ## (2A) ENCRYPTED KEYS + def getkey_encr(self, uri, passphrases={}, keychain_decr={}, keyname=''): + return self.crypt_keys.get(uri,prefix=f'/{keyname}_encr/') + def pubkey_encr(self, **kwargs): + return self.getkey_encr(uri=self.name,keyname='pub',**kwargs) + def privkey_encr(self, **kwargs): + return self.getkey(uri=self.pubkey_encr(**kargs),keyname='priv',**kwargs) + def adminkey_encr(self, **kwargs): + return self.getkey(uri=self.privkey_encr(**kargs),keyname='admin',**kwargs) + + + ### (2B) DECRYPTED KEYS + def getkey_decr(self, uri, passphrases={}, keychain_encr={}, keyname=''): + key_loaded = self.crypt_keys.get(uri,prefix=f'/{keyname}_decr/') + if key_loaded: return key_loaded + + # otherwise, get it by decrypting its components? + return self.buildkey + + + + def pubkey_decr(self, **kwargs): + return self.getkey_decr(uri=self.name,keyname='pub',**kwargs) + def privkey_decr(self, **kwargs): + return self.getkey(uri=self.pubkey_decr(**kargs),keyname='priv',**kwargs) + def adminkey_decr(self, **kwargs): + return self.getkey(uri=self.privkey_decr(**kargs),keyname='admin',**kwargs) + + def buildkey_decr(self, passphrases={}, keyname='pub'): + # need two pieces: its encrypted part and its decrypted part + key_decr_encr = self.getkey_decr_encr(keyname=keyname) + + key_decr_decr_key,pubkey_decr_decr_cell = self.getkey_decr_decr_keycell(passphrase,keyname=keyname) + + self.log(f'about to decrypt {pubkey_decr_encr} with cell {pubkey_decr_decr_cell}') + try: + pubkey_decr = pubkey_decr_decr_cell.decrypt(pubkey_decr_encr) + except ThemisError as e: + self.log('!!',e) + exit() + + self.log('pubkey_decr <--',pubkey_decr) + return pubkey_decr + + def pubkey_decr(self, passphrases={}): + pubkey_decr_encr = self.pubkey_decr_encr() + pubkey_decr_decr_key,pubkey_decr_decr_cell = self.pubkey_decr_decr_keycell(passphrase) + + self.log(f'about to decrypt {pubkey_decr_encr} with cell {pubkey_decr_decr_cell}') + try: + pubkey_decr = pubkey_decr_decr_cell.decrypt(pubkey_decr_encr) + except ThemisError as e: + self.log('!!',e) + exit() + + self.log('pubkey_decr <--',pubkey_decr) + return pubkey_decr + + def privkey_decr(self, passphrases={}): + privkey_decr_encr = self.privkey_decr_encr() + privkey_decr_decr_cell = self.privkey_decr_decr_cell(passphrase) + privkey_decr = privkey_decr_decr_cell.decrypt(privkey_decr_encr) + return privkey_decr + + def adminkey_decr(self, passphrases={}): + adminkey_decr_encr = self.adminkey_decr_encr() + adminkey_decr_decr_cell = self.adminkey_decr_decr_cell(passphrase) + adminkey_decr = adminkey_decr_decr_cell.decrypt(adminkey_decr_encr) + return adminkey_decr + + def keychain_decr(self, pubkey_pass = None, privkey_pass = None, adminkey_pass = None): + return { + 'pubkey_decr':self.pubkey_decr(pubkey_pass), + 'privkey_decr':self.privkey_decr(privkey_pass), + 'adminkey_decr':self.adminkey_decr(adminkey_pass) + } + + ## MAGIC KEY ATTRIBUTES + # loading keys back + + ### DECR DECR KEYCELL + + # Get key de-cryptors + def genkey_pass_keycell(self,pass_phrase,q_name='Read permissions?'): + if pass_phrase is None: + pass_key = GenerateSymmetricKey() + pass_cell = SCellSeal(key=pass_key) + else: + if pass_phrase is True: pass_phrase=getpass.getpass(f'Enter pass phrase [{q_name}]: ') + pass_key = None + pass_cell = SCellSeal(passphrase=pass_phrase) + + self.log(f'pass_key [{q_name}] <--',pass_key) + self.log(f'pass_cell [{q_name}] <--',pass_cell) + return (pass_key, pass_cell) + + + def getkey_decr_decr_keycell(self, passphrases={}, keyname='pub'): + # get or make + decr_key = None + decr_cell = None + + if passphrase: + decr_key=None + decr_cell = SCellSeal(passphrase=passphrase) + return (decr_key,decr_cell) + + # if I have one stored? + decr_key = self.crypt_keys.get(self.name,prefix=f'/{keyname}_decr_decr_key/') + if decr_key: + decr_cell = SCellSeal(key=decr_key) + return (decr_key,decr_cell) + + # if I need to generate one + if not decr_cell: + return self.genkey_pass_keycell() + + return (decr_key,decr_cell) + + def pubkey_decr_decr_keycell(self,passphrases={}): + return self.getkey_decr_decr_keycell(passphrase=passphrase, keyname='pub') + def privkey_decr_decr_keycell(self,passphrases={}): + return self.getkey_decr_decr_keycell(passphrase=passphrase, keyname='priv') + def adminkey_decr_decr_keycell(self,passphrases={}): + return self.getkey_decr_decr_keycell(passphrase=passphrase, keyname='admin') + + + + ### DECR ENCR KEYS + def getkey_decr_encr(self,crypt_key = None,keyname='pub'): + if not crypt_key: crypt_key = self.name + key_decr_encr = self.crypt_keys.get(self.name,prefix=f'/{keyname}_decr_encr/') + self.log(f'{keyname}key_decr_encr <--',key_decr_encr) + return key_decr_encr + def pubkey_decr_encr(self,passphrases={}): + return self.getkey_decr_encr(crypt_key=self.name, keyname='pub') + def privkey_decr_encr(self,passphrases={}): + pubkey_decr = self.pubkey_decr(passphrase=passphrase) + return self.getkey_decr_encr(crypt_key=pubkey_decr, keyname='priv') + def adminkey_decr_encr(self,passphrases={}): + privkey_decr=self.privkey_decr(passphrase=passphrase) + return self.getkey_decr_encr(crypt_key=privkey_decr, keyname='admin') + + + + ### DECR KEYS + + diff --git a/backend/keyserver0.py b/komrade/backend/keyserver0.py similarity index 100% rename from backend/keyserver0.py rename to komrade/backend/keyserver0.py diff --git a/backend/the_operator.py b/komrade/backend/the_operator.py similarity index 76% rename from backend/the_operator.py rename to komrade/backend/the_operator.py index 0175fed..0590496 100644 --- a/backend/the_operator.py +++ b/komrade/backend/the_operator.py @@ -2,7 +2,9 @@ There is only one operator! Running on node prime. """ -import os,sys +import os,sys; sys.path.append(os.path.abspath(os.path.join(os.path.abspath(os.path.join(os.path.dirname(__file__),'..')),'..'))) +from komrade.backend.crypt import Crypt +from komrade.backend.keymaker import Keymaker from flask import Flask from flask_classful import FlaskView from pythemis.skeygen import KEY_PAIR_TYPE, GenerateKeyPair @@ -11,6 +13,7 @@ from pythemis.skeygen import GenerateSymmetricKey from pythemis.scell import SCellSeal from pythemis.exception import ThemisError from base64 import b64encode,b64decode +from komrade import KomradeException,Logger import getpass PATH_HERE = os.path.dirname(__file__) sys.path.append(PATH_HERE) @@ -35,22 +38,18 @@ if not os.path.exists(PATH_OPERATOR): os.makedirs(PATH_OPERATOR) -class TheOperator(object): +class TheOperator(Keymaker): """ The operator. """ - def __init__(self): + def __init__(self, passphrase = None): """ Boot up the operator. Requires knowing or setting a password of memory. """ - # Establish encryption/decryption cell - self.cell = SCellSeal(passphrase=getpass.getpass('What is the password of memory? ')) - # Do I have my keys? - have_keys = self.check_keys() # If not, forge them -- only once! if not have_keys: self.forge_keys() @@ -61,31 +60,25 @@ class TheOperator(object): # That's it! - @property - def crypt_keys(self): - if not hasattr(self,'_crypt_keys'): - self._crypt_keys = Crypt(fn=PATH_CRYPT_KEYS, cell=self.cell) - return self._crypt_keys - - @property - def crypt_data(self): - if not hasattr(self,'_crypt_data'): - self._crypt_data = Crypt(fn=PATH_CRYPT_DATA, cell=self.cell) - return self._crypt_data - - def log(self,*x): - print(*x) - - def get_encypted_keys(self): + def op_keychain_encr(self): self.log('loading encrypted keys from disk') with open(PATH_OPERATOR_PUBKEY,'rb') as f_pub, open(PATH_OPERATOR_PRIVKEY,'rb') as f_priv: pubkey_encr = f_pub.read() privkey_encr = f_priv.read() - #self.log('loaded encrypted pubkey is:',pubkey_encr) - #self.log('loaded encrypted privkey is:',privkey_encr) + self.log('Operator pubkey_encr <--',pubkey_encr) + self.log('Operator privkey <--',privkey_encr) return (pubkey_encr,privkey_encr) - def get_keys(self): + def get_op_keys(self): + # Get passphrase + passphrase = 'aa' #@ HACK!!! + self.crypt_key,self. = self.get_k + + + # Do I have my keys? + have_keys = self.check_keys() + + pubkey_encr,privkey_encr = self.get_encypted_keys() # decrypt according to password of memory @@ -170,11 +163,40 @@ class TheOperator(object): return (pubkey_decr, privkey_decr, adminkey_decr) + # Magic key attributes + + + ## DECRYPTED REAL FINAL KEYS + + def pubkey(self, name, keychain_decr): + pubkey_decr = keychain_decr.get('pubkey_decr') + pubkey_encr = self.pubkey_encr(name) + if not pubkey_decr or not pubkey_encr: return None + pubkey = SCellSeal(key=pubkey_decr).decrypt(pubkey_encr) + return pubkey + + + def privkey(self, name, keychain_decr): + privkey_decr = keychain_decr.get('privkey_decr') + privkey_encr = self.privkey_encr(name, keychain_decr) + if not privkey_decr or not privkey_encr: return None + privkey = SCellSeal(key=privkey_decr).decrypt(privkey_encr) + return privkey + + def adminkey(self, name, keychain_decr): + adminkey_decr = keychain_decr.get('adminkey_decr') + adminkey_encr = self.adminkey_encr(name, keychain_decr) + if not adminkey_decr or not adminkey_encr: return None + adminkey = SCellSeal(key=adminkey_decr).decrypt(adminkey_encr) + return adminkey + + def exists(self,name): return self.crypt_keys.get(name,prefix='/pub_encr/') is not None - + def login(self, name, keychain_encr): + pass diff --git a/komrade/frontend/__init__.py b/komrade/frontend/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/frontend/app.json b/komrade/frontend/app.json similarity index 100% rename from frontend/app.json rename to komrade/frontend/app.json diff --git a/frontend/assets/Hammer_and_sickle.png b/komrade/frontend/assets/Hammer_and_sickle.png similarity index 100% rename from frontend/assets/Hammer_and_sickle.png rename to komrade/frontend/assets/Hammer_and_sickle.png diff --git a/frontend/assets/Hammer_and_sickle.xcf b/komrade/frontend/assets/Hammer_and_sickle.xcf similarity index 100% rename from frontend/assets/Hammer_and_sickle.xcf rename to komrade/frontend/assets/Hammer_and_sickle.xcf diff --git a/frontend/assets/Strengthen.ttf b/komrade/frontend/assets/Strengthen.ttf similarity index 100% rename from frontend/assets/Strengthen.ttf rename to komrade/frontend/assets/Strengthen.ttf diff --git a/frontend/assets/avatar.jpg b/komrade/frontend/assets/avatar.jpg similarity index 100% rename from frontend/assets/avatar.jpg rename to komrade/frontend/assets/avatar.jpg diff --git a/frontend/assets/avatars/elon.png b/komrade/frontend/assets/avatars/elon.png similarity index 100% rename from frontend/assets/avatars/elon.png rename to komrade/frontend/assets/avatars/elon.png diff --git a/frontend/assets/avatars/marx.png b/komrade/frontend/assets/avatars/marx.png similarity index 100% rename from frontend/assets/avatars/marx.png rename to komrade/frontend/assets/avatars/marx.png diff --git a/frontend/assets/avatars/zuck.png b/komrade/frontend/assets/avatars/zuck.png similarity index 100% rename from frontend/assets/avatars/zuck.png rename to komrade/frontend/assets/avatars/zuck.png diff --git a/frontend/assets/bg-brightblue.png b/komrade/frontend/assets/bg-brightblue.png similarity index 100% rename from frontend/assets/bg-brightblue.png rename to komrade/frontend/assets/bg-brightblue.png diff --git a/frontend/assets/bg-brown.png b/komrade/frontend/assets/bg-brown.png similarity index 100% rename from frontend/assets/bg-brown.png rename to komrade/frontend/assets/bg-brown.png diff --git a/frontend/assets/bg-green.png b/komrade/frontend/assets/bg-green.png similarity index 100% rename from frontend/assets/bg-green.png rename to komrade/frontend/assets/bg-green.png diff --git a/frontend/assets/bg-greenblue.png b/komrade/frontend/assets/bg-greenblue.png similarity index 100% rename from frontend/assets/bg-greenblue.png rename to komrade/frontend/assets/bg-greenblue.png diff --git a/frontend/assets/bg-purple.png b/komrade/frontend/assets/bg-purple.png similarity index 100% rename from frontend/assets/bg-purple.png rename to komrade/frontend/assets/bg-purple.png diff --git a/frontend/assets/bg-purple2.png b/komrade/frontend/assets/bg-purple2.png similarity index 100% rename from frontend/assets/bg-purple2.png rename to komrade/frontend/assets/bg-purple2.png diff --git a/frontend/assets/bg-russiangreen.png b/komrade/frontend/assets/bg-russiangreen.png similarity index 100% rename from frontend/assets/bg-russiangreen.png rename to komrade/frontend/assets/bg-russiangreen.png diff --git a/frontend/assets/bg.png b/komrade/frontend/assets/bg.png similarity index 100% rename from frontend/assets/bg.png rename to komrade/frontend/assets/bg.png diff --git a/frontend/assets/clenched-fist-vector-publicdomain.eps b/komrade/frontend/assets/clenched-fist-vector-publicdomain.eps similarity index 100% rename from frontend/assets/clenched-fist-vector-publicdomain.eps rename to komrade/frontend/assets/clenched-fist-vector-publicdomain.eps diff --git a/frontend/assets/clenched-fist-vector-publicdomain.xcf b/komrade/frontend/assets/clenched-fist-vector-publicdomain.xcf similarity index 100% rename from frontend/assets/clenched-fist-vector-publicdomain.xcf rename to komrade/frontend/assets/clenched-fist-vector-publicdomain.xcf diff --git a/frontend/assets/cover.jpg b/komrade/frontend/assets/cover.jpg similarity index 100% rename from frontend/assets/cover.jpg rename to komrade/frontend/assets/cover.jpg diff --git a/frontend/assets/fist.png b/komrade/frontend/assets/fist.png similarity index 100% rename from frontend/assets/fist.png rename to komrade/frontend/assets/fist.png diff --git a/frontend/assets/fist.xcf b/komrade/frontend/assets/fist.xcf similarity index 100% rename from frontend/assets/fist.xcf rename to komrade/frontend/assets/fist.xcf diff --git a/frontend/assets/fist2.png b/komrade/frontend/assets/fist2.png similarity index 100% rename from frontend/assets/fist2.png rename to komrade/frontend/assets/fist2.png diff --git a/frontend/assets/fist3.png b/komrade/frontend/assets/fist3.png similarity index 100% rename from frontend/assets/fist3.png rename to komrade/frontend/assets/fist3.png diff --git a/frontend/assets/font.otf b/komrade/frontend/assets/font.otf similarity index 100% rename from frontend/assets/font.otf rename to komrade/frontend/assets/font.otf diff --git a/frontend/assets/komrade-peek-2.gif b/komrade/frontend/assets/komrade-peek-2.gif similarity index 100% rename from frontend/assets/komrade-peek-2.gif rename to komrade/frontend/assets/komrade-peek-2.gif diff --git a/frontend/assets/komrade-screen-peek.gif b/komrade/frontend/assets/komrade-screen-peek.gif similarity index 100% rename from frontend/assets/komrade-screen-peek.gif rename to komrade/frontend/assets/komrade-screen-peek.gif diff --git a/frontend/assets/komrade-screen-preview-2020-08-23.gif b/komrade/frontend/assets/komrade-screen-preview-2020-08-23.gif similarity index 100% rename from frontend/assets/komrade-screen-preview-2020-08-23.gif rename to komrade/frontend/assets/komrade-screen-preview-2020-08-23.gif diff --git a/frontend/assets/komrade.png b/komrade/frontend/assets/komrade.png similarity index 100% rename from frontend/assets/komrade.png rename to komrade/frontend/assets/komrade.png diff --git a/frontend/assets/komrade2.png b/komrade/frontend/assets/komrade2.png similarity index 100% rename from frontend/assets/komrade2.png rename to komrade/frontend/assets/komrade2.png diff --git a/frontend/assets/komrade2.xcf b/komrade/frontend/assets/komrade2.xcf similarity index 100% rename from frontend/assets/komrade2.xcf rename to komrade/frontend/assets/komrade2.xcf diff --git a/frontend/assets/logo (copy).png b/komrade/frontend/assets/logo (copy).png similarity index 100% rename from frontend/assets/logo (copy).png rename to komrade/frontend/assets/logo (copy).png diff --git a/frontend/assets/logo.png b/komrade/frontend/assets/logo.png similarity index 100% rename from frontend/assets/logo.png rename to komrade/frontend/assets/logo.png diff --git a/frontend/assets/output.png b/komrade/frontend/assets/output.png similarity index 100% rename from frontend/assets/output.png rename to komrade/frontend/assets/output.png diff --git a/frontend/assets/overpass-mono-bold.otf b/komrade/frontend/assets/overpass-mono-bold.otf similarity index 100% rename from frontend/assets/overpass-mono-bold.otf rename to komrade/frontend/assets/overpass-mono-bold.otf diff --git a/frontend/assets/overpass-mono-light.otf b/komrade/frontend/assets/overpass-mono-light.otf similarity index 100% rename from frontend/assets/overpass-mono-light.otf rename to komrade/frontend/assets/overpass-mono-light.otf diff --git a/frontend/assets/overpass-mono-regular.otf b/komrade/frontend/assets/overpass-mono-regular.otf similarity index 100% rename from frontend/assets/overpass-mono-regular.otf rename to komrade/frontend/assets/overpass-mono-regular.otf diff --git a/frontend/assets/overpass-mono-semibold.otf b/komrade/frontend/assets/overpass-mono-semibold.otf similarity index 100% rename from frontend/assets/overpass-mono-semibold.otf rename to komrade/frontend/assets/overpass-mono-semibold.otf diff --git a/frontend/assets/screen-feed.png b/komrade/frontend/assets/screen-feed.png similarity index 100% rename from frontend/assets/screen-feed.png rename to komrade/frontend/assets/screen-feed.png diff --git a/frontend/assets/screen-login.png b/komrade/frontend/assets/screen-login.png similarity index 100% rename from frontend/assets/screen-login.png rename to komrade/frontend/assets/screen-login.png diff --git a/frontend/assets/screen-post.png b/komrade/frontend/assets/screen-post.png similarity index 100% rename from frontend/assets/screen-post.png rename to komrade/frontend/assets/screen-post.png diff --git a/frontend/assets/spiral2.png b/komrade/frontend/assets/spiral2.png similarity index 100% rename from frontend/assets/spiral2.png rename to komrade/frontend/assets/spiral2.png diff --git a/frontend/assets/spiral3.png b/komrade/frontend/assets/spiral3.png similarity index 100% rename from frontend/assets/spiral3.png rename to komrade/frontend/assets/spiral3.png diff --git a/frontend/assets/spiral3b.png b/komrade/frontend/assets/spiral3b.png similarity index 100% rename from frontend/assets/spiral3b.png rename to komrade/frontend/assets/spiral3b.png diff --git a/frontend/assets/spiral4.png b/komrade/frontend/assets/spiral4.png similarity index 100% rename from frontend/assets/spiral4.png rename to komrade/frontend/assets/spiral4.png diff --git a/frontend/assets/spiral4b.png b/komrade/frontend/assets/spiral4b.png similarity index 100% rename from frontend/assets/spiral4b.png rename to komrade/frontend/assets/spiral4b.png diff --git a/frontend/config.py b/komrade/frontend/config.py similarity index 100% rename from frontend/config.py rename to komrade/frontend/config.py diff --git a/frontend/etc/examples/kivy_asyncio_example.py b/komrade/frontend/etc/examples/kivy_asyncio_example.py similarity index 100% rename from frontend/etc/examples/kivy_asyncio_example.py rename to komrade/frontend/etc/examples/kivy_asyncio_example.py diff --git a/frontend/etc/first_node.py b/komrade/frontend/etc/first_node.py similarity index 100% rename from frontend/etc/first_node.py rename to komrade/frontend/etc/first_node.py diff --git a/frontend/etc/icon_preview.py b/komrade/frontend/etc/icon_preview.py similarity index 100% rename from frontend/etc/icon_preview.py rename to komrade/frontend/etc/icon_preview.py diff --git a/frontend/etc/test.py b/komrade/frontend/etc/test.py similarity index 100% rename from frontend/etc/test.py rename to komrade/frontend/etc/test.py diff --git a/frontend/main.py b/komrade/frontend/main.py similarity index 100% rename from frontend/main.py rename to komrade/frontend/main.py diff --git a/frontend/misc.py b/komrade/frontend/misc.py similarity index 100% rename from frontend/misc.py rename to komrade/frontend/misc.py diff --git a/frontend/pub b/komrade/frontend/pub similarity index 100% rename from frontend/pub rename to komrade/frontend/pub diff --git a/frontend/root.kv b/komrade/frontend/root.kv similarity index 100% rename from frontend/root.kv rename to komrade/frontend/root.kv diff --git a/frontend/run.sh b/komrade/frontend/run.sh similarity index 100% rename from frontend/run.sh rename to komrade/frontend/run.sh diff --git a/frontend/screens/base.py b/komrade/frontend/screens/base.py similarity index 100% rename from frontend/screens/base.py rename to komrade/frontend/screens/base.py diff --git a/frontend/screens/base.pyc b/komrade/frontend/screens/base.pyc similarity index 100% rename from frontend/screens/base.pyc rename to komrade/frontend/screens/base.pyc diff --git a/frontend/screens/feed/feed.kv b/komrade/frontend/screens/feed/feed.kv similarity index 100% rename from frontend/screens/feed/feed.kv rename to komrade/frontend/screens/feed/feed.kv diff --git a/frontend/screens/feed/feed.py b/komrade/frontend/screens/feed/feed.py similarity index 100% rename from frontend/screens/feed/feed.py rename to komrade/frontend/screens/feed/feed.py diff --git a/frontend/screens/login/login.kv b/komrade/frontend/screens/login/login.kv similarity index 100% rename from frontend/screens/login/login.kv rename to komrade/frontend/screens/login/login.kv diff --git a/frontend/screens/login/login.py b/komrade/frontend/screens/login/login.py similarity index 100% rename from frontend/screens/login/login.py rename to komrade/frontend/screens/login/login.py diff --git a/frontend/screens/messages/messages.kv b/komrade/frontend/screens/messages/messages.kv similarity index 100% rename from frontend/screens/messages/messages.kv rename to komrade/frontend/screens/messages/messages.kv diff --git a/frontend/screens/messages/messages.py b/komrade/frontend/screens/messages/messages.py similarity index 100% rename from frontend/screens/messages/messages.py rename to komrade/frontend/screens/messages/messages.py diff --git a/frontend/screens/notifications/notifications.kv b/komrade/frontend/screens/notifications/notifications.kv similarity index 100% rename from frontend/screens/notifications/notifications.kv rename to komrade/frontend/screens/notifications/notifications.kv diff --git a/frontend/screens/notifications/notifications.py b/komrade/frontend/screens/notifications/notifications.py similarity index 100% rename from frontend/screens/notifications/notifications.py rename to komrade/frontend/screens/notifications/notifications.py diff --git a/frontend/screens/post/post.kv b/komrade/frontend/screens/post/post.kv similarity index 100% rename from frontend/screens/post/post.kv rename to komrade/frontend/screens/post/post.kv diff --git a/frontend/screens/post/post.py b/komrade/frontend/screens/post/post.py similarity index 100% rename from frontend/screens/post/post.py rename to komrade/frontend/screens/post/post.py diff --git a/frontend/screens/profile/profile.kv b/komrade/frontend/screens/profile/profile.kv similarity index 100% rename from frontend/screens/profile/profile.kv rename to komrade/frontend/screens/profile/profile.kv diff --git a/frontend/screens/profile/profile.py b/komrade/frontend/screens/profile/profile.py similarity index 100% rename from frontend/screens/profile/profile.py rename to komrade/frontend/screens/profile/profile.py diff --git a/frontend/watcher.py b/komrade/frontend/watcher.py similarity index 100% rename from frontend/watcher.py rename to komrade/frontend/watcher.py