From e2625cc521f93b2796df8a38578ca51c5a614ed9 Mon Sep 17 00:00:00 2001 From: Roman Zeyde Date: Sat, 21 Oct 2017 19:16:48 +0300 Subject: [PATCH] gpg: fail if no public keys are found --- libagent/gpg/keyring.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libagent/gpg/keyring.py b/libagent/gpg/keyring.py index 080d398..27f603d 100644 --- a/libagent/gpg/keyring.py +++ b/libagent/gpg/keyring.py @@ -214,20 +214,23 @@ def gpg_version(sp=subprocess): return line.split(b' ')[-1] # b'2.1.11' -def export_public_key(user_id, sp=subprocess): +def export_public_key(user_id, env=None, sp=subprocess): """Export GPG public key for specified `user_id`.""" args = gpg_command(['--export', user_id], sp=sp) - result = sp.check_output(args=args) + result = sp.check_output(args=args, env=env) if not result: log.error('could not find public key %r in local GPG keyring', user_id) raise KeyError(user_id) return result -def export_public_keys(sp=subprocess): +def export_public_keys(env=None, sp=subprocess): """Export all GPG public keys.""" args = gpg_command(['--export'], sp=sp) - return sp.check_output(args=args) + result = sp.check_output(args=args, env=env) + if not result: + raise KeyError('No GPG public keys found at env: {!r}'.format(env)) + return result def create_agent_signer(user_id):