diff --git a/komrade/.builtin.keys b/komrade/.builtin.keys index 63d7e16..828feaf 100644 --- a/komrade/.builtin.keys +++ b/komrade/.builtin.keys @@ -1 +1 @@ -AAEBQAwAAAAQAAAAtgAAAHpLTWfiYKDQNkK0351A2dzeB2dc/BFORHT96dEgoJAgSV5C7EI/NKkwDHH4MxtN02vP6riKpms/NZ39UI2kInoWJ/O6qS+MfruA1iYTMnJO1MoJhrqY0ywygVfpD4W79YRt0AEA24KPQ3WLWKsc/PU+Pq1fmGaC5bEWJFbNH8a+8nramPWsot3Ee/SD1NORQVzbBbHOMwbUtEsO6j34FeFj0cYqTJOeBIMIiqrHicoogS0zelcncp/7oW4ulAjsQUvkeVejb3Jwr40oSRC74D5vAA== \ No newline at end of file +AAEBQAwAAAAQAAAAggEAALfhjselRil2GSSARzwV+FvwMJXeflbpWb5bd0bviC+J46+28AdnT6wcP+/ESrA20xSl+d8r6N5an31LnpZcxrfNsJlSaJrIynk8TOoOVElWwgNW+jgk9HeqEsiAyYXowC+FYkWv3wRxql3/5y9g6e5kJWBsmjZs8LdT4uK09yfwvJX2DlKim0+XO+HUu8Qq/BS7OPN4KueP/bEmZ91M4AowQ8DExBC0jAW887An0rM+gy+xKXV8UDE9LBGQg75NPZMc9bEfMLp0wg+EDWgXe0PXIKUCZF/El7CiUeM+MP17Md0No4N9/XqPqU4gXSjtkrohBujpTKOqv0OiDurb9Xl6Ig/4tML6VhwWBfaBOFP7vPdLiT+tQKdcTAKAn+PwVbo63rQ8dWz8wvcwDISd8iz/5tewQw9DDK5WJOwahGFS5NsUA5Hw9WpxHMYH5iydOmYeAskLmrlZVuxuixv+9CFxP+5hDg5ZT3pMVPsZwed6nlbP3DTlNGjVkr8o/OO4MXizBHLgQ6V0z3Im+zvgBKedNYSLwFTDx0aeEBm1ag== \ No newline at end of file diff --git a/komrade/api/api.py b/komrade/api/api.py index 8c2715e..cdb1a60 100644 --- a/komrade/api/api.py +++ b/komrade/api/api.py @@ -31,7 +31,7 @@ def logger(): handler = logging.StreamHandler() formatter = logging.Formatter('[%(asctime)s]\n%(message)s\n') handler.setFormatter(formatter) - logger = logging.getLogger(__file__) + logger = logging.getLogger('komrade') logger.addHandler(handler) logger.setLevel(logging.DEBUG) return logger diff --git a/komrade/backend/callers.py b/komrade/backend/callers.py index dba9f4e..cbf9fe4 100644 --- a/komrade/backend/callers.py +++ b/komrade/backend/callers.py @@ -11,18 +11,6 @@ class Caller(Operator): Variant of an Operator which handles local keys and keymaking. """ - @property - def phone(self): - global TELEPHONE - from komrade.backend.the_telephone import TheTelephone - if not TELEPHONE: TELEPHONE=TheTelephone() - return TELEPHONE - @property - def op(self): - global OPERATOR - from komrade.backend.the_operator import TheOperator - if not OPERATOR: OPERATOR=TheOperator() - return OPERATOR def get_new_keys(self, name = None, passphrase = None, is_group=None): if not name: name=self.name diff --git a/komrade/backend/keymaker.py b/komrade/backend/keymaker.py index 9abc324..e096999 100644 --- a/komrade/backend/keymaker.py +++ b/komrade/backend/keymaker.py @@ -74,9 +74,9 @@ class KomradeAsymmetricPrivateKey(KomradeAsymmetricKey): class Keymaker(Logger): - def __init__(self,name=None,passphrase=None, path_crypt_keys=None, path_crypt_data=None, allow_builtin=True): + def __init__(self,name=None,passphrase=None,keychain={}, path_crypt_keys=None, path_crypt_data=None, allow_builtin=True): self.name=name - self._keychain={} + self._keychain=keychain self.passphrase=passphrase self.path_crypt_keys=path_crypt_keys self.path_crypt_data=path_crypt_data @@ -122,6 +122,11 @@ class Keymaker(Logger): def getkey(self, keyname, keychain={}, uri=None): + # cached? + if hasattr(self,'_'+keyname) and getattr(self,'_'+keyname): + return getattr(self,'_'+keyname) + if keyname in self._keychain: return self._keychain[keyname] + # self.log(f'keyname={keyname}, keychain={keychain.keys()}, uri={uri}') # 1) I already have this key stored in either the keychain or the crypt; return straight away @@ -370,65 +375,6 @@ class Keymaker(Logger): keychain[key_name]=_key_encr return keychain - def check_builtin_keys(self): - global OMEGA_KEY,OPERATOR_KEYCHAIN,TELEPHONE_KEYCHAIN - if OMEGA_KEY and OPERATOR_KEYCHAIN and TELEPHONE_KEYCHAIN: return - self.log('getting built in keys!') - - if not os.path.exists(PATH_OMEGA_KEY) or not os.path.exists(PATH_BUILTIN_KEYCHAIN): - self.log('builtin keys not present??') - return - - with open(PATH_OMEGA_KEY,'rb') as f: - OMEGA_KEY = KomradeSymmetricKeyWithoutPassphrase( - key=b64decode(f.read()) - ) - - with open(PATH_BUILTIN_KEYCHAIN,'rb') as f: - local_builtin_keychain_encr = b64decode(f.read()) - - print('local',local_builtin_keychain_encr) - - from komrade.backend.mazes import tor_request - from komrade.backend import PATH_OPERATOR_WEB_KEYS_URL - - meta_keychain={} - local_builtin_keychain = OMEGA_KEY.decrypt(local_builtin_keychain_encr) - local_builtin_keychain_phone,local_builtin_keychain_op = local_builtin_keychain.split(BSEP) - local_builtin_keychain_phone_json = unpackage_from_transmission(local_builtin_keychain_phone) - local_builtin_keychain_op_json = unpackage_from_transmission(local_builtin_keychain_op) - - self.log('local_builtin_keychain_phone_json',local_builtin_keychain_phone_json) - self.log('local_builtin_keychain_op_json',local_builtin_keychain_op_json) - - - - print('??',PATH_OPERATOR_WEB_KEYS_URL) - r = tor_request(PATH_OPERATOR_WEB_KEYS_URL) - if r.status_code!=200: - self.log('cannot authenticate the keymakers') - return - remote_builtin_keychain_encr = b64decode(r.text) - remote_builtin_keychain = OMEGA_KEY.decrypt(remote_builtin_keychain_encr) - remote_builtin_keychain_phone,remote_builtin_keychain_op = remote_builtin_keychain.split(BSEP) - remote_builtin_keychain_phone_json = unpackage_from_transmission(remote_builtin_keychain_phone) - remote_builtin_keychain_op_json = unpackage_from_transmission(remote_builtin_keychain_op) - - self.log('remote_builtin_keychain_phone_json',remote_builtin_keychain_phone_json) - self.log('remote_builtin_keychain_op_json',remote_builtin_keychain_op_json) - - TELEPHONE_KEYCHAIN={} - OPERATOR_KEYCHAIN={} - dict_merge(TELEPHONE_KEYCHAIN,local_builtin_keychain_phone_json) - dict_merge(OPERATOR_KEYCHAIN,local_builtin_keychain_op_json) - dict_merge(TELEPHONE_KEYCHAIN,remote_builtin_keychain_phone_json) - dict_merge(OPERATOR_KEYCHAIN,remote_builtin_keychain_op_json) - # BUILTIN_KEYCHAIN = meta_keychain - self.log('OPERATOR_KEYCHAIN',OPERATOR_KEYCHAIN) - self.log('TELEPHONE_KEYCHAIN',TELEPHONE_KEYCHAIN) - stop - return BUILTIN_KEYCHAIN - def forge_new_keys(self, diff --git a/komrade/backend/mazes.py b/komrade/backend/mazes.py index 8776120..8fc300f 100644 --- a/komrade/backend/mazes.py +++ b/komrade/backend/mazes.py @@ -4,6 +4,10 @@ from komrade import * log=print +def komrade_request(url): + # return tor_request(url) + return requests.get(url,timeout=60) + def tor_request(url): return tor_request_in_python(url) # return tor_request_in_proxy(url) @@ -131,8 +135,8 @@ from torpy.http.requests import TorRequests, tor_requests_session, do_request as from torpy.http.urlopener import do_request as urllib_request # logging.getLogger('requests').setLevel(logging.CRITICAL) -logging.basicConfig(format='[%(asctime)s] [%(threadName)-16s] %(message)s', level=logging.DEBUG) -logger = logging.getLogger(__name__) +# logging.basicConfig(format='[%(asctime)s] [%(threadName)-16s] %(message)s', level=logging.DEBUG) +# logger = logging.getLogger('komrade') HS_BASIC_HOST = os.getenv('HS_BASIC_HOST') diff --git a/komrade/backend/operators.py b/komrade/backend/operators.py index 11950a8..257a706 100644 --- a/komrade/backend/operators.py +++ b/komrade/backend/operators.py @@ -11,8 +11,9 @@ from komrade.backend.switchboard import * class Operator(Keymaker): - def __init__(self, name, passphrase=None, path_crypt_keys=PATH_CRYPT_CA_KEYS, path_crypt_data=PATH_CRYPT_CA_DATA): - super().__init__(name=name,passphrase=passphrase, path_crypt_keys=path_crypt_keys, path_crypt_data=path_crypt_data) + def __init__(self, name, passphrase=None, keychain = {}, path_crypt_keys=PATH_CRYPT_CA_KEYS, path_crypt_data=PATH_CRYPT_CA_DATA): + super().__init__(name=name,passphrase=passphrase, keychain=keychain, + path_crypt_keys=path_crypt_keys, path_crypt_data=path_crypt_data) self.boot(create=False) def boot(self,create=False): @@ -26,6 +27,29 @@ class Operator(Keymaker): # load keychain into memory self._keychain = self.keychain(force = True) + + @property + def phone(self): + global TELEPHONE,TELEPHONE_KEYCHAIN + if TELEPHONE: return TELEPHONE + self.log('!! getting telephone !!') + if not TELEPHONE_KEYCHAIN: + self.log('!! getting telephone keychain !!') + connect_phonelines() + TELEPHONE=TheTelephone(keychain=TELEPHONE_KEYCHAIN) + return TELEPHONE + + @property + def op(self): + global OPERATOR,OPERATOR_KEYCHAIN + if OPERATOR: return OPERATOR + self.log('!! getting operator !!') + if not OPERATOR_KEYCHAIN: + self.log('!! getting operator keychain !!') + connect_phonelines() + OPERATOR=TheOperator(keychain=OPERATOR_KEYCHAIN) + return OPERATOR + def encrypt_to_send(self,msg_json,from_privkey,to_pubkey): if not msg_json or not from_privkey or not to_pubkey: self.log('not enough info!') @@ -129,3 +153,133 @@ class Operator(Keymaker): # return req_data_encr = unencr_header + BSEP + json_phone_encr + BSEP + json_caller_encr return req_data_encr + + + + + + +### CREATE PRIME ENTITIES +def create_phonelines(): + ## CREATE OPERATOR + op = Operator(name=OPERATOR_NAME) + op_keys_to_keep_on_client = ['pubkey_encr'] + op_keys_to_keep_on_3rdparty = ['pubkey_decr','privkey_decr'] + op_keys_to_keep_on_server = ['adminkey_encr','privkey_decr_encr','privkey_decr_decr','adminkey_decr_encr','adminkey_decr_decr'] + + ## create phone + phone = Operator(name=TELEPHONE_NAME) + phone_keys_to_keep_on_client = ['privkey_encr'] + phone_keys_to_keep_on_3rdparty = ['privkey_decr','pubkey_decr'] + phone_keys_to_keep_on_server = ['pubkey_encr'] + + # create keys for Op + op_decr_keys = op.forge_new_keys( + keys_to_save=op_keys_to_keep_on_server, # on server only; flipped around + keys_to_return=op_keys_to_keep_on_client + op_keys_to_keep_on_3rdparty # on clients only + ) + + # create keys for phone + phone_decr_keys = phone.forge_new_keys( + name=TELEPHONE_NAME, + keys_to_save=phone_keys_to_keep_on_server, # on server only + keys_to_return=phone_keys_to_keep_on_client + phone_keys_to_keep_on_3rdparty # on clients only + ) + + ## store remote keys + THIRD_PARTY_DICT = {OPERATOR_NAME:{}, TELEPHONE_NAME:{}} + for key in op_keys_to_keep_on_3rdparty: + if key in op_decr_keys: + THIRD_PARTY_DICT[OPERATOR_NAME][key]=op_decr_keys[key] + for key in phone_keys_to_keep_on_3rdparty: + if key in phone_decr_keys: + THIRD_PARTY_DICT[TELEPHONE_NAME][key]=phone_decr_keys[key] + + # store local keys + STORE_IN_APP = {OPERATOR_NAME:{}, TELEPHONE_NAME:{}} + for key in op_keys_to_keep_on_client: + if key in op_decr_keys: + STORE_IN_APP[OPERATOR_NAME][key]=op_decr_keys[key] + for key in phone_keys_to_keep_on_client: + if key in phone_decr_keys: + STORE_IN_APP[TELEPHONE_NAME][key]=phone_decr_keys[key] + + # package + STORE_IN_APP_pkg = package_for_transmission(STORE_IN_APP[TELEPHONE_NAME]) + BSEP + package_for_transmission(STORE_IN_APP[OPERATOR_NAME]) + THIRD_PARTY_DICT_pkg = package_for_transmission(THIRD_PARTY_DICT[TELEPHONE_NAME]) + BSEP + package_for_transmission(THIRD_PARTY_DICT[OPERATOR_NAME]) + + # encrypt + omega_key = KomradeSymmetricKeyWithoutPassphrase() + STORE_IN_APP_encr = b64encode(omega_key.encrypt(STORE_IN_APP_pkg)) + THIRD_PARTY_totalpkg = b64encode(omega_key.data + BSEP + omega_key.encrypt(THIRD_PARTY_DICT_pkg)) + + # save + with open(PATH_BUILTIN_KEYCHAIN,'wb') as of: + of.write(STORE_IN_APP_encr) + print('STORE_IN_APP_encr',STORE_IN_APP_encr) + + with open(PATH_OPERATOR_WEB_KEYS_FILE,'wb') as of: + of.write(THIRD_PARTY_totalpkg) + print('THIRD_PARTY_DICT_encr',THIRD_PARTY_totalpkg) + + +def connect_phonelines(): + # globals + global OMEGA_KEY,OPERATOR_KEYCHAIN,TELEPHONE_KEYCHAIN + if OMEGA_KEY and OPERATOR_KEYCHAIN and TELEPHONE_KEYCHAIN: + return (OPERATOR,TELEPHONE) + + # import + from komrade.backend.mazes import tor_request + from komrade.backend import PATH_OPERATOR_WEB_KEYS_URL + + # load local keys + if not os.path.exists(PATH_BUILTIN_KEYCHAIN): + print('builtin keys not present??') + return + with open(PATH_BUILTIN_KEYCHAIN,'rb') as f: + local_builtin_keychain_encr = b64decode(f.read()) + + # load remote keys + print('??',PATH_OPERATOR_WEB_KEYS_URL) + r = tor_request(PATH_OPERATOR_WEB_KEYS_URL) + if r.status_code!=200: + print('cannot authenticate the keymakers') + return + + # unpack remote pkg + pkg = b64decode(r.text) + OMEGA_KEY_b,remote_builtin_keychain_encr = pkg.split(BSEP) + OMEGA_KEY = KomradeSymmetricKeyWithoutPassphrase(key=OMEGA_KEY_b) + remote_builtin_keychain = OMEGA_KEY.decrypt(remote_builtin_keychain_encr) + remote_builtin_keychain_phone,remote_builtin_keychain_op = remote_builtin_keychain.split(BSEP) + remote_builtin_keychain_phone_json = unpackage_from_transmission(remote_builtin_keychain_phone) + remote_builtin_keychain_op_json = unpackage_from_transmission(remote_builtin_keychain_op) + print('remote_builtin_keychain_phone_json',remote_builtin_keychain_phone_json) + print('remote_builtin_keychain_op_json',remote_builtin_keychain_op_json) + + # unpack local pkg + local_builtin_keychain = OMEGA_KEY.decrypt(local_builtin_keychain_encr) + local_builtin_keychain_phone,local_builtin_keychain_op = local_builtin_keychain.split(BSEP) + local_builtin_keychain_phone_json = unpackage_from_transmission(local_builtin_keychain_phone) + local_builtin_keychain_op_json = unpackage_from_transmission(local_builtin_keychain_op) + print('local_builtin_keychain_phone_json',local_builtin_keychain_phone_json) + print('local_builtin_keychain_op_json',local_builtin_keychain_op_json) + + # set builtin keychains + TELEPHONE_KEYCHAIN={} + OPERATOR_KEYCHAIN={} + dict_merge(TELEPHONE_KEYCHAIN,local_builtin_keychain_phone_json) + dict_merge(OPERATOR_KEYCHAIN,local_builtin_keychain_op_json) + dict_merge(TELEPHONE_KEYCHAIN,remote_builtin_keychain_phone_json) + dict_merge(OPERATOR_KEYCHAIN,remote_builtin_keychain_op_json) + + return (OPERATOR_KEYCHAIN,TELEPHONE_KEYCHAIN) + + # # load prime objects? + # from komrade.backend.the_operator import TheOperator + # from komrade.backend.the_telephone import TheTelephone + # OPERATOR = TheOperator(keychain=OPERATOR_KEYCHAIN) + # TELEPHONE = TheTelephone(keychain=TELEPHONE_KEYCHAIN) + + # return (OPERATOR,TELEPHONE) \ No newline at end of file diff --git a/komrade/backend/switchboard.py b/komrade/backend/switchboard.py index e7fc200..e2cb381 100644 --- a/komrade/backend/switchboard.py +++ b/komrade/backend/switchboard.py @@ -8,8 +8,8 @@ from flask import Flask, request, jsonify from flask_classful import FlaskView # PATH_OPERATOR_WEB_KEYS_URI = hashish(b'keys') -PATH_OPERATOR_WEB_KEYS_FILE = f'/home/ryan/www/website-komrade/.builtin.keys' -PATH_OPERATOR_WEB_KEYS_URL = f'http://{KOMRADE_ONION}/.builtin.keys' +# PATH_OPERATOR_WEB_KEYS_FILE = f'/home/ryan/www/website-komrade/.builtin.keys' +# PATH_OPERATOR_WEB_KEYS_URL = f'http://{KOMRADE_ONION}/.builtin.keys' # print(PATH_OPERATOR_WEB_KEYS_URL) diff --git a/komrade/backend/the_operator.py b/komrade/backend/the_operator.py index 488a187..2fc4596 100644 --- a/komrade/backend/the_operator.py +++ b/komrade/backend/the_operator.py @@ -8,10 +8,6 @@ from komrade import * from komrade.backend import * -# PATH_OPERATOR_WEB_KEYS_URI = hashish(b'keys') -PATH_OPERATOR_WEB_KEYS_FILE = f'/home/ryan/www/website-komrade/.builtin.keys' -PATH_OPERATOR_WEB_KEYS_URL = f'http://{KOMRADE_ONION}/.builtin.keys' - # print(PATH_OPERATOR_WEB_KEYS_URL) @@ -27,7 +23,7 @@ class TheOperator(Operator): return TELEPHONE - def __init__(self, name = OPERATOR_NAME, passphrase='acc', allow_builtin=True): + def __init__(self, name = OPERATOR_NAME, passphrase='acc', keychain = {}): """ Boot up the operator. Requires knowing or setting a password of memory. """ @@ -35,8 +31,7 @@ class TheOperator(Operator): # if not os.path.exists(PATH_OPERATOR): os.makedirs(PATH_OPERATOR) if not passphrase: passphrase=getpass.getpass('Hello, this is the Operator speaking. What is the passphrase?\n> ') - self.allow_builtin=allow_builtin - super().__init__(name,passphrase,path_crypt_keys=PATH_CRYPT_OP_KEYS,path_crypt_data=PATH_CRYPT_OP_DATA) + super().__init__(name,passphrase,path_crypt_keys=PATH_CRYPT_OP_KEYS,path_crypt_data=PATH_CRYPT_OP_DATA,keychain=keychain) def decrypt_incoming(self,data): # step 1 split: @@ -194,104 +189,6 @@ class TheOperator(Operator): return (pkg,{}) -def init_operators(): - - ## CREATE OPERATOR - op = Operator(name=OPERATOR_NAME) - - # save what we normally save for a client on the server -- The Op is a client from our pov - - # take 1 - # op_keys_to_keep_on_client = ['pubkey_decr'] - # op_keys_to_keep_on_3rdparty = ['pubkey_encr','privkey_encr'] - # op_keys_to_keep_on_server = ['adminkey_encr', - # 'privkey_decr_encr', - # 'privkey_decr_decr', - # 'adminkey_decr_encr', - # 'adminkey_decr_decr'] - - # phone_keys_to_keep_on_client = ['privkey_decr'] - # phone_keys_to_keep_on_3rdparty = ['privkey_encr','pubkey_encr'] - # phone_keys_to_keep_on_server = ['pubkey_decr'] - - op_keys_to_keep_on_client = ['pubkey_encr'] - op_keys_to_keep_on_3rdparty = ['pubkey_decr','privkey_decr'] - op_keys_to_keep_on_server = ['adminkey_encr', - 'privkey_decr_encr', - 'privkey_decr_decr', - 'adminkey_decr_encr', - 'adminkey_decr_decr'] - - phone_keys_to_keep_on_client = ['privkey_encr'] - phone_keys_to_keep_on_3rdparty = ['privkey_decr','pubkey_decr'] - phone_keys_to_keep_on_server = ['pubkey_encr'] - - op_decr_keys = op.forge_new_keys( - keys_to_save=op_keys_to_keep_on_server, # on server only; flipped around - keys_to_return=op_keys_to_keep_on_client + op_keys_to_keep_on_3rdparty # on clients only - ) - from pprint import pprint - - ## CREATE TELEPHONE - phone = Operator(name=TELEPHONE_NAME) - - - - phone_decr_keys = phone.forge_new_keys( - name=TELEPHONE_NAME, - keys_to_save=phone_keys_to_keep_on_server, # on server only - keys_to_return=phone_keys_to_keep_on_client + phone_keys_to_keep_on_3rdparty # on clients only - ) - - print('OP KEYS RETURNED') - pprint(op_decr_keys) - - - print('PHONE KEYS RETURNED') - pprint(phone_decr_keys) - - - - THIRD_PARTY_DICT = {OPERATOR_NAME:{}, TELEPHONE_NAME:{}} - - for key in op_keys_to_keep_on_3rdparty: - if key in op_decr_keys: - THIRD_PARTY_DICT[OPERATOR_NAME][key]=op_decr_keys[key] - for key in phone_keys_to_keep_on_3rdparty: - if key in phone_decr_keys: - THIRD_PARTY_DICT[TELEPHONE_NAME][key]=phone_decr_keys[key] - - STORE_IN_APP = {OPERATOR_NAME:{}, TELEPHONE_NAME:{}} - - for key in op_keys_to_keep_on_client: - if key in op_decr_keys: - STORE_IN_APP[OPERATOR_NAME][key]=op_decr_keys[key] - for key in phone_keys_to_keep_on_client: - if key in phone_decr_keys: - STORE_IN_APP[TELEPHONE_NAME][key]=phone_decr_keys[key] - - STORE_IN_APP_pkg = package_for_transmission(STORE_IN_APP[TELEPHONE_NAME]) + BSEP + package_for_transmission(STORE_IN_APP[OPERATOR_NAME]) - - THIRD_PARTY_DICT_pkg = package_for_transmission(THIRD_PARTY_DICT[TELEPHONE_NAME]) + BSEP + package_for_transmission(THIRD_PARTY_DICT[OPERATOR_NAME]) - - print('store in app =',STORE_IN_APP) - print('store in web =',THIRD_PARTY_DICT) - print() - - - print('new: make omega key') - omega_key = KomradeSymmetricKeyWithoutPassphrase() - - STORE_IN_APP_encr = b64encode(omega_key.encrypt(STORE_IN_APP_pkg)) - THIRD_PARTY_totalpkg = b64encode(omega_key.data + BSEP + omega_key.encrypt(THIRD_PARTY_DICT_pkg)) - - with open(PATH_BUILTIN_KEYCHAIN,'wb') as of: - of.write(STORE_IN_APP_encr) - print('STORE_IN_APP_encr',STORE_IN_APP_encr) - - with open(PATH_OPERATOR_WEB_KEYS_FILE,'wb') as of: - of.write(THIRD_PARTY_totalpkg) - print('THIRD_PARTY_DICT_encr',THIRD_PARTY_totalpkg) def test_op(): diff --git a/komrade/backend/the_telephone.py b/komrade/backend/the_telephone.py index 4aea6b7..400f2b2 100644 --- a/komrade/backend/the_telephone.py +++ b/komrade/backend/the_telephone.py @@ -8,15 +8,14 @@ class TheTelephone(Operator): """ API client class for Caller to interact with The Operator. """ - def __init__(self, caller=None, allow_builtin=True): + def __init__(self, caller=None, keychain={}): super().__init__( name=TELEPHONE_NAME, + keychain=keychain, path_crypt_keys=PATH_CRYPT_CA_KEYS, path_crypt_data=PATH_CRYPT_CA_KEYS ) self.caller=caller - self.allow_builtin=allow_builtin - self.check_builtin_keys() def dial_operator(self,msg): msg=msg.replace('/','_') @@ -49,8 +48,7 @@ class TheTelephone(Operator): json_phone = {json_phone} json_caller = {json_caller}""") - op_keychain = unpackage_from_transmission(OPERATOR_KEYCHAIN) - phone_keychain = unpackage_from_transmission(TELEPHONE_KEYCHAIN) + print(type(self),self._keychain,self.keychain()) self.log('op_keychain',op_keychain) diff --git a/komrade/constants.py b/komrade/constants.py index b835a13..507e073 100644 --- a/komrade/constants.py +++ b/komrade/constants.py @@ -121,4 +121,12 @@ WHY_MSG = 'Forge the password of memory: ' TELEPHONE_KEYCHAIN = None OPERATOR_KEYCHAIN = None -OMEGA_KEY = None \ No newline at end of file +OMEGA_KEY = None +OPERATOR = None +TELEPHONE = None + + + + +PATH_OPERATOR_WEB_KEYS_FILE = f'/home/ryan/www/website-komrade/.builtin.keys' +PATH_OPERATOR_WEB_KEYS_URL = f'http://{KOMRADE_URL}/.builtin.keys' diff --git a/komrade/utils.py b/komrade/utils.py index d62b26f..6e0bc76 100644 --- a/komrade/utils.py +++ b/komrade/utils.py @@ -10,7 +10,7 @@ def logger(): handler = logging.StreamHandler() formatter = logging.Formatter('[%(asctime)s]\n%(message)s\n') handler.setFormatter(formatter) - logger = logging.getLogger(__file__) + logger = logging.getLogger('komrade') logger.addHandler(handler) logger.setLevel(logging.DEBUG) return logger