diff --git a/trezor_agent/gpg/decode.py b/trezor_agent/gpg/decode.py index 6035142..3a7969a 100644 --- a/trezor_agent/gpg/decode.py +++ b/trezor_agent/gpg/decode.py @@ -286,15 +286,13 @@ def collect_packets(packets, types_to_collect): return result -def parse_public_key(stream): +def parse_public_keys(stream): """Parse GPG public key into hierarchy of packets.""" packets = list(parse_packets(stream)) packets = collect_packets(packets, {'signature'}) packets = collect_packets(packets, {'user_id', 'user_attribute'}) packets = collect_packets(packets, {'subkey'}) - if len(packets) != 1: - raise ValueError('Unexpected packet structure: %r', packets) - return packets[0] + return packets HASH_ALGORITHMS = { diff --git a/trezor_agent/gpg/tests/test_decode.py b/trezor_agent/gpg/tests/test_decode.py index 92fc82d..00d5eec 100644 --- a/trezor_agent/gpg/tests/test_decode.py +++ b/trezor_agent/gpg/tests/test_decode.py @@ -111,4 +111,5 @@ def public_key_path(request): def test_gpg_files(public_key_path): # pylint: disable=redefined-outer-name with open(public_key_path, 'rb') as f: - decode.parse_public_key(f) + keys = decode.parse_public_keys(f) + assert len(keys) > 0