operator-time
quadrismegistus 4 years ago
parent 61409a5cc7
commit f9fe64756f

@ -1 +1 @@
YmQl1qIbofUAhGVMb/ovPUfKk+2D/LBTjRFrCzWnWXk=
L+fFyO4LR+YEmyGkRINOLzRg5W0uEecL8G90pSf9GXE=

@ -1 +1 @@
AAEBQAwAAAAQAAAA/gAAAKFe9zkxO/spMhB8MUoifbj2ydsbi4I5XKMcm3IcB+Ttuyh3fsUsPO5oAhKVaAExBkHEVMlAbTc/bEDH9vM+bo/i5ZXmgDYeO6CNhXYIOZpQR2uiKz7eYXlLI6KDFND90VI59L4748hGEgEsdbrOIJj07LQopBYo67ewgb59+kqLgcobNXH9IXAaQ4bxB60ooRs9lUn4MxBbHnyzfkgk1AkQr5VvHge/ztZlH3JdXnJNW84d8Kk1LtJECVUW5BDRqKk2v1NzU5NY8j7o/4VGJPQYrx/LpZcta3/kpifvau7giOmvVblwt5xVXElyoLKkGEBzQjCWKIIT8ykKpUgva31q7xrD8i7Xvza9t0RXBG8PuQLXKPMltRlPsw==
AAEBQAwAAAAQAAAA/QAAANOXXbjLE5hD3dkpZsBvtL43fxD+Ex08eoZL2aiRzFFIT1tW/30oxLISlGyadLJ0qJkiqv6JP9U/8UJJR2/YSKtkqcHneZfUqZ11+gU6oQe9TQkP3kpLkMN+sXOHOK56qN0/RAJnVUhdjsRvIAnXR6wisU51RXnW4FLOfLO9nRbV56WE76wWMfzM1ZkeV8Rgjq3cNvuc6KLLokMo8zc9buo2dn38Q3YpD8YgXuPf9uDPTB867/PO/En9NlXymh6TjbNfGY6mmuCrrSbsRGLMdIUmfoJFS1CFWUkqaYV1nZZtg17zdlYVMaEoK99WMPS1Lbtgjb+NHqRAaSVoCbCquYTQhUWpJhU7dDyJm8OkWaFwvx0wI1Erg6P8

@ -53,7 +53,7 @@ class TheOperator(Operator):
if data_encr_by_caller and 'name' in data_unencr_by_phone:
name=data_unencr_by_phone['name']
keychain=data_unencr_by_phone.get('keychain',{})
keychain=data_unencr_by_phone.get('_keychain',{})
# decrypt using this user's pubkey on record
caller = Caller(name)
@ -73,16 +73,15 @@ class TheOperator(Operator):
data = self.decrypt_incoming(data)
# decode
# data_s = data.decode()
data_json = json.load(data)
data_s = data.decode()
data_json = json.loads(data_s)
self.log('DATA =',type(data),data)
# self.log('DATA_s =',type(data_s),data_s)
self.log('DATA_json =',type(data_json),data_json)
self.log('DATA_s =',type(data_s),data_s)
self.log('DATA_json =',type(data_json),data_s)
stop
return self.route(data)
return self.route(data_json)
def route(self, data):
# data = self.decrypt_incoming(data)
@ -115,8 +114,8 @@ def init_operators():
# keys_to_return = ['pubkey_encr','privkey_encr','adminkey_encr','adminkey_decr_encr']
op_decr_keys = op.forge_new_keys(
keys_to_save=['pubkey','privkey','adminkey_encr','adminkey_decr_encr','adminkey_decr_decr'],
keys_to_return=['pubkey']
keys_to_save=['pubkey','privkey_encr','adminkey_encr','adminkey_decr_encr','adminkey_decr_decr'],
keys_to_return=['pubkey','privkey_decr']
)
phone_decr_keys = phone.forge_new_keys(

@ -32,13 +32,29 @@ class TheTelephone(Operator):
return r
return r
async def req(self,json_coming_from_phone={},json_coming_from_caller={},caller=None):
async def req(self,json_coming_from_phone={},json_coming_from_caller={},caller=None,json_unencrypted={}):
if not caller: caller=self.caller
# Two parts of every request:
# Three parts of every request:
# 0) Unencrypted. do not use except for very specific minimal reasons!
# the one being: giving the operator half his private key back:
# which we have but he doesn't
if not '_keychain' in json_unencrypted:
json_unencrypted['_keychain']={}
_kc = json_unencrypted['_keychain']
if not 'privkey_decr' in _kc:
_kc['privkey_decr'] = self.op.privkey_decr
self.log('REQ!!!!!',_kc)
# 1) only overall encryption layer E2EE Telephone -> Operator:
if json_unencrypted:
json_unencrypted_s = json.dumps(json_unencrypted)
json_unencrypted_b = json_unencrypted_s.encode()
else:
json_unencrypted_b = b''
self.log('json_unencrypted_b',json_unencrypted_b)
req_data = []
# 1) only overall encryption layer E2EE Telephone -> Operator:
if json_coming_from_phone:
json_coming_from_phone_s = json.dumps(json_coming_from_phone)
json_coming_from_phone_b = json_coming_from_phone_s.encode()
@ -55,7 +71,7 @@ class TheTelephone(Operator):
json_coming_from_caller_b_encr = b''
# encrypt whole package E2EE, Telephone to Operator
req_data_encr = json_coming_from_phone_b_encr + BSEP + json_coming_from_caller_b_encr
req_data_encr = json_unencrypted_b + BSEP + json_coming_from_phone_b_encr + BSEP + json_coming_from_caller_b_encr
# req_data_encr = SMessage(self.privkey_,self.op.pubkey_).wrap(req_data)
req_data_encr_b64 = b64encode(req_data_encr)
self.log('req_data_encr_b64 <--',req_data_encr_b64)

Loading…
Cancel
Save