nothing-unencr
quadrismegistus 4 years ago
parent 71380e89c9
commit f2d7898cbb

@ -27,7 +27,7 @@ class Caller(Operator):
'passphrase':hashish(passphrase.encode())
}
phone_res = self.phone.ring_operator(json_phone2phone=req_json)
phone_res = self.phone.ring_ring(json_phone2phone=req_json)
name = phone_res.get('name')
returned_keys = phone_res.get('_keychain')
self.log('got returnd keys from Op:',returned_keys)

@ -175,8 +175,11 @@ class Operator(Keymaker):
msg_b64_str = MSG_b64.decode()
self.log(b' ~~~ rirrrrng ring ~~~~ ring ~~ rrrrriing ~~~',msg_b64_str)
## escape slashes
msg_b64_str_esc=msg_b64_str.replace('/','_')
return msg_b64_str
return msg_b64_str_esc
def answer_phone(self,data_b64_s, from_phone=None,to_phone=None):

@ -40,6 +40,24 @@ class TheOperator(Operator):
path_crypt_data=PATH_CRYPT_OP_DATA)
self._keychain = OPERATOR_KEYCHAIN
def ring_ring(self,
from_caller=None,
to_caller=None,
json_phone2phone={},
json_caller2phone={}, # (person) -> operator or operator -> (person)
json_caller2caller={}):
encr_msg_to_send = super().ring_ring(
from_phone=self,
to_phone=self.phone,
from_caller=from_caller,
to_caller=to_caller,
json_phone2phone=json_phone2phone,
json_caller2phone=json_caller2phone, # (person) -> operator
json_caller2caller=json_caller2caller)
return self.send(encr_msg_to_send)
def recv(self,data):
# decrypt
@ -50,11 +68,11 @@ class TheOperator(Operator):
self.log('recv 2: answer_phone gave me',data_in)
# route
encr_result = self.route(data_in)
self.log('recv 3: route gave me',encr_result)
return self.route(data_in)
# self.log('recv 3: route gave me',encr_result)
# send
return self.send(encr_result)
# # send
# return self.send(encr_result)
def send(self,encr_data_b):
@ -78,10 +96,8 @@ class TheOperator(Operator):
del data['_route']
if route == 'forge_new_keys':
res = self.forge_new_keys(**data)
else:
res = OPERATOR_INTERCEPT_MESSAGE
return res# 'success!'
return self.forge_new_keys(**data)
return OPERATOR_INTERCEPT_MESSAGE
def forge_new_keys(self,**data):
# get keys
@ -91,6 +107,9 @@ class TheOperator(Operator):
pkg['_keychain']=res
self.log('returned keys from keymaker.forge_new_keys:','\n'.join(res.keys()))
return self.ring_ring(json_phone2phone=pkg)

@ -30,37 +30,28 @@ class TheTelephone(Operator):
print(type(self._keychain), self._keychain)
def send_and_receive(self,msg_b64_str):
msg=msg_b64_str.replace('/','_')
URL = OPERATOR_API_URL + msg + '/'
def send_and_receive(self,msg_b64_str_esc):
URL = OPERATOR_API_URL + msg_b64_str_esc + '/'
self.log("DIALING THE OPERATOR:",URL)
# stop
r=komrade_request(URL)
if r.status_code==200:
return r.text
ringring=komrade_request(URL)
if ringring.status_code==200:
um_yes_hello = ringring.text
return self.answer_phone(um_yes_hello,
from_phone=self.op,
to_phone=self
)
else:
self.log('!! error in request',r.status_code,r.text)
self.log('!! error in request',ringring.status_code,ringring.text)
return None
def recv(self,data):
# decrypt
data_in = self.decrypt_incoming(data)
# route
result = self.route(data_json)
# encrypt
data_out = self.encrypt_outgoing(result)
# send
return self.send(res)
def ring_operator(self,
def ring_ring(self,
from_caller=None,
to_caller=None,
json_phone2phone={},
json_caller2phone={}, # (person) -> operator or operator -> (person)
json_caller2caller={}):
encr_msg_to_send = self.ring_ring(
encr_msg_to_send = super().ring_ring(
from_phone=self,
to_phone=self.op,
from_caller=from_caller,
@ -69,10 +60,8 @@ class TheTelephone(Operator):
json_caller2phone=json_caller2phone, # (person) -> operator
json_caller2caller=json_caller2caller)
self.send_and_receive(encr_msg_to_send)
return self.send_and_receive(encr_msg_to_send)
def test_call():
caller = Caller('marx33') #Caller('marx')

Loading…
Cancel
Save