Add keyid/longkeyid separation and assignment
authorBrian Dolbec <dolsen@gentoo.org>
Sat, 22 Jun 2013 21:01:48 +0000 (14:01 -0700)
committerBrian Dolbec <dolsen@gentoo.org>
Sun, 23 Jun 2013 04:30:59 +0000 (21:30 -0700)
gkeyldap/cli.py
gkeyldap/search.py

index b506f644f1c41c505c51d539ba04f28abbcdec6a..dae772a758fba6d0d3cceb9f105a59c8e17f8487 100644 (file)
@@ -20,6 +20,32 @@ from gkeyldap.search import (LdapSearch, UID, gkey2ldap_map, gkey2SEARCH)
 logger.setLevel(0)
 
 
+# set some defaults
+KEY_LEN = {
+    'keyid': 8,
+    'longkeyid': 16,
+}
+
+
+def get_key_ids(key, info):
+    '''Small utility function to return only keyid (short)
+    or longkeyid's
+
+    @param key: string, the key lenght desired
+    @param info: list of keysid's to process
+    @return list of the desired key lengh id's
+    '''
+    result = []
+    for x in info:
+        if x.startswith('0x'):
+            mylen = KEY_LEN[key] + 2
+        else:
+            mylen = KEY_LEN[key]
+        if len(x) == mylen:
+            result.append(x)
+    return result
+
+
 class Main(object):
     '''Main command line interface class'''
 
@@ -188,7 +214,6 @@ class Main(object):
         return (x, target, search_field)
 
 
-
     @staticmethod
     def build_gkeydict(info):
         keyinfo = {}
@@ -222,6 +247,9 @@ class Main(object):
                 values = info[field]
                 if values and field in ['uid', 'cn' ]:
                     value = values[0]
+                # separate out short/long key id's
+                elif values and x in ['keyid', 'longkeyid']:
+                    value = get_key_ids(x, values)
                 else:
                     value = values
                 if 'undefined' in values:
@@ -234,10 +262,3 @@ class Main(object):
                 keyinfo.append(None)
         return keyinfo
 
-
-if __name__ == '__main__':
-
-    Main()
-
-
-
index 66721f1b8fcca5940d37b7655979966cd347207c..8d323f48b6341a42c0e67c5fe7c8a1ed8d540b3f 100644 (file)
@@ -19,7 +19,7 @@ gkey2ldap_map = {
     'nick': 'uid',
     'name': 'cn',
     'keyid': 'gpgkey',
-    'longkeyid': '',
+    'longkeyid': 'gpgkey',
     'keyring': '',
     'fingerprint': 'gpgfingerprint'
 }