def process_cpe_item(item=None): if item is None: return None if "cpe23Uri" not in item: return None cpe = {} cpe["title"] = generate_title(item["cpe23Uri"]) cpe["cpe_2_2"] = item["cpe23Uri"] cpe["cpe_name"] = item["cpe_name"] version_info = "" if "versionStartExcluding" in item: cpe["versionStartExcluding"] = item["versionStartExcluding"] version_info += cpe["versionStartExcluding"] if "versionStartIncluding" in item: cpe["versionStartIncluding"] = item["versionStartIncluding"] version_info += cpe["versionStartIncluding"] if "versionEndExcluding" in item: cpe["versionEndExcluding"] = item["versionEndExcluding"] version_info += cpe["versionEndExcluding"] if "versionEndIncluding" in item: cpe["versionEndIncluding"] = item["versionEndIncluding"] version_info += cpe["versionEndIncluding"] sha1_hash = hashlib.sha1(cpe["cpe_2_2"].encode("utf-8") + version_info.encode("utf-8")).hexdigest() cpe["id"] = sha1_hash return cpe
def process_cpe_item(item=None): if item is None: return None if "cpe23Uri" not in item: return None cpe = { "title": generate_title(item["cpe23Uri"]), "cpe_2_2": item["cpe23Uri"], "cpe_name": item["cpe_name"], "vendor": item["cpe23Uri"].split(":")[3], "product": item["cpe23Uri"].split(":")[4], } version_info = "" if "versionStartExcluding" in item: cpe["versionStartExcluding"] = item["versionStartExcluding"] version_info += cpe["versionStartExcluding"] + "_VSE" if "versionStartIncluding" in item: cpe["versionStartIncluding"] = item["versionStartIncluding"] version_info += cpe["versionStartIncluding"] + "_VSI" if "versionEndExcluding" in item: cpe["versionEndExcluding"] = item["versionEndExcluding"] version_info += cpe["versionEndExcluding"] + "_VEE" if "versionEndIncluding" in item: cpe["versionEndIncluding"] = item["versionEndIncluding"] version_info += cpe["versionEndIncluding"] + "_VEI" sha1_hash = hashlib.sha1(cpe["cpe_2_2"].encode("utf-8") + version_info.encode("utf-8")).hexdigest() cpe["id"] = sha1_hash return cpe