From f4477b63f603f998a9b766ead822b9ed5bd82138 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Fri, 20 Dec 2013 13:59:57 -0800 Subject: [PATCH] Add preferred symmetric algorithm signature subpacket parsing to PGPPacket From RFC 4880 [1]: (array of one-octet values) Symmetric algorithm numbers that indicate which algorithms the key holder prefers to use. The subpacket body is an ordered list of octets with the most preferred listed first. It is assumed that only algorithms listed are supported by the recipient's software. Algorithm numbers are in Section 9. This is only found on a self- signature. [1]: http://tools.ietf.org/search/rfc4880#section-5.2.3.7 --- gpg-migrate.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gpg-migrate.py b/gpg-migrate.py index aeda78c..a1dbb7a 100755 --- a/gpg-migrate.py +++ b/gpg-migrate.py @@ -292,6 +292,11 @@ class PGPPacket (dict): def _str_issuer_signature_subpacket(self, subpacket): return subpacket['issuer'][-8:].upper() + def _str_preferred_symmetric_algorithms_signature_subpacket( + self, subpacket): + return ', '.join( + algo for algo in subpacket['preferred-symmetric-algorithms']) + def _str_key_flags_signature_subpacket(self, subpacket): return ', '.join(x for x in sorted(subpacket['key-flags'])) @@ -551,6 +556,11 @@ class PGPPacket (dict): def _parse_issuer_signature_subpacket(self, data, subpacket): subpacket['issuer'] = ''.join('{:02x}'.format(byte) for byte in data) + def _parse_preferred_symmetric_algorithms_signature_subpacket( + self, data, subpacket): + subpacket['preferred-symmetric-algorithms'] = [ + self._symmetric_key_algorithms[d] for d in data] + def _parse_key_flags_signature_subpacket(self, data, subpacket): subpacket['key-flags'] = set() if data[0] & 0x1: -- 2.26.2