diff options
| author | J08nY | 2022-02-22 14:37:38 +0100 |
|---|---|---|
| committer | J08nY | 2022-02-22 14:42:41 +0100 |
| commit | bddeeae516ad810bbb7ad4cae9c7f0e3fd996624 (patch) | |
| tree | 032cebf4cc8eed6921de19d8f8a727da4143eed3 | |
| parent | 47863129815d4d283ae2cdc4212492953a6dde4b (diff) | |
| download | sec-certs-bddeeae516ad810bbb7ad4cae9c7f0e3fd996624.tar.gz sec-certs-bddeeae516ad810bbb7ad4cae9c7f0e3fd996624.tar.zst sec-certs-bddeeae516ad810bbb7ad4cae9c7f0e3fd996624.zip | |
Rename "affect" -> "reference".
We shouldn't use affecting to describe the relationship that
we are describing here as we are only collecting references
and can't say anything about whether the referenced certificates
are truly affecting one another.
| -rw-r--r-- | sec_certs/dataset/common_criteria.py | 8 | ||||
| -rw-r--r-- | sec_certs/model/dependency_finder.py | 32 | ||||
| -rw-r--r-- | sec_certs/sample/common_criteria.py | 24 | ||||
| -rw-r--r-- | sec_certs/sample/fips.py | 8 | ||||
| -rw-r--r-- | tests/data/test_cc_oop/fictional_cert.json | 8 | ||||
| -rw-r--r-- | tests/data/test_cc_oop/toy_dataset.json | 16 | ||||
| -rw-r--r-- | tests/test_cc_heuristics.py | 18 |
7 files changed, 58 insertions, 56 deletions
diff --git a/sec_certs/dataset/common_criteria.py b/sec_certs/dataset/common_criteria.py index c169bc57..e2d53e7a 100644 --- a/sec_certs/dataset/common_criteria.py +++ b/sec_certs/dataset/common_criteria.py @@ -697,10 +697,10 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): finder.fit(self.certs) for dgst in self.certs: - self.certs[dgst].heuristics.directly_affecting = finder.get_directly_affecting(dgst) - self.certs[dgst].heuristics.indirectly_affecting = finder.get_indirectly_affecting(dgst) - self.certs[dgst].heuristics.directly_affected_by = finder.get_directly_affected_by(dgst) - self.certs[dgst].heuristics.indirectly_affected_by = finder.get_indirectly_affected_by(dgst) + self.certs[dgst].heuristics.directly_referencing = finder.get_directly_referencing(dgst) + self.certs[dgst].heuristics.indirectly_referencing = finder.get_indirectly_referencing(dgst) + self.certs[dgst].heuristics.directly_referenced_by = finder.get_directly_referenced_by(dgst) + self.certs[dgst].heuristics.indirectly_referenced_by = finder.get_indirectly_referenced_by(dgst) @serialize def analyze_certificates(self, fresh: bool = True) -> None: diff --git a/sec_certs/model/dependency_finder.py b/sec_certs/model/dependency_finder.py index 83d6cfb9..6f5e1347 100644 --- a/sec_certs/model/dependency_finder.py +++ b/sec_certs/model/dependency_finder.py @@ -65,7 +65,7 @@ class DependencyFinder: return referenced_by, referenced_by_indirect @staticmethod - def _get_affecting_directly(cert: str, referenced_by_direct: ReferencedByDirect) -> Optional[Set[str]]: + def _get_referencing_directly(cert: str, referenced_by_direct: ReferencedByDirect) -> Optional[Set[str]]: filter_direct = set() for cert_id in referenced_by_direct: @@ -75,7 +75,7 @@ class DependencyFinder: return filter_direct if filter_direct else None @staticmethod - def _get_affecting_indirectly(cert: str, referenced_by_indirect: ReferencedByIndirect) -> Optional[Set[str]]: + def _get_referencing_indirectly(cert: str, referenced_by_indirect: ReferencedByIndirect) -> Optional[Set[str]]: filter_indirect = set() for cert_id in referenced_by_indirect: @@ -85,11 +85,11 @@ class DependencyFinder: return filter_indirect if filter_indirect else None @staticmethod - def _get_affected_directly(cert: str, referenced_by_direct: ReferencedByDirect) -> Optional[Set[str]]: + def _get_referenced_directly(cert: str, referenced_by_direct: ReferencedByDirect) -> Optional[Set[str]]: return referenced_by_direct.get(cert, None) @staticmethod - def _get_affected_indirectly(cert: str, referenced_by_indirect: ReferencedByIndirect) -> Optional[Set[str]]: + def _get_referenced_indirectly(cert: str, referenced_by_indirect: ReferencedByIndirect) -> Optional[Set[str]]: return referenced_by_indirect.get(cert, None) def fit(self, certificates: Certificates) -> None: @@ -102,34 +102,34 @@ class DependencyFinder: if not cert_id: continue - self.dependencies[dgst]["directly_affected_by"] = DependencyFinder._get_affected_directly( + self.dependencies[dgst]["directly_referenced_by"] = DependencyFinder._get_referenced_directly( cert_id, referenced_by_direct ) - self.dependencies[dgst]["indirectly_affected_by"] = DependencyFinder._get_affected_indirectly( + self.dependencies[dgst]["indirectly_referenced_by"] = DependencyFinder._get_referenced_indirectly( cert_id, referenced_by_indirect ) - self.dependencies[dgst]["directly_affecting"] = DependencyFinder._get_affecting_directly( + self.dependencies[dgst]["directly_referencing"] = DependencyFinder._get_referencing_directly( cert_id, referenced_by_direct ) - self.dependencies[dgst]["indirectly_affecting"] = DependencyFinder._get_affecting_indirectly( + self.dependencies[dgst]["indirectly_referencing"] = DependencyFinder._get_referencing_indirectly( cert_id, referenced_by_indirect ) - def get_directly_affected_by(self, dgst: str) -> Optional[Set[str]]: - res = self.dependencies[dgst].get("directly_affected_by", None) + def get_directly_referenced_by(self, dgst: str) -> Optional[Set[str]]: + res = self.dependencies[dgst].get("directly_referenced_by", None) return set(res) if res else None - def get_indirectly_affected_by(self, dgst: str) -> Optional[Set[str]]: - res = self.dependencies[dgst].get("indirectly_affected_by", None) + def get_indirectly_referenced_by(self, dgst: str) -> Optional[Set[str]]: + res = self.dependencies[dgst].get("indirectly_referenced_by", None) return set(res) if res else None - def get_directly_affecting(self, dgst: str) -> Optional[Set[str]]: - res = self.dependencies[dgst].get("directly_affecting", None) + def get_directly_referencing(self, dgst: str) -> Optional[Set[str]]: + res = self.dependencies[dgst].get("directly_referencing", None) return set(res) if res else None - def get_indirectly_affecting(self, dgst: str) -> Optional[Set[str]]: - res = self.dependencies[dgst].get("indirectly_affecting", None) + def get_indirectly_referencing(self, dgst: str) -> Optional[Set[str]]: + res = self.dependencies[dgst].get("indirectly_referencing", None) return set(res) if res else None diff --git a/sec_certs/sample/common_criteria.py b/sec_certs/sample/common_criteria.py index 68258f67..84239717 100644 --- a/sec_certs/sample/common_criteria.py +++ b/sec_certs/sample/common_criteria.py @@ -209,10 +209,10 @@ class CommonCriteriaCert( related_cves: Optional[Set[str]] = field(default=None) cert_lab: Optional[List[str]] = field(default=None) cert_id: Optional[str] = field(default=None) - directly_affected_by: Optional[Set[str]] = field(default=None) - indirectly_affected_by: Optional[Set[str]] = field(default=None) - directly_affecting: Optional[Set[str]] = field(default=None) - indirectly_affecting: Optional[Set[str]] = field(default=None) + directly_referenced_by: Optional[Set[str]] = field(default=None) + indirectly_referenced_by: Optional[Set[str]] = field(default=None) + directly_referencing: Optional[Set[str]] = field(default=None) + indirectly_referencing: Optional[Set[str]] = field(default=None) @property def serialized_attributes(self) -> List[str]: @@ -236,10 +236,10 @@ class CommonCriteriaCert( "cpe_matches", "verified_cpe_matches", "related_cves", - "directly_affected_by", - "indirectly_affected_by", - "directly_affecting", - "indirectly_affecting", + "directly_referenced_by", + "indirectly_referenced_by", + "directly_referencing", + "indirectly_referencing", ] def __init__( @@ -319,10 +319,10 @@ class CommonCriteriaCert( self.heuristics.cpe_matches, self.heuristics.verified_cpe_matches, self.heuristics.related_cves, - self.heuristics.directly_affected_by, - self.heuristics.indirectly_affected_by, - self.heuristics.directly_affecting, - self.heuristics.indirectly_affecting, + self.heuristics.directly_referenced_by, + self.heuristics.indirectly_referenced_by, + self.heuristics.directly_referencing, + self.heuristics.indirectly_referencing, ) def __str__(self) -> str: diff --git a/sec_certs/sample/fips.py b/sec_certs/sample/fips.py index 97fd30bd..ab83f3d2 100644 --- a/sec_certs/sample/fips.py +++ b/sec_certs/sample/fips.py @@ -178,10 +178,10 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris verified_cpe_matches: Optional[Set[CPE]] = field(default=None) related_cves: Optional[Set[str]] = field(default=None) - directly_affected_by: Optional[Set] = field(default=None) - indirectly_affected_by: Optional[Set] = field(default=None) - directly_affecting: Optional[Set] = field(default=None) - indirectly_affecting: Optional[Set] = field(default=None) + directly_referenced_by: Optional[Set] = field(default=None) + indirectly_referenced_by: Optional[Set] = field(default=None) + directly_referencing: Optional[Set] = field(default=None) + indirectly_referencing: Optional[Set] = field(default=None) @property def serialized_attributes(self) -> List[str]: diff --git a/tests/data/test_cc_oop/fictional_cert.json b/tests/data/test_cc_oop/fictional_cert.json index b8c321eb..ea96c2f8 100644 --- a/tests/data/test_cc_oop/fictional_cert.json +++ b/tests/data/test_cc_oop/fictional_cert.json @@ -61,10 +61,10 @@ "related_cves": null, "cert_lab": null, "cert_id": null, - "directly_affected_by": null, - "indirectly_affected_by": null, - "directly_affecting": null, - "indirectly_affecting": null + "directly_referenced_by": null, + "indirectly_referenced_by": null, + "directly_referencing": null, + "indirectly_referencing": null }, "report_link": "https://path.to/report/link", "st_link": "https://path.to/st/link", diff --git a/tests/data/test_cc_oop/toy_dataset.json b/tests/data/test_cc_oop/toy_dataset.json index 16d48909..8357d9f3 100644 --- a/tests/data/test_cc_oop/toy_dataset.json +++ b/tests/data/test_cc_oop/toy_dataset.json @@ -68,10 +68,10 @@ "related_cves": null, "cert_lab": null, "cert_id": null, - "directly_affected_by": null, - "indirectly_affected_by": null, - "directly_affecting": null, - "indirectly_affecting": null + "directly_referenced_by": null, + "indirectly_referenced_by": null, + "directly_referencing": null, + "indirectly_referencing": null } }, { @@ -132,10 +132,10 @@ "related_cves": null, "cert_lab": null, "cert_id": null, - "directly_affected_by": null, - "indirectly_affected_by": null, - "directly_affecting": null, - "indirectly_affecting": null + "directly_referenced_by": null, + "indirectly_referenced_by": null, + "directly_referencing": null, + "indirectly_referencing": null } } ] diff --git a/tests/test_cc_heuristics.py b/tests/test_cc_heuristics.py index 94567574..c4a6f743 100644 --- a/tests/test_cc_heuristics.py +++ b/tests/test_cc_heuristics.py @@ -266,17 +266,19 @@ class TestCommonCriteriaHeuristics(TestCase): def test_single_record_dependency_heuristics(self): # Single record in daset is not affecting nor affected by other records heuristics = self.cc_dset["ebd276cca70fd723"].heuristics - self.assertEqual(heuristics.directly_affected_by, None) - self.assertEqual(heuristics.indirectly_affected_by, None) - self.assertEqual(heuristics.directly_affecting, None) - self.assertEqual(heuristics.indirectly_affecting, None) + self.assertEqual(heuristics.directly_referenced_by, None) + self.assertEqual(heuristics.indirectly_referenced_by, None) + self.assertEqual(heuristics.directly_referencing, None) + self.assertEqual(heuristics.indirectly_referencing, None) def test_dependency_dataset(self): dependency_dataset = CCDataset.from_json(self.data_dir_path / "dependency_dataset.json") dependency_dataset._compute_dependencies() test_cert = dependency_dataset["692e91451741ef49"] - self.assertEqual(test_cert.heuristics.directly_affected_by, {"BSI-DSZ-CC-0370-2006"}) - self.assertEqual(test_cert.heuristics.indirectly_affected_by, {"BSI-DSZ-CC-0370-2006", "BSI-DSZ-CC-0517-2009"}) - self.assertEqual(test_cert.heuristics.directly_affecting, {"BSI-DSZ-CC-0268-2005"}) - self.assertEqual(test_cert.heuristics.indirectly_affecting, {"BSI-DSZ-CC-0268-2005"}) + self.assertEqual(test_cert.heuristics.directly_referenced_by, {"BSI-DSZ-CC-0370-2006"}) + self.assertEqual( + test_cert.heuristics.indirectly_referenced_by, {"BSI-DSZ-CC-0370-2006", "BSI-DSZ-CC-0517-2009"} + ) + self.assertEqual(test_cert.heuristics.directly_referencing, {"BSI-DSZ-CC-0268-2005"}) + self.assertEqual(test_cert.heuristics.indirectly_referencing, {"BSI-DSZ-CC-0268-2005"}) |
