Example #1
0
 def recode(self, text):
     encoding = self.encodings.get(text)
     if encoding is None:
         return text
     if sys.version_info[0] >= 3:
         # sys.stdin is set up for surrogates in GPGKeys.input()
         return decode(encode(text, encoding), errors='surrogateescape')
     else:
         return encode(decode(text), encoding)
Example #2
0
 def parse_keys(self, stdoutdata):
     # Process stdoutdata as byte string since we must run
     # unescape before decoding.
     for line in stdoutdata.strip().split(b('\n')):
         if line[:3] == b('pub'):
             fields = line.split(b(':'))
             keyid = fields[4][8:]
             userid = unescape(fields[9])
             keyid, key_enc = gpgdecode(keyid)
             userid, user_enc = gpgdecode(userid)
             if sys.version_info[0] < 3:
                 keyid = encode(keyid)
                 userid = encode(userid)
             self.encodings.setdefault(userid, user_enc)
             yield (keyid, userid)