From: W. Trevor King Date: Fri, 20 Dec 2013 22:52:57 +0000 (-0800) Subject: Add key server preferences signature subpacket parsing to PGPPacket X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=4a1d25e9783bf4a70b76f9f43c736021ca99b657;p=gpg-migrate.git Add key server preferences signature subpacket parsing to PGPPacket From RFC 4880 [1]: (N octets of flags) This is a list of one-bit flags that indicate preferences that the key holder has about how the key is handled on a key server. All undefined flags MUST be zero. First octet: 0x80 = No-modify the key holder requests that this key only be modified or updated by the key holder or an administrator of the key server. This is found only on a self-signature. [1]: http://tools.ietf.org/search/rfc4880#section-5.2.3.17 --- diff --git a/gpg-migrate.py b/gpg-migrate.py index 6055eb1..6273367 100755 --- a/gpg-migrate.py +++ b/gpg-migrate.py @@ -307,6 +307,10 @@ class PGPPacket (dict): return ', '.join( algo for algo in subpacket['preferred-compression-algorithms']) + def _str_key_server_preferences_signature_subpacket(self, subpacket): + return ', '.join( + x for x in sorted(subpacket['key-server-preferences'])) + def _str_key_flags_signature_subpacket(self, subpacket): return ', '.join(x for x in sorted(subpacket['key-flags'])) @@ -584,6 +588,12 @@ class PGPPacket (dict): subpacket['preferred-compression-algorithms'] = [ self._compression_algorithms[d] for d in data] + def _parse_key_server_preferences_signature_subpacket( + self, data, subpacket): + subpacket['key-server-preferences'] = set() + if data[0] & 0x80: + subpacket['key-server-preferences'].add('no-modify') + def _parse_key_flags_signature_subpacket(self, data, subpacket): subpacket['key-flags'] = set() if data[0] & 0x1: