diff options
| author | GeorgeFI | 2023-07-17 16:04:09 +0200 |
|---|---|---|
| committer | GeorgeFI | 2023-07-17 16:04:09 +0200 |
| commit | 5002f93148cdb44a0db55dc8bdca67a726c3942c (patch) | |
| tree | c0f0a6d10fce9ad032e2787945ded5802820ca34 | |
| parent | 079d191301156a89f3fa29ca4acaa6c077080bea (diff) | |
| download | sec-certs-5002f93148cdb44a0db55dc8bdca67a726c3942c.tar.gz sec-certs-5002f93148cdb44a0db55dc8bdca67a726c3942c.tar.zst sec-certs-5002f93148cdb44a0db55dc8bdca67a726c3942c.zip | |
feat: Added barplots for cert type and embodiment
| -rw-r--r-- | notebooks/fips/references.ipynb | 147 |
1 files changed, 84 insertions, 63 deletions
diff --git a/notebooks/fips/references.ipynb b/notebooks/fips/references.ipynb index 9b93fd85..973fada9 100644 --- a/notebooks/fips/references.ipynb +++ b/notebooks/fips/references.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "3c31b74d", + "id": "58096baa", "metadata": {}, "source": [ "# FIPS References\n", @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 116, + "execution_count": 1, "id": "91a0cb1b", "metadata": {}, "outputs": [], @@ -33,8 +33,8 @@ "from typing import Callable\n", "\n", "\n", - "%matplotlib inline\n", - "matplotlib.use(\"pgf\")\n", + "#%matplotlib inline\n", + "#matplotlib.use(\"pgf\")\n", "sns.set_theme(style='white')\n", "plt.rcParams[\"axes.linewidth\"] = 0.5\n", "plt.rcParams[\"legend.fontsize\"] = 6.5\n", @@ -48,10 +48,10 @@ "plt.rcParams['xtick.major.size'] = 5\n", "plt.rcParams['xtick.major.width'] = 0.5\n", "plt.rcParams['xtick.major.pad'] = 0\n", - "plt.rcParams[\"pgf.texsystem\"] = \"pdflatex\"\n", + "# plt.rcParams[\"pgf.texsystem\"] = \"pdflatex\"\n", "plt.rcParams[\"font.family\"] = \"serif\"\n", - "plt.rcParams[\"text.usetex\"] = True\n", - "plt.rcParams[\"pgf.rcfonts\"] = False\n", + "# plt.rcParams[\"text.usetex\"] = True\n", + "# plt.rcParams[\"pgf.rcfonts\"] = False\n", "plt.rcParams[\"axes.titlesize\"] = 8\n", "plt.rcParams[\"legend.handletextpad\"] = 0.3\n", "plt.rcParams['lines.markersize'] = 4\n", @@ -61,7 +61,7 @@ }, { "cell_type": "code", - "execution_count": 117, + "execution_count": 2, "id": "629aec45", "metadata": { "scrolled": true @@ -71,7 +71,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "Downloading FIPS Dataset: 100%|█████████████████████████████████████| 57.1M/57.1M [00:14<00:00, 4.22MB/s]\n" + "Downloading FIPS Dataset: 100%|█████████████████████████████████████| 57.1M/57.1M [00:13<00:00, 4.57MB/s]\n" ] } ], @@ -81,7 +81,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 3, "id": "96ad0831", "metadata": {}, "outputs": [], @@ -99,7 +99,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 4, "id": "6ceb86c7", "metadata": {}, "outputs": [], @@ -132,7 +132,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 5, "id": "287342a7", "metadata": {}, "outputs": [], @@ -142,7 +142,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 6, "id": "685b2fd2", "metadata": {}, "outputs": [], @@ -153,7 +153,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 7, "id": "c90bd114", "metadata": {}, "outputs": [], @@ -172,7 +172,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 8, "id": "eca9eb4d", "metadata": {}, "outputs": [ @@ -216,7 +216,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 9, "id": "ac66ad0f", "metadata": {}, "outputs": [ @@ -255,12 +255,12 @@ "id": "38e5b33d", "metadata": {}, "source": [ - "### Active certificates which reference at least one historical cert (=module refs)" + "### Active certificates which reference at least one historical cert" ] }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 10, "id": "b01d5d38", "metadata": {}, "outputs": [], @@ -287,7 +287,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 11, "id": "9c05ffb2", "metadata": { "scrolled": true @@ -329,7 +329,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 12, "id": "b8225902", "metadata": { "scrolled": false @@ -341,7 +341,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 13, "id": "7ab480c7", "metadata": {}, "outputs": [], @@ -353,7 +353,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 14, "id": "29c80ecd", "metadata": {}, "outputs": [], @@ -379,7 +379,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 15, "id": "e3a4e349", "metadata": { "scrolled": true @@ -415,7 +415,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 16, "id": "e83b845b", "metadata": {}, "outputs": [ @@ -449,7 +449,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 17, "id": "91db647f", "metadata": { "scrolled": true @@ -483,7 +483,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 18, "id": "34b5c83b", "metadata": {}, "outputs": [], @@ -502,9 +502,11 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 19, "id": "6e69410d", - "metadata": {}, + "metadata": { + "scrolled": true + }, "outputs": [ { "name": "stdout", @@ -530,6 +532,42 @@ ] }, { + "cell_type": "code", + "execution_count": 51, + "id": "1d9c9d4b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Direct references among FIPS embodiments')" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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PDw8cPLkSSxcuBC2trayZCy/Y5gT+6xZs3Dw4EF0794dAwcOxMuXL7Fjxw7cv38fu3btgqamJmJiYjBkyBAYGxtj+PDhEIvFePnyJYKCgvI93gcPHoSuri6+//576Orq4tKlS1i+fDmSk5NlieDH+zVixAh06NAB7du3x65duzBhwgRIJBLMmzcPffr0QadOnbBhwwaMHTsWZ86ckfW5evLkCfr37w89PT0MHToUIpEIAQEBGDhwILZv3466devKbWvOnDkQi8UYPXo0Xr16hS1btuC3337D0qVLZWUWLVqE9evXo1WrVmjevDkePnyIIUOGIC0tLd/9zpGWlqaQEOnr6ytNNvITEREBADAyMgIAVKxYEaGhoYiMjESFChUKvb6CXPc5srKyMGzYMDRq1AgTJ07EkSNH8Ntvv0FHRwdLliyBp6cn2rZti927d2Py5MmoV68eqlSpIre93377TXbMw8PDsWvXLrx+/Rrbtm2DQCAA8F+fn2bNmqFv376ycnfu3JFdjwCwd+9ezJo1S5agRkREYOTIkTA0NMQ333yT775/yf6kpqZiwIABiIqKQp8+ffDNN9/gxo0bWLx4Md69e4fp06fLbevo0aNISUnBd999B4FAgPXr12PMmDEIDg6GpqYmvvvuO7x9+xYXLlzAggUL5OpeuHABEyZMgLOzMyZOnAgACAsLw/Xr1zF48OBCnvGvlJTKtP3790ttbW2lt2/fzrVMw4YNpV27dpVNL1++XGpraytXxtbWVmpvby998uSJ3Pxp06ZJXVxcpLGxsXLzx48fL23YsKE0NTVVKpVKpfv27ZPa2tpKN23apLB9iUQilUql0piYGKmtra10+fLlhdq3vn37SjMzM2Xzk5OTpY0aNZLOmDFDrvy7d++kDRs2lJuv7PhIJBJp27ZtpT/88IMsNqlUKk1NTZW6ublJv//+e9m8nGM1YcIEuW29fPlS6uDgIF21apXc/EePHklr1qwpN3/AgAFSW1tb6cGDB2Xz0tLSpC4uLtIxY8bI5hXkGF69elVqa2srPXz4sNzyc+fOyc0PCgrK97rITc45/djMmTOldevWlaalpSns15EjR2Tznj17JruWbt68KZv/999/S21tbaX79++XzfP29pbWqlVL+u+//8rmRUVFSevXry/t37+/bF7OOfTy8pI7X/PmzZM6ODhIExMTpVJp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sbGxsLS0hK6urkoDIyIiIvqU0mecg4OD0b59e7Rs2RLdunXDrVu3AACxsbHo2rUrgoODVRokEREREaAkcfnrr78wZswYGBsbY9SoUZBKpbJlJiYmsLCwwP79+1UaJBERERGgJHFZuXIlGjVqhF27dqF///4KFerVq4cHDx6oJDgiIiKijykkLk+ePIGHh0euFczMzBATE1OsQREREREpo5C46OjoIDU1NdcKERERMDIyKs6YiIiIiJRSSFycnJxw6NAhZGZmKhR+9+4d9uzZA1dXV5UER0RERPQxhcTlp59+QmRkJHr27ImAgAAIBAKcP38eS5YsgaenJ6RSKUaNGqWOWImIiKiMU0hcbGxssGvXLhgZGWHZsmWQSqXYsGED1qxZA1tbW+zcuROVK1dWR6xERERUxskNQJeRkYFnz57ByMgImzdvRkJCAl68eAGpVIoqVarAxMREXXESERERybe4CIVC9OjRA6dOnQIAGBoaok6dOqhbty6TFiIiIlI7ucRFQ0MDFStWRHp6urriISIiIsqVQh+XAQMGYM+ePYiPj1dDOERERES5U3jJokQigZaWFtq0aYN27dqhUqVKKFeunFwZgUAALy8vVcVIREREBEBJ4vL777/Lft63b5/SSkxciIiISB0UEpeQkBB1xEFERESUL4XEpVKlSuqIg4iIiChfCp1ziYiIiEoqJi5ERERUajBxISIiolKDiQsRERGVGsKtW7ciPDxc3XEQERER5Uvo6+uLu3fvymY4ODjgyJEjagyJiIiISDmhWCxGTEyMbIZUKlVjOERERES5Ezk5OWHFihV48OABDAwMAACHDh3CrVu38qw4Y8YMVcRHREREJCP69ddfMW/ePFy4cAExMTEQCAS4cOECLly4kGslgUDAxIWIiIhUTmRqaopFixbJZtjb2+OPP/6Ap6dnkW7o+PHjOHz4MO7du4fExERUrVoVAwcORI8ePSAQCGTl9u7di/Xr1+P169ewsrLC+PHj0apVK7l1JSUlwdfXF8HBwcjIyEDz5s0xY8YMlC9fvkhjJiIiopJF4XFoX19f1K9fv8g3tHnzZujo6GDKlClYtWoVWrRogZkzZ2LlypWyMseOHcPMmTPh4eGBdevWoV69ehg9ejRu3rwpt65x48bhwoUL8PHxwcKFCxEeHo5hw4YhMzOzyOMmIiKikkPhXUXdunWT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\n", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "embodiment_df = pd.DataFrame(final_embodiment_statistics).fillna(0).astype(int).transpose()\n", + "embodiment_df.plot(kind='bar', stacked=True)\n", + "\n", + "plt.xlabel(\"Referencing cert embodiment\")\n", + "plt.ylabel(\"Number of referenced certificates\")\n", + "plt.title(\"Direct references among FIPS embodiments\")" + ] + }, + { "cell_type": "markdown", "id": "d1743560", "metadata": {}, @@ -539,7 +577,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 52, "id": "72fb288b", "metadata": {}, "outputs": [], @@ -558,10 +596,10 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 53, "id": "79c3b7c8", "metadata": { - "scrolled": true + "scrolled": false }, "outputs": [ { @@ -595,52 +633,35 @@ }, { "cell_type": "code", - "execution_count": 51, - "id": "42dff8b4", + "execution_count": 23, + "id": "24a8576f", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'Software': {'Software': 502,\n", - " 'Software-Hybrid': 3,\n", - " 'Hardware': 1,\n", - " 'Firmware': 1},\n", - " 'Hardware': {'Hardware': 76,\n", - " 'Firmware-Hybrid': 2,\n", - " 'Software': 9,\n", - " 'Firmware': 2},\n", - " 'Software-Hybrid': {'Hardware': 5, 'Software-Hybrid': 16, 'Software': 6},\n", - " 'Firmware-Hybrid': {'Hardware': 2},\n", - " 'Firmware': {'Firmware': 1, 'Hardware': 1},\n", - " 'Hybrid': {},\n", - " 'Software hybrid': {}}" - ] - }, - "execution_count": 51, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "final_type_statistics" + "# TODO - Some countplot - stacked plot or smth like that\n", + "cert_type_df = pd.DataFrame(final_type_statistics).fillna(0).astype(int).transpose()\n", + "embodiment_df.plot(kind='bar', stacked=True)\n", + "\n", + "plt.xlabel(\"Referencing cert embodiment\")\n", + "plt.ylabel(\"Number of referenced certificates\")\n", + "plt.title(\"Direct references among FIPS embodiments\")" ] }, { "cell_type": "markdown", - "id": "48874e7c", + "id": "628b8947", "metadata": {}, "source": [ "### Cross-references among certificates\n", "\n", - "Certificate A references certificate B and at the same time certificate B references certificate A.\n", - "In other words intersection of `module_directly_referenced_by` and `module_directly_referencing` should result into discovery of cross references in the dataset." + "Certificate A directly references certificate B and at the same time certificate B directly references certificate A.\n", + "In other words intersection of `module_directly_referenced_by` and `module_directly_referencing` results into discovery of cross references in the dataset." ] }, { "cell_type": "code", - "execution_count": 111, - "id": "cb1cfb62", + "execution_count": 24, + "id": "6fc9a951", "metadata": { "scrolled": false }, |
