[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Git][ftp-team/dak][master] 2 commits: import-keyring: decode output from gpg key listing



Title: GitLab

Ansgar pushed to branch master at Debian FTP Team / dak

Commits:

2 changed files:

Changes:

  • daklib/dbconn.py
    ... ... @@ -861,7 +861,7 @@ __all__.append('get_or_set_fingerprint')
    861 861
     def get_ldap_name(entry):
    
    862 862
         name = []
    
    863 863
         for k in ["cn", "mn", "sn"]:
    
    864
    -        ret = entry.get(k)
    
    864
    +        ret = six.ensure_str(entry.get(k))
    
    865 865
             if ret and ret[0] != "" and ret[0] != "-":
    
    866 866
                 name.append(ret[0])
    
    867 867
         return " ".join(name)
    
    ... ... @@ -907,7 +907,12 @@ class Keyring(object):
    907 907
             need_fingerprint = False
    
    908 908
     
    
    909 909
             for line_raw in p.stdout:
    
    910
    -            line = six.ensure_str(line_raw)
    
    910
    +            try:
    
    911
    +                line = six.ensure_str(line_raw)
    
    912
    +            except UnicodeDecodeError:
    
    913
    +                # Some old UIDs might not use UTF-8 encoding. We assume they
    
    914
    +                # use latin1.
    
    915
    +                line = six.ensure_str(line_raw, encoding='latin1')
    
    911 916
                 field = line.split(":")
    
    912 917
                 if field[0] == "pub":
    
    913 918
                     key = field[4]
    
    ... ... @@ -960,11 +965,12 @@ class Keyring(object):
    960 965
     
    
    961 966
             for i in Attrs:
    
    962 967
                 entry = i[1]
    
    963
    -            uid = entry["uid"][0]
    
    968
    +            uid = six.ensure_str(entry["uid"][0])
    
    964 969
                 name = get_ldap_name(entry)
    
    965 970
                 fingerprints = entry["keyFingerPrint"]
    
    966 971
                 keyid = None
    
    967 972
                 for f in fingerprints:
    
    973
    +                f = six.ensure_str(f)
    
    968 974
                     key = self.fpr_lookup.get(f, None)
    
    969 975
                     if key not in self.keys:
    
    970 976
                         continue
    

  • daklib/utils.py
    ... ... @@ -786,7 +786,9 @@ def get_logins_from_ldap(fingerprint='*'):
    786 786
                            ['uid', 'keyfingerprint'])
    
    787 787
         login = {}
    
    788 788
         for elem in Attrs:
    
    789
    -        login[elem[1]['keyFingerPrint'][0]] = elem[1]['uid'][0]
    
    789
    +        fpr = six.ensure_str(elem[1]['keyFingerPrint'][0])
    
    790
    +        uid = six.ensure_str(elem[1]['uid'][0])
    
    791
    +        login[fpr] = uid
    
    790 792
         return login
    
    791 793
     
    
    792 794
     ################################################################################
    
    ... ... @@ -807,8 +809,9 @@ def get_users_from_ldap():
    807 809
             name = []
    
    808 810
             for k in ('cn', 'mn', 'sn'):
    
    809 811
                 try:
    
    810
    -                if elem[k][0] != '-':
    
    811
    -                    name.append(elem[k][0])
    
    812
    +                value = six.ensure_str(elem[k][0])
    
    813
    +                if value and value[0] != '-':
    
    814
    +                    name.append(value)
    
    812 815
                 except KeyError:
    
    813 816
                     pass
    
    814 817
             users[' '.join(name)] = elem['uid'][0]
    


  • Reply to: