finally! abolishing private key property

operator-time
quadrismegistus 4 years ago
parent deaa03a065
commit 163c53e102

@ -373,6 +373,7 @@ class Keymaker(Logger):
def check_builtin_keys(self):
global OMEGA_KEY,BUILTIN_KEYCHAIN
if OMEGA_KEY and BUILTIN_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??')
@ -390,11 +391,49 @@ class Keymaker(Logger):
from komrade.backend.mazes import tor_request
from komrade.backend import PATH_OPERATOR_WEB_KEYS_URL
remote_builtin_keychain_encr = tor_request(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)
print('remote',remote_builtin_keychain_encr)
stop
# stop
remote_builtin_keychain = unpackage_from_transmission(
OMEGA_KEY.decrypt(
remote_builtin_keychain_encr
)
)
self.log('remote_builtin_keychain',remote_builtin_keychain)
# for nm in [OPERATOR_NAME,TELEPHONE_NAME]:
# local_builtin_keychain[nm]=unpackage_from_transmission(local_builtin_keychain[nm])
# remote_builtin_keychain[nm]=unpackage_from_transmission(remote_builtin_keychain[nm])
# self.log('unpackaged local',unpackage_from_transmission(local_builtin_keychain))
# self.log('unpackaged remote',unpackage_from_transmission(remote_builtin_keychain))
dict_merge(meta_keychain,local_builtin_keychain)
dict_merge(meta_keychain,remote_builtin_keychain)
BUILTIN_KEYCHAIN = meta_keychain
self.log('meta_keychain',meta_keychain)
return BUILTIN_KEYCHAIN
def forge_new_keys(self,

@ -9,7 +9,7 @@ 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}/op/.builtin.keys/'
PATH_OPERATOR_WEB_KEYS_URL = f'http://{KOMRADE_ONION}/.builtin.keys'
# print(PATH_OPERATOR_WEB_KEYS_URL)

@ -10,7 +10,7 @@ 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/'
PATH_OPERATOR_WEB_KEYS_URL = f'http://{KOMRADE_ONION}/.builtin.keys'
# print(PATH_OPERATOR_WEB_KEYS_URL)
@ -256,15 +256,9 @@ def init_operators():
if key in phone_decr_keys:
STORE_IN_APP[TELEPHONE_NAME][key]=phone_decr_keys[key]
STORE_IN_APP = package_for_transmission({
OPERATOR_NAME:package_for_transmission(STORE_IN_APP[OPERATOR_NAME]),
TELEPHONE_NAME:package_for_transmission(STORE_IN_APP[TELEPHONE_NAME])
})
STORE_IN_APP_pkg = package_for_transmission(STORE_IN_APP[TELEPHONE_NAME]) + BSEP + package_for_transmission(STORE_IN_APP[OPERATOR_NAME])
THIRD_PARTY_DICT = package_for_transmission({
OPERATOR_NAME:package_for_transmission(THIRD_PARTY_DICT[OPERATOR_NAME]),
TELEPHONE_NAME:package_for_transmission(THIRD_PARTY_DICT[TELEPHONE_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)
@ -274,8 +268,8 @@ def init_operators():
print('new: make omega key')
omega_key = KomradeSymmetricKeyWithoutPassphrase()
STORE_IN_APP_encr = b64encode(omega_key.encrypt(STORE_IN_APP))
THIRD_PARTY_DICT_encr = b64encode(omega_key.encrypt(THIRD_PARTY_DICT))
STORE_IN_APP_encr = b64encode(omega_key.encrypt(STORE_IN_APP_pkg))
THIRD_PARTY_DICT_encr = b64encode(omega_key.encrypt(THIRD_PARTY_DICT_pkg))
with open(PATH_OMEGA_KEY,'wb') as of:
of.write(b64encode(omega_key.data))

@ -75,16 +75,23 @@ def package_for_transmission(data_json):
return b64encode(data_json_b)
def unpackage_from_transmission(data_json_b):
data_json_s = b64decode(data_json_b).decode()
print(type(data_json_b),'data_json_b1???',data_json_b)
if type(data_json_b)==bytes and isBase64(data_json_b): data_json_b=b64decode(data_json_b)
print(type(data_json_b),'data_json_b???',data_json_b)
# print(type(data_json_b),)
data_json_s = data_json_b.decode()
print(type(data_json_s),'data_json_s???',data_json_s)
data_json = json.loads(data_json_s)
print(type(data_json),'data_json???',data_json)
for k,v in data_json.items():
if type(v)==bytes:
if isBase64(v): v=b64decode(v.decode())
if isBase64(v):v=b64decode(v.decode())
data_json[k]=v
elif type(v)==str:
if isBase64(v): v=b64decode(v.encode())
elif type(v)==dict:
v=unpackage_from_transmission(v)
data_json[k]=v
data_json[k]=v
elif type(v)==dict:
data_json[k]=unpackage_from_transmission(v)
return data_json

Loading…
Cancel
Save