def get_cryptostorage(): """Open existing CryptoStorage or initialize new one""" if config['mastersecret']: cryptostorage = CryptoStorage( base64.b64decode(config['mastersecret'].encode('utf-8'))) passphrase = b'' else: cryptostorage = CryptoStorage() passphrase = get_new_passphrase() cryptostorage.init_storage(passphrase) config['mastersecret'] = base64.b64encode( cryptostorage.mastersecret).decode('utf-8') config.save() if config['encrypted']: passphrase = passphrase or getpass.getpass('Passphrase: ').encode( 'utf-8') else: passphrase = UNENCRYPTED_PASSPHRASE cryptostorage.open_storage(passphrase) return cryptostorage
def command_passwd(args): if config['mastersecret']: cryptostorage = CryptoStorage( base64.b64decode(config['mastersecret'].encode('utf-8'))) if config['encrypted']: passphrase = getpass.getpass('Current passphrase: ').encode( 'utf-8') else: passphrase = UNENCRYPTED_PASSPHRASE cryptostorage.open_storage(passphrase) new_passphrase = get_new_passphrase() cryptostorage.change_passphrase(new_passphrase) config['mastersecret'] = base64.b64encode( cryptostorage.mastersecret).decode('utf-8') config.save() else: cryptostorage = get_cryptostorage()