aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJ08nY2024-07-19 16:00:03 +0200
committerJ08nY2024-07-19 16:00:03 +0200
commite42f5ca573a971af80c332453341e7ff84c6b09b (patch)
tree0d766ad3a98face03d76793d2572a38273919136
parent34de9ca848cce92bf3bdbe4a1d9e05ff9e794de3 (diff)
downloadsec-certs-e42f5ca573a971af80c332453341e7ff84c6b09b.tar.gz
sec-certs-e42f5ca573a971af80c332453341e7ff84c6b09b.tar.zst
sec-certs-e42f5ca573a971af80c332453341e7ff84c6b09b.zip
Move to new dgst algorithm for CC.
-rw-r--r--src/sec_certs/dataset/cc.py23
-rw-r--r--src/sec_certs/sample/cc.py58
-rw-r--r--src/sec_certs/utils/sanitization.py9
-rw-r--r--tests/cc/test_cc_analysis.py8
-rw-r--r--tests/cc/test_cc_dataset.py44
-rw-r--r--tests/cc/test_cc_maintenance_updates.py4
-rw-r--r--tests/data/cc/analysis/certs/reports/pdf/ed91ff3e658457fd.pdf (renamed from tests/data/cc/analysis/certs/reports/pdf/ebd276cca70fd723.pdf)bin1174271 -> 1174271 bytes
-rw-r--r--tests/data/cc/analysis/certs/reports/txt/ed91ff3e658457fd.txt (renamed from tests/data/cc/analysis/certs/reports/txt/ebd276cca70fd723.txt)0
-rw-r--r--tests/data/cc/analysis/certs/targets/pdf/ed91ff3e658457fd.pdf (renamed from tests/data/cc/analysis/certs/targets/pdf/ebd276cca70fd723.pdf)bin615034 -> 615034 bytes
-rw-r--r--tests/data/cc/analysis/certs/targets/txt/ed91ff3e658457fd.txt (renamed from tests/data/cc/analysis/certs/targets/txt/ebd276cca70fd723.txt)0
-rw-r--r--tests/data/cc/analysis/reference_dataset.json6
-rw-r--r--tests/data/cc/analysis/transitive_vulnerability_dataset.json6
-rw-r--r--tests/data/cc/analysis/vulnerable_dataset.json4
-rw-r--r--tests/data/cc/certificate/fictional_cert.json2
-rw-r--r--tests/data/cc/dataset/auxiliary_datasets/maintenances/maintenance_updates.json4
-rw-r--r--tests/data/cc/dataset/report_e3dcf91ef38ddbf0.txt (renamed from tests/data/cc/dataset/report_309ac2fd7f2dcf17.txt)0
-rw-r--r--tests/data/cc/dataset/target_e3dcf91ef38ddbf0.txt (renamed from tests/data/cc/dataset/target_309ac2fd7f2dcf17.txt)0
-rw-r--r--tests/data/cc/dataset/toy_dataset.json6
18 files changed, 106 insertions, 68 deletions
diff --git a/src/sec_certs/dataset/cc.py b/src/sec_certs/dataset/cc.py
index 8e6ecebb..ebffd912 100644
--- a/src/sec_certs/dataset/cc.py
+++ b/src/sec_certs/dataset/cc.py
@@ -34,7 +34,7 @@ from sec_certs.sample.cc_maintenance_update import CCMaintenanceUpdate
from sec_certs.sample.cc_scheme import EntryType
from sec_certs.sample.protection_profile import ProtectionProfile
from sec_certs.serialization.json import ComplexSerializableType, serialize
-from sec_certs.utils import helpers
+from sec_certs.utils import helpers, sanitization
from sec_certs.utils import parallel_processing as cert_processing
from sec_certs.utils.profiling import staged
@@ -368,7 +368,14 @@ class CCDataset(Dataset[CCCertificate, CCAuxiliaryDatasets], ComplexSerializable
return CCDataset.BASE_URL + relative_path
def _get_primary_key_str(row: Tag):
- return row["category"] + row["cert_name"] + row["report_link"]
+ return "|".join(
+ [
+ row["category"],
+ row["cert_name"],
+ sanitization.sanitize_link_fname(row["report_link"]) or "None",
+ sanitization.sanitize_link_fname(row["st_link"]) or "None",
+ ]
+ )
cert_status = "active" if "active" in str(file) else "archived"
@@ -408,11 +415,15 @@ class CCDataset(Dataset[CCCertificate, CCAuxiliaryDatasets], ComplexSerializable
df_base = df.loc[~df.is_maintenance].copy()
df_main = df.loc[df.is_maintenance].copy()
- df_base.report_link = df_base.report_link.map(map_ip_to_hostname)
- df_base.st_link = df_base.st_link.map(map_ip_to_hostname)
+ df_base.report_link = df_base.report_link.map(map_ip_to_hostname).map(sanitization.sanitize_link)
+ df_base.st_link = df_base.st_link.map(map_ip_to_hostname).map(sanitization.sanitize_link)
- df_main.maintenance_report_link = df_main.maintenance_report_link.map(map_ip_to_hostname)
- df_main.maintenance_st_link = df_main.maintenance_st_link.map(map_ip_to_hostname)
+ df_main.maintenance_report_link = df_main.maintenance_report_link.map(map_ip_to_hostname).map(
+ sanitization.sanitize_link
+ )
+ df_main.maintenance_st_link = df_main.maintenance_st_link.map(map_ip_to_hostname).map(
+ sanitization.sanitize_link
+ )
n_all = len(df_base)
n_deduplicated = len(df_base.drop_duplicates(subset=["dgst"]))
diff --git a/src/sec_certs/sample/cc.py b/src/sec_certs/sample/cc.py
index 9f8ba2bd..5354ab3b 100644
--- a/src/sec_certs/sample/cc.py
+++ b/src/sec_certs/sample/cc.py
@@ -15,7 +15,6 @@ from bs4 import Tag
import sec_certs.utils.extract
import sec_certs.utils.pdf
-import sec_certs.utils.sanitization
from sec_certs import constants
from sec_certs.cert_rules import SARS_IMPLIED_FROM_EAL, cc_rules, rules, security_level_csv_scan
from sec_certs.configuration import config
@@ -27,7 +26,7 @@ from sec_certs.sample.protection_profile import ProtectionProfile
from sec_certs.sample.sar import SAR
from sec_certs.serialization.json import ComplexSerializableType
from sec_certs.serialization.pandas import PandasSerializableType
-from sec_certs.utils import helpers
+from sec_certs.utils import helpers, sanitization
from sec_certs.utils.extract import normalize_match_string, scheme_frontpage_functions
@@ -57,16 +56,10 @@ class CCCertificate(
maintenance_st_link: str | None
def __post_init__(self):
- super().__setattr__(
- "maintenance_report_link", sec_certs.utils.sanitization.sanitize_cc_link(self.maintenance_report_link)
- )
- super().__setattr__(
- "maintenance_st_link", sec_certs.utils.sanitization.sanitize_cc_link(self.maintenance_st_link)
- )
- super().__setattr__(
- "maintenance_title", sec_certs.utils.sanitization.sanitize_string(self.maintenance_title)
- )
- super().__setattr__("maintenance_date", sec_certs.utils.sanitization.sanitize_date(self.maintenance_date))
+ super().__setattr__("maintenance_report_link", sanitization.sanitize_link(self.maintenance_report_link))
+ super().__setattr__("maintenance_st_link", sanitization.sanitize_link(self.maintenance_st_link))
+ super().__setattr__("maintenance_title", sanitization.sanitize_string(self.maintenance_title))
+ super().__setattr__("maintenance_date", sanitization.sanitize_date(self.maintenance_date))
@classmethod
def from_dict(cls, dct: dict) -> CCCertificate.MaintenanceReport:
@@ -420,20 +413,20 @@ class CCCertificate(
self.status = status
self.category = category
- self.name = sec_certs.utils.sanitization.sanitize_string(name)
+ self.name = sanitization.sanitize_string(name)
self.manufacturer = None
if manufacturer:
- self.manufacturer = sec_certs.utils.sanitization.sanitize_string(manufacturer)
+ self.manufacturer = sanitization.sanitize_string(manufacturer)
self.scheme = scheme
- self.security_level = sec_certs.utils.sanitization.sanitize_security_levels(security_level)
- self.not_valid_before = sec_certs.utils.sanitization.sanitize_date(not_valid_before)
- self.not_valid_after = sec_certs.utils.sanitization.sanitize_date(not_valid_after)
- self.report_link = sec_certs.utils.sanitization.sanitize_cc_link(report_link)
- self.st_link = sec_certs.utils.sanitization.sanitize_cc_link(st_link)
- self.cert_link = sec_certs.utils.sanitization.sanitize_cc_link(cert_link)
- self.manufacturer_web = sec_certs.utils.sanitization.sanitize_link(manufacturer_web)
+ self.security_level = sanitization.sanitize_security_levels(security_level)
+ self.not_valid_before = sanitization.sanitize_date(not_valid_before)
+ self.not_valid_after = sanitization.sanitize_date(not_valid_after)
+ self.report_link = sanitization.sanitize_link(report_link)
+ self.st_link = sanitization.sanitize_link(st_link)
+ self.cert_link = sanitization.sanitize_link(cert_link)
+ self.manufacturer_web = sanitization.sanitize_link(manufacturer_web)
self.protection_profiles = protection_profiles
self.maintenance_updates = maintenance_updates
self.state = state if state else self.InternalState()
@@ -445,6 +438,29 @@ class CCCertificate(
"""
Computes the primary key of the sample using first 16 bytes of SHA-256 digest
"""
+ if not (self.name is not None and self.category is not None):
+ raise RuntimeError("Certificate digest can't be computed, because information is missing.")
+ return helpers.get_first_16_bytes_sha256(
+ "|".join(
+ [
+ self.category,
+ self.name,
+ sanitization.sanitize_link_fname(self.report_link) or "None",
+ sanitization.sanitize_link_fname(self.st_link) or "None",
+ ]
+ )
+ )
+
+ @property
+ def old_dgst(self) -> str:
+ if not (self.name is not None and self.report_link is not None and self.category is not None):
+ raise RuntimeError("Certificate digest can't be computed, because information is missing.")
+ return helpers.get_first_16_bytes_sha256(
+ self.category + self.name + sanitization.sanitize_cc_link(self.report_link) # type: ignore
+ )
+
+ @property
+ def older_dgst(self) -> str:
if not (self.name is not None and self.report_link is not None and self.category is not None):
raise RuntimeError("Certificate digest can't be computed, because information is missing.")
return helpers.get_first_16_bytes_sha256(self.category + self.name + self.report_link)
diff --git a/src/sec_certs/utils/sanitization.py b/src/sec_certs/utils/sanitization.py
index fd477746..4a7326eb 100644
--- a/src/sec_certs/utils/sanitization.py
+++ b/src/sec_certs/utils/sanitization.py
@@ -3,6 +3,8 @@ from __future__ import annotations
import html
import logging
from datetime import date
+from pathlib import Path
+from urllib.parse import urlparse
import numpy as np
import pandas as pd
@@ -23,6 +25,13 @@ def sanitize_link(record: str | None) -> str | None:
return record.replace(":443", "").replace(" ", "%20").replace("http://", "https://")
+def sanitize_link_fname(record: str | None) -> str | None:
+ if not record:
+ return None
+ parsed = urlparse(record)
+ return Path(parsed.path).name
+
+
def sanitize_cc_link(record: str | None) -> str | None:
record = sanitize_link(record)
if not record:
diff --git a/tests/cc/test_cc_analysis.py b/tests/cc/test_cc_analysis.py
index 3984a72e..ce83d705 100644
--- a/tests/cc/test_cc_analysis.py
+++ b/tests/cc/test_cc_analysis.py
@@ -53,7 +53,7 @@ def transitive_vulnerability_dataset(analysis_data_dir) -> CCDataset:
@pytest.fixture
def random_certificate(processed_cc_dset: CCDataset) -> CCCertificate:
- return processed_cc_dset["ebd276cca70fd723"]
+ return processed_cc_dset["ed91ff3e658457fd"]
def test_match_cpe(random_certificate: CCCertificate):
@@ -162,7 +162,7 @@ def test_single_record_references_heuristics(random_certificate: CCCertificate):
def test_reference_dataset(reference_dataset: CCDataset):
reference_dataset._compute_references()
- test_cert = reference_dataset["692e91451741ef49"]
+ test_cert = reference_dataset["d1b238729b25d745"]
assert test_cert.heuristics.report_references.directly_referenced_by == {"BSI-DSZ-CC-0370-2006"}
assert test_cert.heuristics.report_references.indirectly_referenced_by == {
@@ -175,12 +175,12 @@ def test_reference_dataset(reference_dataset: CCDataset):
def test_direct_transitive_vulnerability_dataset(transitive_vulnerability_dataset: CCDataset):
transitive_vulnerability_dataset._compute_transitive_vulnerabilities()
- assert transitive_vulnerability_dataset["d0705c9e6fbaeba3"].heuristics.direct_transitive_cves == {"CVE-2013-5385"}
+ assert transitive_vulnerability_dataset["11f77cb31b931a57"].heuristics.direct_transitive_cves == {"CVE-2013-5385"}
def test_indirect_transitive_vulnerability_dataset(transitive_vulnerability_dataset: CCDataset):
transitive_vulnerability_dataset._compute_transitive_vulnerabilities()
- assert transitive_vulnerability_dataset["d0705c9e6fbaeba3"].heuristics.indirect_transitive_cves == {"CVE-2013-5385"}
+ assert transitive_vulnerability_dataset["11f77cb31b931a57"].heuristics.indirect_transitive_cves == {"CVE-2013-5385"}
def test_sar_object():
diff --git a/tests/cc/test_cc_dataset.py b/tests/cc/test_cc_dataset.py
index 9d1e4022..bc1433aa 100644
--- a/tests/cc/test_cc_dataset.py
+++ b/tests/cc/test_cc_dataset.py
@@ -11,22 +11,24 @@ from sec_certs.sample.cc import CCCertificate
def test_download_and_convert_pdfs(toy_dataset: CCDataset, data_dir: Path):
+ for cert in toy_dataset:
+ print(cert.dgst, cert.old_dgst, cert.older_dgst)
template_report_pdf_hashes = {
- "309ac2fd7f2dcf17": "774c41fbba980191ca40ae610b2f61484c5997417b3325b6fd68b345173bde52",
- "8cf86948f02f047d": "533a5995ef8b736cc48cfda30e8aafec77d285511471e0e5a9e8007c8750203a",
- "8a5e6bcda602920c": "e277151e4b279085cd3041ce914ffb3942b43e5ace911c557ad6b8ed764a4ece",
+ "e3dcf91ef38ddbf0": "774c41fbba980191ca40ae610b2f61484c5997417b3325b6fd68b345173bde52",
+ "ed7611868f0f9d97": "533a5995ef8b736cc48cfda30e8aafec77d285511471e0e5a9e8007c8750203a",
+ "8f08cacb49a742fb": "e277151e4b279085cd3041ce914ffb3942b43e5ace911c557ad6b8ed764a4ece",
}
template_st_pdf_hashes = {
- "309ac2fd7f2dcf17": "b9a45995d9e40b2515506bbf5945e806ef021861820426c6d0a6a074090b47a9",
- "8cf86948f02f047d": "3c8614338899d956e9e56f1aa88d90e37df86f3310b875d9d14ec0f71e4759be",
- "8a5e6bcda602920c": "fcee91f09bb72a6526a1f94d0ab754a6db3fbe3ba5773cd372df19788bb25292",
+ "e3dcf91ef38ddbf0": "b9a45995d9e40b2515506bbf5945e806ef021861820426c6d0a6a074090b47a9",
+ "ed7611868f0f9d97": "3c8614338899d956e9e56f1aa88d90e37df86f3310b875d9d14ec0f71e4759be",
+ "8f08cacb49a742fb": "fcee91f09bb72a6526a1f94d0ab754a6db3fbe3ba5773cd372df19788bb25292",
}
template_cert_pdf_hashes = {
- "309ac2fd7f2dcf17": "9d38bca310c4d349cc39471e0b75d939cc275db9a75b07b8a365d719cfbedcc5",
- "8cf86948f02f047d": None,
- "8a5e6bcda602920c": "4ba78f26f505819183256ca5a6b404fa90c750fe160c41791e4c400f64e2f6d5",
+ "e3dcf91ef38ddbf0": "9d38bca310c4d349cc39471e0b75d939cc275db9a75b07b8a365d719cfbedcc5",
+ "ed7611868f0f9d97": None,
+ "8f08cacb49a742fb": "4ba78f26f505819183256ca5a6b404fa90c750fe160c41791e4c400f64e2f6d5",
}
with TemporaryDirectory() as td:
@@ -34,14 +36,14 @@ def test_download_and_convert_pdfs(toy_dataset: CCDataset, data_dir: Path):
toy_dataset.download_all_artifacts()
if not (
- toy_dataset["309ac2fd7f2dcf17"].state.report.download_ok
- or toy_dataset["309ac2fd7f2dcf17"].state.st.download_ok
- or toy_dataset["309ac2fd7f2dcf17"].state.cert.download_ok
- or toy_dataset["8cf86948f02f047d"].state.report.download_ok
- or toy_dataset["8cf86948f02f047d"].state.st.download_ok
- or toy_dataset["8a5e6bcda602920c"].state.report.download_ok
- or toy_dataset["8a5e6bcda602920c"].state.st.download_ok
- or toy_dataset["8a5e6bcda602920c"].state.cert.download_ok
+ toy_dataset["e3dcf91ef38ddbf0"].state.report.download_ok
+ or toy_dataset["e3dcf91ef38ddbf0"].state.st.download_ok
+ or toy_dataset["e3dcf91ef38ddbf0"].state.cert.download_ok
+ or toy_dataset["ed7611868f0f9d97"].state.report.download_ok
+ or toy_dataset["ed7611868f0f9d97"].state.st.download_ok
+ or toy_dataset["8f08cacb49a742fb"].state.report.download_ok
+ or toy_dataset["8f08cacb49a742fb"].state.st.download_ok
+ or toy_dataset["8f08cacb49a742fb"].state.cert.download_ok
):
pytest.xfail(reason="Fail due to error during download")
@@ -60,15 +62,15 @@ def test_download_and_convert_pdfs(toy_dataset: CCDataset, data_dir: Path):
if cert.cert_link:
assert cert.state.cert.txt_path.exists()
- template_report_txt_path = data_dir / "report_309ac2fd7f2dcf17.txt"
- template_st_txt_path = data_dir / "target_309ac2fd7f2dcf17.txt"
+ template_report_txt_path = data_dir / "report_e3dcf91ef38ddbf0.txt"
+ template_st_txt_path = data_dir / "target_e3dcf91ef38ddbf0.txt"
assert (
- abs(toy_dataset["309ac2fd7f2dcf17"].state.st.txt_path.stat().st_size - template_st_txt_path.stat().st_size)
+ abs(toy_dataset["e3dcf91ef38ddbf0"].state.st.txt_path.stat().st_size - template_st_txt_path.stat().st_size)
< 1000
)
assert (
abs(
- toy_dataset["309ac2fd7f2dcf17"].state.report.txt_path.stat().st_size
+ toy_dataset["e3dcf91ef38ddbf0"].state.report.txt_path.stat().st_size
- template_report_txt_path.stat().st_size
)
< 1000
diff --git a/tests/cc/test_cc_maintenance_updates.py b/tests/cc/test_cc_maintenance_updates.py
index c5054002..9c89c748 100644
--- a/tests/cc/test_cc_maintenance_updates.py
+++ b/tests/cc/test_cc_maintenance_updates.py
@@ -41,7 +41,7 @@ def test_methods_not_meant_to_be_implemented():
def test_download_artifacts(mu_dset: CCDatasetMaintenanceUpdates):
# Conversion and extraction is identical to CC, will not test.
mu_dset.download_all_artifacts()
- mu = mu_dset["cert_8a5e6bcda602920c_update_559ed93dd80320b5"]
+ mu = mu_dset["cert_8f08cacb49a742fb_update_559ed93dd80320b5"]
if not (mu.state.report.download_ok or mu.state.st.download_ok):
pytest.xfail(reason="Fail due to error on CC server.")
@@ -82,4 +82,4 @@ def test_from_web():
dset = CCDatasetMaintenanceUpdates.from_web_latest()
assert dset is not None
assert len(dset) >= 492 # Contents as of November 2022, maintenances should not disappear
- assert "cert_8a5e6bcda602920c_update_559ed93dd80320b5" in dset # random cert verified to be present
+ assert "cert_8f08cacb49a742fb_update_559ed93dd80320b5" in dset # random cert verified to be present
diff --git a/tests/data/cc/analysis/certs/reports/pdf/ebd276cca70fd723.pdf b/tests/data/cc/analysis/certs/reports/pdf/ed91ff3e658457fd.pdf
index faccbd64..faccbd64 100644
--- a/tests/data/cc/analysis/certs/reports/pdf/ebd276cca70fd723.pdf
+++ b/tests/data/cc/analysis/certs/reports/pdf/ed91ff3e658457fd.pdf
Binary files differ
diff --git a/tests/data/cc/analysis/certs/reports/txt/ebd276cca70fd723.txt b/tests/data/cc/analysis/certs/reports/txt/ed91ff3e658457fd.txt
index ed1ca246..ed1ca246 100644
--- a/tests/data/cc/analysis/certs/reports/txt/ebd276cca70fd723.txt
+++ b/tests/data/cc/analysis/certs/reports/txt/ed91ff3e658457fd.txt
diff --git a/tests/data/cc/analysis/certs/targets/pdf/ebd276cca70fd723.pdf b/tests/data/cc/analysis/certs/targets/pdf/ed91ff3e658457fd.pdf
index e1e463f4..e1e463f4 100644
--- a/tests/data/cc/analysis/certs/targets/pdf/ebd276cca70fd723.pdf
+++ b/tests/data/cc/analysis/certs/targets/pdf/ed91ff3e658457fd.pdf
Binary files differ
diff --git a/tests/data/cc/analysis/certs/targets/txt/ebd276cca70fd723.txt b/tests/data/cc/analysis/certs/targets/txt/ed91ff3e658457fd.txt
index fc0c022a..fc0c022a 100644
--- a/tests/data/cc/analysis/certs/targets/txt/ebd276cca70fd723.txt
+++ b/tests/data/cc/analysis/certs/targets/txt/ed91ff3e658457fd.txt
diff --git a/tests/data/cc/analysis/reference_dataset.json b/tests/data/cc/analysis/reference_dataset.json
index 38fb7fd0..04be80ca 100644
--- a/tests/data/cc/analysis/reference_dataset.json
+++ b/tests/data/cc/analysis/reference_dataset.json
@@ -15,7 +15,7 @@
"certs": [
{
"_type": "sec_certs.sample.cc.CCCertificate",
- "dgst": "c30de3192d2e8ec2",
+ "dgst": "3129688580711e08",
"status": "archived",
"category": "Other Devices and Systems",
"name": "Océ Digital Access Controller (DAC) R10.1.5 for use in the Océ VarioPrint 1055, 1055 BC, 1055 DP, 1065, 1075, 2062, 2075, 2075 DP printer/copier/scanner products",
@@ -583,7 +583,7 @@
},
{
"_type": "sec_certs.sample.cc.CCCertificate",
- "dgst": "53fe111411edfa45",
+ "dgst": "2c47b65953dcffb3",
"status": "archived",
"category": "Other Devices and Systems",
"name": "Océ Digital Access Controller (DAC) R9.1.6",
@@ -1229,7 +1229,7 @@
},
{
"_type": "sec_certs.sample.cc.CCCertificate",
- "dgst": "692e91451741ef49",
+ "dgst": "d1b238729b25d745",
"status": "archived",
"category": "Other Devices and Systems",
"name": "Océ Digital Access Controller R8.1.10",
diff --git a/tests/data/cc/analysis/transitive_vulnerability_dataset.json b/tests/data/cc/analysis/transitive_vulnerability_dataset.json
index abd4c7a3..5f052c11 100644
--- a/tests/data/cc/analysis/transitive_vulnerability_dataset.json
+++ b/tests/data/cc/analysis/transitive_vulnerability_dataset.json
@@ -15,7 +15,7 @@
"certs": [
{
"_type": "sec_certs.sample.cc.CCCertificate",
- "dgst": "d0705c9e6fbaeba3",
+ "dgst": "11f77cb31b931a57",
"status": "active",
"category": "Operating Systems",
"name": "IBM z/OS Version 2 Release 1",
@@ -1339,7 +1339,7 @@
},
{
"_type": "sec_certs.sample.cc.CCCertificate",
- "dgst": "011796336c7b94de",
+ "dgst": "487cf9415b61b49f",
"status": "archived",
"category": "Operating Systems",
"name": "RACF Element of z/OS Version 2, Release 1",
@@ -2288,7 +2288,7 @@
},
{
"_type": "sec_certs.sample.cc.CCCertificate",
- "dgst": "ebc77980250ee68f",
+ "dgst": "c310425745136fdd",
"status": "active",
"category": "Operating Systems",
"name": "IBM z/OS Version 2 Release 2",
diff --git a/tests/data/cc/analysis/vulnerable_dataset.json b/tests/data/cc/analysis/vulnerable_dataset.json
index 7978cb5a..cbabe14d 100644
--- a/tests/data/cc/analysis/vulnerable_dataset.json
+++ b/tests/data/cc/analysis/vulnerable_dataset.json
@@ -16,7 +16,7 @@
"certs": [
{
"_type": "sec_certs.sample.cc.CCCertificate",
- "dgst": "ebd276cca70fd723",
+ "dgst": "ed91ff3e658457fd",
"status": "active",
"category": "Access Control Devices and Systems",
"name": "IBM Security Access Manager for Enterprise Single Sign-On Version 8.2",
@@ -97,7 +97,7 @@
},
{
"_type": "sec_certs.sample.cc.CCCertificate",
- "dgst": "37e1b22e5933b0ed",
+ "dgst": "95e3850bef32f410",
"status": "active",
"category": "Access Control Devices and Systems",
"name": "IBM WebSphere Application Server (WAS) 7.0",
diff --git a/tests/data/cc/certificate/fictional_cert.json b/tests/data/cc/certificate/fictional_cert.json
index 54781dd5..32475e69 100644
--- a/tests/data/cc/certificate/fictional_cert.json
+++ b/tests/data/cc/certificate/fictional_cert.json
@@ -1,6 +1,6 @@
{
"_type": "sec_certs.sample.cc.CCCertificate",
- "dgst": "a9ccb81a92e547dc",
+ "dgst": "8049938203b26f7b",
"status": "archived",
"category": "Sample category",
"name": "Sample certificate name",
diff --git a/tests/data/cc/dataset/auxiliary_datasets/maintenances/maintenance_updates.json b/tests/data/cc/dataset/auxiliary_datasets/maintenances/maintenance_updates.json
index 5596b597..38c3db5b 100644
--- a/tests/data/cc/dataset/auxiliary_datasets/maintenances/maintenance_updates.json
+++ b/tests/data/cc/dataset/auxiliary_datasets/maintenances/maintenance_updates.json
@@ -16,7 +16,7 @@
"certs": [
{
"_type": "sec_certs.sample.cc_maintenance_update.CCMaintenanceUpdate",
- "dgst": "cert_8a5e6bcda602920c_update_559ed93dd80320b5",
+ "dgst": "cert_8f08cacb49a742fb_update_559ed93dd80320b5",
"name": "Fortinet FortiGate w/ FortiOS v5.6.7 Build 6022",
"report_link": "https://www.commoncriteriaportal.org/files/epfiles/383-7-159%20MR%20v1.0e.pdf",
"st_link": "https://www.commoncriteriaportal.org/files/epfiles/383-7-159%20ST%20v1.4%20CCRA.pdf",
@@ -93,7 +93,7 @@
"indirect_transitive_cves": null,
"scheme_data": null
},
- "related_cert_digest": "8a5e6bcda602920c",
+ "related_cert_digest": "8f08cacb49a742fb",
"maintenance_date": "2019-08-26"
}
]
diff --git a/tests/data/cc/dataset/report_309ac2fd7f2dcf17.txt b/tests/data/cc/dataset/report_e3dcf91ef38ddbf0.txt
index 46bff446..46bff446 100644
--- a/tests/data/cc/dataset/report_309ac2fd7f2dcf17.txt
+++ b/tests/data/cc/dataset/report_e3dcf91ef38ddbf0.txt
diff --git a/tests/data/cc/dataset/target_309ac2fd7f2dcf17.txt b/tests/data/cc/dataset/target_e3dcf91ef38ddbf0.txt
index 6f86c7be..6f86c7be 100644
--- a/tests/data/cc/dataset/target_309ac2fd7f2dcf17.txt
+++ b/tests/data/cc/dataset/target_e3dcf91ef38ddbf0.txt
diff --git a/tests/data/cc/dataset/toy_dataset.json b/tests/data/cc/dataset/toy_dataset.json
index dbf75078..cb47293b 100644
--- a/tests/data/cc/dataset/toy_dataset.json
+++ b/tests/data/cc/dataset/toy_dataset.json
@@ -16,7 +16,7 @@
"certs": [
{
"_type": "sec_certs.sample.cc.CCCertificate",
- "dgst": "309ac2fd7f2dcf17",
+ "dgst": "e3dcf91ef38ddbf0",
"status": "active",
"category": "Access Control Devices and Systems",
"name": "NetIQ Identity Manager 4.7",
@@ -119,7 +119,7 @@
},
{
"_type": "sec_certs.sample.cc.CCCertificate",
- "dgst": "8cf86948f02f047d",
+ "dgst": "ed7611868f0f9d97",
"status": "active",
"category": "Access Control Devices and Systems",
"name": "Magic SSO V4.0",
@@ -227,7 +227,7 @@
},
{
"_type": "sec_certs.sample.cc.CCCertificate",
- "dgst": "8a5e6bcda602920c",
+ "dgst": "8f08cacb49a742fb",
"status": "active",
"category": "Boundary Protection Devices and Systems",
"name": "Fortinet FortiGate w/ FortiOS v5.6.7",