komrade update!

posting
quadrismegistus 4 years ago
parent 9038e98754
commit 655e6c3f83

@ -304,15 +304,19 @@ class Operator(Keymaker):
if not uri: uri=self.uri
if not encryptor_func or not decryptor_func:
if not privkey_b: privkey_b=self.privkey.data
if not pubkey_b: pubkey_b=self.op.pubkey.data
smsg=SMessage(
privkey_b,
pubkey_b
)
encryptor_func=smsg.wrap
decryptor_func=smsg.unwrap
encryptor_func=self.privkey_decr.encrypt
decryptor_func=self.privkey_decr.decrypt
# if not encryptor_func or not decryptor_func:
# if not privkey_b: privkey_b=self.privkey.data
# if not pubkey_b: pubkey_b=self.op.pubkey.data
# smsg=SMessage(
# privkey_b,
# pubkey_b
# )
# encryptor_func=smsg.wrap
# decryptor_func=smsg.unwrap
inbox_crypt = CryptList(
crypt=self.crypt_data,

@ -14,16 +14,14 @@ def create_phonelines():
op_keypair = KomradeAsymmetricKey()
op_pubkey,op_privkey = op_keypair.pubkey_obj,op_keypair.privkey_obj
op_uri = op_pubkey.data_b64
op_privkey_decr = KomradeSymmetricKeyWithoutPassphrase()
op_privkey_encr = KomradeEncryptedAsymmetricPrivateKey(
data=op_privkey_decr.encrypt(op_privkey.data)
)
keycrypt.set(OPERATOR_NAME,op_pubkey.data,prefix='/pubkey/')
keycrypt.set(op_uri,OPERATOR_NAME,prefix='/name/')
# keycrypt.set(op_uri,op_privkey.data,prefix='/privkey/')
# pass_encr = KomradeSymmetricKeyWithPassphrase().encrypt(op_privkey.data)
# print('pass_encr',pass_encr)
with open(PATH_SUPER_SECRET_OP_KEY,'wb') as of:
#of.write(pass_encr)
# for now only!!! -->
of.write(op_privkey.data_b64)
of.write(b64enc(op_privkey_decr.data + BSEP + op_privkey_encr.data))
with open(PATH_OPERATOR_WEB_KEYS_FILE,'w') as of:
of.write(op_pubkey.data_b64_s)

@ -13,7 +13,6 @@ from komrade.backend.messages import Message
# def TheOperator(*x,**y):
# from komrade.backend.operators import Komrade
# return Komrade(OPERATOR_NAME,*x,**y)
OP_PRIVKEY = None
class TheOperator(Operator):
"""
@ -31,7 +30,6 @@ class TheOperator(Operator):
"""
Boot up the operator. Requires knowing or setting a password of memory.
"""
global OP_PRIVKEY
super().__init__(
name,
@ -59,26 +57,18 @@ class TheOperator(Operator):
else:
raise KomradeException('Public key for Operator on app and one at {PATH_OPERATOR_WEB_KEYS_URL} do not match. Shutting down.')
privkey=None
if os.path.exists(PATH_SUPER_SECRET_OP_KEY):
if OP_PRIVKEY:
privkey=OP_PRIVKEY
else:
if os.path.exists(PATH_SUPER_SECRET_OP_KEY):
print('Dare I claim to be the one true Operator?')
with open(PATH_SUPER_SECRET_OP_KEY,'rb') as f:
#pass_encr=f.read()
privkey = f.read()
# try:
# privkey=KomradeSymmetricKeyWithPassphrase().decrypt(pass_encr)
# if privkey: OP_PRIVKEY = privkey
# except ThemisError:
# exit('invalid password. operator shutting down.')
if privkey:
self._keychain['privkey']=KomradeAsymmetricPrivateKey(b64dec(privkey))
# print(self._keychain['privkey'],'??')
privkey_decr,privkey_encr = b64dec(f.read()).split(BSEP)
privkey_decr_obj = KomradeSymmetricKeyWithoutPassphrase(privkey_decr)
privkey_encr_obj = KomradeEncryptedAsymmetricPrivateKey(privkey_encr)
self._keychain['privkey_decr']=privkey_decr_obj
self._keychain['privkey_encr']=privkey_encr_obj
self._keychain = {**self.keychain()}
# self.log('@Operator booted with keychain:',dict_format(self._keychain),'and passphrase',self.passphrase)
self.log('@Operator booted with keychain:',dict_format(self._keychain))
# clear_screen()

Loading…
Cancel
Save