Beispiel #1
0
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
Beispiel #2
0
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()