Esempio n. 1
0
def do_get(config, files, options):
    if not files:
        print_help()

    if not ensure_files_exist(config, files):
        return 1

    key = read_master_key(config)
    if key is False:
        return 1

    # Human-readable output
    def normal_output(filename, secret):
        print('%s: %s' % (filename, secret))
        print('')

    # Machine-readable output
    def raw_output(filename, secret):
        print(secret)

    if options.raw:
        output = raw_output
    else:
        print('')
        output = normal_output

    for filename in files:
        secret = gpg_decrypt(os.path.join(config.topdir, filename), key)
        if not secret:
            print('Error: Failed to decrypt %s\n' % filename, file=sys.stderr)
        else:
            output(filename, secret.decode('utf-8'))
Esempio n. 2
0
def read_master_key():
    if not os.path.isfile('.salakey'):
        print >>sys.stderr, "Error: Run `sala init' first"
        return False

    passphrase = read_passphrase('Enter the master passphrase')
    if not passphrase:
        return False

    key = gpg_decrypt('.salakey', passphrase)
    if not key:
        print >>sys.stderr, 'Error: Unable to unlock the encryption key'
        return False

    print ''
    return key
Esempio n. 3
0
def read_master_key(config):
    if not os.path.isfile(config.keyfile):
        print("Error: Run `sala init' first", file=sys.stderr)
        return False

    passphrase = read_passphrase('Enter the master passphrase')
    if not passphrase:
        return False

    key = gpg_decrypt(config.keyfile, passphrase)
    if not key:
        print('', file=sys.stderr)
        print('Error: Unable to unlock the encryption key', file=sys.stderr)
        return False

    return key
Esempio n. 4
0
def do_get(config, files):
    if not files:
        print_help()

    ensure_files_exist(files)

    key = read_master_key()
    if key is False:
        return 1

    for filename in files:
        secret = gpg_decrypt(filename, key)
        if secret:
            print '%s: %s' % (filename, secret)
        else:
            print 'Error: Failed to decrypt %s' % filename
        print ''