self.key_cache[keydata["fingerprint"]] = key if len(keys) > 5: # Just to set some limit... break self.key_cache[messageid] = keys return keys def has_pgpkey_data_kw_extractor(index, msg, mimetype, filename, part, loader, body_info=None, **kwargs): kws = [] if _might_be_pgp_key(filename, mimetype): data = _get_keydata(part.get_payload(None, True)) for keydata in data: for uid in keydata.get('uids', []): if uid.get('email'): kws.append('%s:pgpkey' % uid['email'].lower()) if data: body_info['pgp_key'] = filename kws += ['pgpkey:has'] # FIXME: If this part is a signature, record which signatures we've # seen from which keys, for historic profiling purposes. Keys # used more often are less likely to be forgeries. return kws register_crypto_key_lookup_handler(EmailKeyLookupHandler) _plugins.register_data_kw_extractor('pgpkey', has_pgpkey_data_kw_extractor) _ = gettext
self.key_cache[keydata["fingerprint"]] = key if len(keys) > 5: # Just to set some limit... break self.key_cache[messageid] = keys return keys def has_pgpkey_data_kw_extractor(index, msg, mimetype, filename, part, loader, body_info=None, **kwargs): kws = [] if _might_be_pgp_key(filename, mimetype): data = _get_keydata(part.get_payload(None, True)) for keydata in data: for uid in keydata.get('uids', []): if uid.get('email'): kws.append('%s:pgpkey' % uid['email'].lower()) if data: body_info['pgp_key'] = filename kws += ['pgpkey:has'] # FIXME: If this is a PGP key, make all the key IDs searchable so # we can find this file again later! Searching by e-mail is lame. # This is issue #655 ? return kws register_crypto_key_lookup_handler(EmailKeyLookupHandler) _plugins.register_data_kw_extractor('pgpkey', has_pgpkey_data_kw_extractor) _ = gettext