keys-on-cli
quadrismegistus 4 years ago
parent 7fa0395d66
commit 79742b628c

@ -18,3 +18,6 @@ from pythemis.scell import SCellSeal
from pythemis.exception import ThemisError
import getpass
from backend import *

@ -15,6 +15,7 @@ from .callers import *
from .phonelines import *
from .messages import *
from .people import *
## define default entities
OPERATOR = None

@ -103,7 +103,7 @@ class Keymaker(Logger):
res = self.load_qr(self.name)
if res: return res
self.log('I don\'t know my public key!')
self.log('I don\'t know my public key! Do I need to register?',do_pause=False)
# raise KomradeException(f'I don\'t know my public key!\n{self}\n{self._keychain}')
return None
@ -327,6 +327,12 @@ Keymaker ({self}) is forging new keys for {name}
fnfn = os.path.join(dir,name+ext)
return fnfn
def print_qr(self,data=None):
import qrcode
qr=qrcode.QRCode()
qr.add_data(self.uri_id if not data else data)
qr.print_ascii()
def save_uri_as_qrcode(self,uri_id=None,name=None):
if not uri_id: uri_id = self.uri_id
if not uri_id and not self.uri_id: raise KomradeException('Need URI id to save!')
@ -337,14 +343,11 @@ Keymaker ({self}) is forging new keys for {name}
qr = pyqrcode.create(uri_id)
ofnfn = self.get_path_qrcode(name=name)
qr.png(ofnfn,scale=5)
qr_str = qr.terminal()
self.log(f'''
Encoded URI(=pubkey_b64) into a QR code:
{qr_str}
I saved it to: {ofnfn}
Saved URI(=pubkey_b64) as a QR code: {ofnfn}
''')
self.print_qr(uri_id)
def save_keychain(self,name,keychain,keys_to_save=None,uri_id=None):
if not keys_to_save: keys_to_save = list(keychain.keys())

@ -135,7 +135,10 @@ class Operator(Keymaker):
def __repr__(self):
clsname=(type(self)).__name__
name = clsname+' '+self.name if self.name!=clsname else clsname
keystr='+'.join(self.top_keys) if self.pubkey else ''
try:
keystr='+'.join(self.top_keys) if self.pubkey else ''
except TypeError:
keystr=''
# if self.pubkey:
if False:
pubk=self.pubkey_b64.decode()

@ -46,21 +46,20 @@ def dict_format(d, tab=0):
return ''.join(s)
import inspect
from komrade.constants import PAUSE_LOGGER
class Logger(object):
def log(self,*x):
def log(self,*x,do_pause=PAUSE_LOGGER,do_clear=PAUSE_LOGGER):
curframe = inspect.currentframe()
calframe = inspect.getouterframes(curframe, 2)
mytype = type(self).__name__
caller = calframe[1][3]
log(f'\n[{mytype}.{caller}()]',*x)
from komrade.constants import PAUSE_LOGGER
if PAUSE_LOGGER:
try:
pause()
clear_screen()
except KeyboardInterrupt:
exit()
try:
if do_pause: pause()
if do_pause: clear_screen()
except KeyboardInterrupt:
exit()
import binascii,base64
def isBase64(sb):

Loading…
Cancel
Save