From 8646e32882a3f12cf93e52c8dd1050d6a3cd5aa2 Mon Sep 17 00:00:00 2001 From: quadrismegistus Date: Thu, 17 Sep 2020 10:05:52 +0100 Subject: [PATCH] komrade update! --- komrade/backend/operators.py | 12 ++++----- komrade/backend/the_operator.py | 46 +++++++-------------------------- 2 files changed, 15 insertions(+), 43 deletions(-) diff --git a/komrade/backend/operators.py b/komrade/backend/operators.py index 3a06b3d..55c6e11 100644 --- a/komrade/backend/operators.py +++ b/komrade/backend/operators.py @@ -294,8 +294,8 @@ class Operator(Keymaker): crypt=None, uri=None, prefix='/inbox/', - privkey=None, - pubkey=None, + privkey_b=None, + pubkey_b=None, encryptor_func=None, decryptor_func=None): @@ -306,12 +306,12 @@ class Operator(Keymaker): if not uri: uri=self.uri if not encryptor_func or not decryptor_func: - if not privkey: privkey=self.privkey - if not pubkey: pubkey=self.pubkey + if not privkey_b: privkey_b=self.privkey.data + if not pubkey_b: pubkey_b=self.pubkey.data smsg=SMessage( - privkey.data, - pubkey.data + privkey_b, + pubkey_b ) encryptor_func=smsg.wrap decryptor_func=smsg.unwrap diff --git a/komrade/backend/the_operator.py b/komrade/backend/the_operator.py index be462f4..93d2ae9 100644 --- a/komrade/backend/the_operator.py +++ b/komrade/backend/the_operator.py @@ -510,7 +510,7 @@ class TheOperator(Operator): def actually_deliver_msg(self,msg_from_op): msg_from_op_b_encr = msg_from_op.msg #.msg_b # pickle of msg_d - self.log('got this:',msg_from_op_b_encr) + self.log('<-',msg_from_op_b_encr) deliver_to = msg_from_op.to_pubkey deliver_to_b = b64dec(deliver_to) @@ -524,46 +524,18 @@ class TheOperator(Operator): self.log(f'put {msg_from_op} (or {msg_from_op_b_encr}) in {post_id}') # get inbox - inbox_old_encr = self.crypt_keys.get( - deliver_to, - prefix='/inbox/' - ) - self.log(f'old inbox for {deliver_to}',inbox_old_encr) - - if inbox_old_encr: - inbox_old = SMessage( - self.privkey.data, - deliver_to_b - ).unwrap(inbox_old_encr) #.split(BSEP) - else: - inbox_old=b'' - self.log('reloaded inbox:',inbox_old) - - # add new inbox - inbox_new = post_id + (BSEP+inbox_old if inbox_old else b'') - self.log('new inbox = ',inbox_new) - - # reencrypt - inbox_new_encr = SMessage( - self.privkey.data, - deliver_to_b - ).wrap(inbox_new) + inbox_crypt = self.inbox_crypt(pubkey_b=deliver_to_b) + self.log('inbox_crypt',inbox_crypt) + self.log('inbox_crypt.values',inbox_crypt.values) + res_inbox = inbox_crypt.prepend(post_id) - # encrypt - self.log('new inbox encr:',inbox_new_encr) - # save back to crypt - self.crypt_keys.set( - deliver_to, - inbox_new_encr, - prefix='/inbox/', - override=True - ) - - return { + res = { 'status':'Message delivered.', 'success':True, - 'post_id':post_id + 'post_id':post_id, + 'res_inbox':res_inbox } + self.log('->',res) def check_msgs(self, msg_to_op,