diff --git a/komrade/__init__.py b/komrade/__init__.py index d149f5a..a96bceb 100644 --- a/komrade/__init__.py +++ b/komrade/__init__.py @@ -1,4 +1,5 @@ # basic config +from .art import * from .constants import * from .utils import * diff --git a/komrade/art.py b/komrade/art.py new file mode 100644 index 0000000..8994591 --- /dev/null +++ b/komrade/art.py @@ -0,0 +1,62 @@ +ART_TELEPHONE = """ + ..--""""----.. + .-" ..--""""--.j-. + .-" .-" .--.""--.. + .-" .-" ..--"-. \/ ; + .-" .-"_.--..--"" ..--' "-. : + .' .' / `. \..--"" __ _ \ ; + :.__.-" \ / .' ( )"-. Y + ; ;: ( ) ( ). \ + .': /:: : \ \ + .'.-"\._ _.-" ; ; ( ) .-. ( ) \ + " `.""" .j" : : \ ; ; \ + bug /"""""/ ; ( ) "" :.( ) \ + /\ / : \ \`.: _ \ + : `. / ; `( ) (\/ :" \ \ + \ `. : "-.(_)_.' t-' ; + \ `. ; ..--": + `. `. : ..--"" : + `. "-. ; ..--"" ; + `. "-.:_..--"" ..--" + `. : ..--"" + "-. : ..--"" + "-.;_..--"" + +""" + + +ART_OLDPHONE = """ + __ + /` _`\ + | (_()| .-. + \_ _/_/ \ + ||=[_] | + || | | | + ||/ \ | + ||`---' / + .--'||-.___.' + /` .-||-. + '-/`.____.`\ +jgs '.______.' +""" + + +ART_ROTARY = """ + _...----..._ + ,-' ,-. `-. + ,' ,-. ( 4 ) ,-. `. + ,' ( 5 ) `-' ( 3 ) `. + / ,-. `-',-'' ``-.`-' ,-. \ + / ( 6 ) ,' `. ( 2 ) \ +: `-' / FEUER \ `-' : +| ,-. : ________ : ,-. | +|( 7 ) | |________| | ( 1 )| +| `-' : ; `-' | +: ,-. \ NOTRUF / ; + \ ( 8 ) `. ,'(`. / + \ `-' ,-.`-..__..-' \ `-./ + `. ( 9 ) ,-. \ ,' + `. `-' ( 0 ) ,'` + `-._ `-' _.-' + ```----''' SSt +""" \ No newline at end of file diff --git a/komrade/backend/people.py b/komrade/backend/people.py index 82f60fe..3e3af73 100644 --- a/komrade/backend/people.py +++ b/komrade/backend/people.py @@ -43,6 +43,14 @@ class Persona(Caller): # if keys.get('pubkey') and keys.get('privkey') def register(self, name = None, passphrase = DEBUG_DEFAULT_PASSPHRASE, is_group=None): + self.status([ + f'@{name}: Uh yes hello, Operator? Could I please register as Komrade @{name}?', + ART_OLDPHONE, + '''@TheOperator: Sure, but it's not safe for me to cut the keys you need. Why don't you do that yourself, and come back to me when you've cut a special "asymmetric" key in half: you can keep both halves, and I'll keep one, that way we'll always know we're talking to each other.''', + f'{@name}: Ok but how do I cut these keys?', + '@TheOperator: Visit the Keymaker.' + ]) + # get needed metadata if not name: name=self.name if name is None: diff --git a/komrade/backend/the_operator.py b/komrade/backend/the_operator.py index 27c689b..ba9cb24 100644 --- a/komrade/backend/the_operator.py +++ b/komrade/backend/the_operator.py @@ -135,7 +135,7 @@ cv = {cv_b64} ], key_types = { 'adminkey':KomradeSymmetricKeyWithoutPassphrase(), - 'adminkey_encr':ENCRYPTED_KEY, + 'adminkey_encr':KomradeEncryptedKey(), 'adminkey_decr':KomradeSymmetricKeyWithPassphrase(passphrase=passphrase) } ) @@ -155,7 +155,9 @@ cv = {cv_b64} # set in crypt key_to_be_hashed = cv_b64 + passphrase - self.crypt_keys.set(key_to_be_hashed, settings_b_encr) + self.crypt_keys.set(key_to_be_hashed, settings_b_encr, prefix='/settings/') + self.crypt_keys.set(key_to_be_hashed, settings_b_encr, prefix='/adminkey_encr/') + # give back decryptor diff --git a/komrade/utils.py b/komrade/utils.py index 010fbd9..7e4810a 100644 --- a/komrade/utils.py +++ b/komrade/utils.py @@ -60,16 +60,16 @@ class Logger(object): caller = calframe[1][3] log(f'\n[{mytype}.{caller}()]',*x) - try: - if pause: do_pause() - if pause: clear_screen() - except KeyboardInterrupt: - exit() + # try: + if pause: do_pause() + if pause: clear_screen() + # except KeyboardInterrupt: + exit() def status(self,status_msg): paras=[] for para in status_msg.split('\n\n'): - self.log(para.strip()) + self.log(para.strip(),pause=True,clear=False) paras.append(para) return paras