aboutsummaryrefslogtreecommitdiffhomepage
path: root/docs
diff options
context:
space:
mode:
authorJ08nY2024-10-19 12:06:31 +0200
committerJ08nY2024-10-19 12:06:31 +0200
commit8e0f9dcc1eb3fafa6d446e9db44191b447e6dc78 (patch)
tree06b3f3f9171c20ec240785f095f470b728ddf760 /docs
parent4325e46f96f29e95acdc2a11943150ee089edd55 (diff)
downloadsec-certs-8e0f9dcc1eb3fafa6d446e9db44191b447e6dc78.tar.gz
sec-certs-8e0f9dcc1eb3fafa6d446e9db44191b447e6dc78.tar.zst
sec-certs-8e0f9dcc1eb3fafa6d446e9db44191b447e6dc78.zip
Cleanup of documentation.
It is now very nice and clean!
Diffstat (limited to 'docs')
-rw-r--r--docs/api/dataset.md2
-rw-r--r--docs/api/model.md2
-rw-r--r--docs/api/sample.md2
-rw-r--r--docs/conf.py4
-rw-r--r--docs/index.md18
-rw-r--r--docs/user_guide.md33
6 files changed, 47 insertions, 14 deletions
diff --git a/docs/api/dataset.md b/docs/api/dataset.md
index 71ed9f76..714b3a79 100644
--- a/docs/api/dataset.md
+++ b/docs/api/dataset.md
@@ -8,7 +8,7 @@
This documentation doesn't provide full API reference for all members of `dataset` package. Instead, it concentrates on the Dataset that are immediately exposed to the users. Namely, we focus on `CCDataset`, `FIPSDataset` and their abstract base class `Dataset`.
```{tip}
-The examples related to this package can be found at [common criteria notebook](./../notebooks/examples/cc.ipynb) and [fips notebook](./../notebooks/examples/fips.ipynb).
+The examples related to this package can be found in the [common criteria notebook](./../notebooks/examples/cc.ipynb) and the [fips notebook](./../notebooks/examples/fips.ipynb).
```
## CCDataset
diff --git a/docs/api/model.md b/docs/api/model.md
index ba8ca387..dc040ab9 100644
--- a/docs/api/model.md
+++ b/docs/api/model.md
@@ -6,7 +6,7 @@
```
```{tip}
-The examples related to this package can be found at [model notebook](./../notebooks/examples/model.ipynb).
+The examples related to this package can be found in the [model notebook](./../notebooks/examples/model.ipynb).
```
## CPEClassifier
diff --git a/docs/api/sample.md b/docs/api/sample.md
index fe46a4a1..e404fd47 100644
--- a/docs/api/sample.md
+++ b/docs/api/sample.md
@@ -6,7 +6,7 @@
```
```{tip}
-The examples related to this package can be found at [common criteria notebook](./../notebooks/examples/cc.ipynb) and [fips notebook](./../notebooks/examples/fips.ipynb).
+The examples related to this package can be found in the [common criteria notebook](./../notebooks/examples/cc.ipynb) and the [fips notebook](./../notebooks/examples/fips.ipynb).
```
## CCCertificate
diff --git a/docs/conf.py b/docs/conf.py
index f21ee733..29484b85 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -17,9 +17,9 @@ from importlib.metadata import version as get_version
# -- Project information -----------------------------------------------------
+author = "CRoCS MUNI"
project = "sec-certs"
-copyright = "Anonymized | 2020-2023"
-# copyright = "CRoCS MUNI | 2020-2023"
+copyright = "CRoCS MUNI | 2020-2024"
# Note thas this inference won't work from Docker: https://github.com/pypa/setuptools_scm/#usage-from-docker
release = ".".join(get_version("sec-certs").split(".")[:3])
diff --git a/docs/index.md b/docs/index.md
index cb204514..a04eb2e2 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -2,7 +2,7 @@
Welcome to the technical documentation of *sec-certs* tool for the data analysis of products certified with Common Criteria or FIPS 140 frameworks. If you're looking for general description of the tool, its use cases and capabilites, we refer you to [sec-certs homepage](https://sec-certs.org/). If you are looking for more advanced knowledge, e.g. how to mine your own data, how to extend the tool, and so forth, this is the right place.
-There are three main parts of this documentation. *User's guide* describes high-level use of our tool. Driven by this knowledge, you can progress to *Notebook examples* that showcase some of the API that we use in the form of Jupyter notebooks. The documentation also contains some of the modules documented with `autodoc`, see *API reference*. Still, some dark corners of our codebase are not documented. To inspect the code directly, see the [sec_certs](https://github.com/crocs-muni/sec-certs/tree/main/src/sec_certs) module. If you want, you can run the notebooks as they are stored in the [project repository](https://github.com/crocs-muni/sec-certs/tree/main/notebooks). If you are interested in contributing to our project or in other aspects of our development, you can consult the relevant *GitHub artifacts*
+There are three main parts of this documentation. *Quickstart* describes high-level use of our tool. Driven by this knowledge, you can progress to *Notebook examples* that showcase some of the API that we use in the form of Jupyter notebooks. The documentation also contains some of the modules documented with `autodoc`, see *API reference*. Still, some dark corners of our codebase are not documented. To inspect the code directly, see the [sec_certs](https://github.com/crocs-muni/sec-certs/tree/main/src/sec_certs) module. If you want, you can run the notebooks as they are stored in the [project repository](https://github.com/crocs-muni/sec-certs/tree/main/notebooks). If you are interested in contributing to our project or in other aspects of our development, you can consult the relevant *GitHub artifacts*.
```{button-ref} quickstart
:align: center
@@ -21,7 +21,7 @@ Each of the notebooks can be launched interactively in MyBinder by clicking on ð
:maxdepth: 1
Sec-certs homepage <https://sec-certs.org/>
Sec-certs docs <https://sec-certs.org/docs>
-GitHub repo <https://anonymous.4open.science/r/sec-certs-7A92>
+GitHub repo <https://github.com/crocs-muni/sec-certs>
```
```{toctree}
@@ -38,12 +38,12 @@ user_guide.md
:caption: Notebook examples
:hidden: True
:maxdepth: 1
-notebooks/examples/est_solution.ipynb
-notebooks/examples/cc.ipynb
-notebooks/examples/fips.ipynb
-notebooks/examples/model.ipynb
-notebooks/examples/fips_iut.ipynb
-notebooks/examples/fips_mip.ipynb
+Demo <notebooks/examples/est_solution.ipynb>
+Common Criteria <notebooks/examples/cc.ipynb>
+FIPS-140 <notebooks/examples/fips.ipynb>
+FIPS-140 IUT <notebooks/examples/fips_iut.ipynb>
+FIPS-140 MIP <notebooks/examples/fips_mip.ipynb>
+Model <notebooks/examples/model.ipynb>
```
```{toctree}
@@ -59,7 +59,7 @@ api/model.md
:maxdepth: 1
:hidden: True
:caption: GitHub artifacts
-readme.md
+README <readme.md>
contributing.md
code_of_conduct.md
license.md
diff --git a/docs/user_guide.md b/docs/user_guide.md
index 8b137891..9d330c6c 100644
--- a/docs/user_guide.md
+++ b/docs/user_guide.md
@@ -1 +1,34 @@
+# Advanced user's guide
+```{important}
+This guide is in the making.
+```
+
+## NVD datasets
+
+Our tool matches certificates to their possible CVEs using datasets downloaded from [National Vulnerability Database (NVD)](https://nvd.nist.gov). If you're fully processing the `CCDataset` or `FIPSDataset` by yourself, you must somehow obtain the NVD datasets.
+
+Our tool can seamlessly download the required NVD datasets when needed. We support two download mechanisms:
+
+1. Fetching datasets with the [NVD API](https://nvd.nist.gov/developers/start-here) (preferred way).
+1. Fetching snapshots from seccerts.org.
+
+The following two keys control the behaviour:
+
+```yaml
+preferred_source_nvd_datasets: "api" # set to "sec-certs" to fetch them from sec-certs.org
+nvd_api_key: null # or the actual key value
+```
+
+If you aim to fetch the sources from NVD, we advise you to get an [NVD API key](https://nvd.nist.gov/developers/request-an-api-key) and set the `nvd_api_key` setting accordingly. The download from NVD will work even without API key, it will just be slow. No API key is needed when `preferred_source_nvd_datasets: "sec-certs"`
+
+
+## Inferring inter-certificate reference context
+
+```{important}
+This is an experimental feature.
+```
+
+We provide a model that can predict the context of inter-certificate references based on the text embedded in the artifacts. The model output is not incorporated into the `CCCertificate` instances, but can be dumped into a `.csv` file from where it can be correlated with a DataFrame of certificate features.
+
+To train and deploy the model, it should be sufficient to change some paths and run the [prediction notebook](https://github.com/crocs-muni/sec-certs/blob/main/notebooks/cc/reference_annotations/prediction.ipynb). The output of this notebook is a `prediction.csv` file that can be loaded into the [references notebook](https://github.com/crocs-muni/sec-certs/blob/main/notebooks/cc/references.ipynb). This notebook documents the full analysis of references conducted on the Common Criteria certificates. Among others, the notebook generates some further `.csv` files that can subsequently be plotted via [plotting notebook](https://github.com/crocs-muni/sec-certs/blob/main/notebooks/cc/paper2_plots.ipynb).