From 4a1d25e9783bf4a70b76f9f43c736021ca99b657 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Fri, 20 Dec 2013 14:52:57 -0800 Subject: [PATCH] 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 --- gpg-migrate.py | 10 ++++++++++ 1 file changed, 10 insertions(+) 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: -- 2.26.2