diff options
| author | GeorgeFI | 2023-07-20 14:21:21 +0200 |
|---|---|---|
| committer | GeorgeFI | 2023-07-20 14:21:21 +0200 |
| commit | 1927e63064890ec06ff1fa44a3b210909ecf0411 (patch) | |
| tree | 7400874e936c88e07dd1f715d97f6942e78a9b4c | |
| parent | 6e485c4f6b972602a309bf8f361392095672946a (diff) | |
| download | sec-certs-1927e63064890ec06ff1fa44a3b210909ecf0411.tar.gz sec-certs-1927e63064890ec06ff1fa44a3b210909ecf0411.tar.zst sec-certs-1927e63064890ec06ff1fa44a3b210909ecf0411.zip | |
feat: Added graph of references for most referencing certificate
| -rw-r--r-- | notebooks/fips/references.ipynb | 72 |
1 files changed, 44 insertions, 28 deletions
diff --git a/notebooks/fips/references.ipynb b/notebooks/fips/references.ipynb index ed9dc2f5..880f1572 100644 --- a/notebooks/fips/references.ipynb +++ b/notebooks/fips/references.ipynb @@ -1674,7 +1674,7 @@ { "cell_type": "code", "execution_count": 91, - "id": "eca66f32", + "id": "56ab5520", "metadata": {}, "outputs": [], "source": [ @@ -1687,7 +1687,7 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 102, "id": "fd18154a", "metadata": { "scrolled": false @@ -1706,6 +1706,7 @@ ], "source": [ "# TODO - Enrich the graph nodes with assigned CVEs\n", + "# TODO - Refactor me please\n", "graph = nx.DiGraph()\n", "color_map: list[str] = []\n", "referenced_by_df: DataFrame = df[df[\"module_directly_referenced_by\"].notna()]\n", @@ -1718,9 +1719,10 @@ "color_map.append(NODE_COLORS[cert_status])\n", " \n", "for cert_id_str in most_referenced_certificate[\"module_directly_referenced_by\"]:\n", - " graph.add_node(cert_id_str)\n", - " graph.add_edge(cert_id_str, cert_id)\n", - " cert_status: str = get_cert_property(df, int(cert_id_str), \"status\")\n", + " cert_id_int = int(cert_id_str)\n", + " graph.add_node(cert_id_int)\n", + " graph.add_edge(cert_id_int, cert_id)\n", + " cert_status: str = get_cert_property(df, cert_id_int, \"status\")\n", " color_map.append(NODE_COLORS[cert_status])\n", "\n", "fig, ax = plt.subplots(figsize=(15, 15))\n", @@ -1730,42 +1732,56 @@ ] }, { + "cell_type": "markdown", + "id": "ab332b30", + "metadata": {}, + "source": [ + "### Graph of the most referencing certitificate" + ] + }, + { "cell_type": "code", - "execution_count": 80, - "id": "373ea64f", + "execution_count": 108, + "id": "56d5a694", "metadata": {}, "outputs": [ { "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwkAAAMECAYAAAD0BWlSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAADaz0lEQVR4nOzdd1hTZxsG8DuEPWSJ4EZFgruuat17LxRQ66j709a9R63bOuuuttpqHVUJojjrtoq1Wq3WahXFLYrsHSDjfH8AKQG0DuAk5P5dl5eadR5Q4Nw57/O8EkEQBBAREREREWUyEbsAIiIiIiLSLwwJRERERESkgyGBiIiIiIh0MCQQEREREZEOhgQiIiIiItLBkEBERERERDoYEoiIiIiISAdDAhERERER6WBIICIiIiIiHQwJRERERESkgyGBiIiIiIh0MCQQEREREZEOhgQiIiIiItLBkEBERERERDoYEoiIiIiISAdDAhERERER6WBIICIiIiIiHQwJRERERESkgyGBiIiIiIh0MCQQEREREZEOhgQiIiIiItLBkEBERERERDoYEoiIiIiISAdDAhERERER6WBIICIiIiIiHQwJRERERESkgyGBiIiIiIh0MCQQEREREZEOhgQiIiIiItLBkEBERERERDoYEoiIiIiISAdDAhERERER6WBIICIiIiIiHQwJRERERESkgyGBiIiIiIh0MCQQEREREZEOhgQiIiIiItLBkEBERERERDoYEoiIiIiISAdDAhERERER6WBIICIiIiIiHQwJRERERESkgyGBiIiIiIh0MCQQEREREZEOU7ELICIieluCICBZqUZcqhKxqUrEpSmRrtZArREACSCVSGBlKoWjpRkcLM3gaGkGS1Op2GUTERkciSAIgthFEBERvUlCmhKP4lLwJEEBlSbjx5YEwOt+gGW/z8rUBBUdbFDe3oqBgYjoLTEkEBGRXhIEAS+SUvEgNhlRCuUbQ8HbkAAobWcJD0cbOFmZ51OVRERFE0MCERHpnWSlCtdexiNKkZ6vr5sVNCrYW6NGCTuYmrA1j4goLwwJRESkNwRBwKO4FNyMTIAgfNiVg/9iZWqCeiUd4GJtUYBHISIyTAwJRESkF1QaAZdfxOJVclqhHtfL2RZVnG0hkUgK9bhERPqMIYGIiESnVGtw8XkMYlKVohy/or01arkWY1AgIsrE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\n", "text/plain": [ - "['active', 'historical', 'revoked']\n", - "Categories (3, object): ['active', 'historical', 'revoked']" + "<Figure size 1000x1000 with 1 Axes>" ] }, - "execution_count": 80, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "df[\"status\"].unique()" - ] - }, - { - "cell_type": "markdown", - "id": "ab332b30", - "metadata": {}, - "source": [ - "### Graph of the most referencing certitificate" + "# TODO - Enrich the graph nodes with assigned CVEs\n", + "# TODO - Refactor me please\n", + "graph = nx.DiGraph()\n", + "color_map: list[str] = []\n", + "referencing_df: DataFrame = df[df[\"module_directly_referencing\"].notna()]\n", + "most_references_num: int = referencing_df[\"module_directly_referencing\"].apply(len).max()\n", + "most_referencing_cert: Series = referencing_df[referencing_df[\"module_directly_referencing\"].apply(len) == most_references_num].iloc[0]\n", + "cert_id: int = most_referencing_cert[\"cert_id\"]\n", + "cert_status: str = most_referencing_cert[\"status\"]\n", + "color_map.append(NODE_COLORS[cert_status])\n", + "\n", + "\n", + "for cert_id_str in most_referencing_cert[\"module_directly_referencing\"]:\n", + " cert_id_int = int(cert_id_str)\n", + " graph.add_node(cert_id_int)\n", + " graph.add_edge(cert_id, cert_id_int)\n", + " cert_status: str = get_cert_property(df, cert_id_int, \"status\")\n", + " color_map.append(NODE_COLORS[cert_status])\n", + "\n", + " \n", + "fig, ax = plt.subplots(figsize=(10, 10))\n", + "pos = nx.circular_layout(graph)\n", + "nx.draw(graph, pos, node_color=color_map, arrows=True, with_labels=True, node_size=1000)\n", + "plt.show()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "56d5a694", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { |
