diff --git a/komrade/backend/phonelines.py b/komrade/backend/phonelines.py index b9e6765..663a07f 100644 --- a/komrade/backend/phonelines.py +++ b/komrade/backend/phonelines.py @@ -8,7 +8,7 @@ from komrade.backend import * def create_phonelines(): # crypt keycrypt = Crypt(fn=PATH_CRYPT_OP_KEYS) - print(keycrypt.fn) + # print(keycrypt.fn) # Operator op_keypair = KomradeAsymmetricKey() @@ -16,9 +16,11 @@ def create_phonelines(): op_uri = op_pubkey.data_b64_s 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/') - - + # 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) ## Telephone phone_keypair = KomradeAsymmetricKey() diff --git a/komrade/backend/reset.sh b/komrade/backend/reset.sh index 9240a71..402b665 100755 --- a/komrade/backend/reset.sh +++ b/komrade/backend/reset.sh @@ -1,3 +1,5 @@ + + python -c """ import phonelines as p diff --git a/komrade/backend/the_operator.py b/komrade/backend/the_operator.py index ff9027b..6694925 100644 --- a/komrade/backend/the_operator.py +++ b/komrade/backend/the_operator.py @@ -39,6 +39,21 @@ class TheOperator(Operator): from komrade.backend.phonelines import check_phonelines keychain = check_phonelines()[OPERATOR_NAME] self._keychain = {**self.load_keychain_from_bytes(keychain)} + + privkey=None + if os.path.exists(PATH_SUPER_SECRET_OP_KEY): + with open(PATH_SUPER_SECRET_OP_KEY,'rb') as f: + pass_encr=f.read() + try: + privkey=KomradeSymmetricKeyWithPassphrase().decrypt(pass_encr) + except ThemisError: + exit('invalid password. operator shutting down.') + + if privkey: + self._keychain['privkey']=KomradeAsymmetricPrivateKey(b64dec(privkey)) + + pprint(self._keychain) + exit() self._keychain = {**self.keychain()} # self.log('@Operator booted with keychain:',dict_format(self._keychain),'and passphrase',self.passphrase) clear_screen()