aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam Janovsky2021-04-20 11:17:59 +0200
committerAdam Janovsky2021-04-20 11:17:59 +0200
commit1f69f1766541cd1829c0da0d142e0b36daf95dd9 (patch)
tree64dda4900a06317593ad5f05b3227953ca449cbb
parent34eca2f67c6d0ab34657de2c9426ef08d5e70ab4 (diff)
downloadsec-certs-1f69f1766541cd1829c0da0d142e0b36daf95dd9.tar.gz
sec-certs-1f69f1766541cd1829c0da0d142e0b36daf95dd9.tar.zst
sec-certs-1f69f1766541cd1829c0da0d142e0b36daf95dd9.zip
basically rebase of dev
-rw-r--r--sec_certs/certificate/common_criteria.py3
-rw-r--r--sec_certs/dataset/common_criteria.py4
-rw-r--r--test/data/test_cc_oop/fictional_cert.json1
-rw-r--r--test/data/test_cc_oop/toy_dataset.json2
4 files changed, 8 insertions, 2 deletions
diff --git a/sec_certs/certificate/common_criteria.py b/sec_certs/certificate/common_criteria.py
index 165ab86d..517601d7 100644
--- a/sec_certs/certificate/common_criteria.py
+++ b/sec_certs/certificate/common_criteria.py
@@ -202,6 +202,7 @@ class CommonCriteriaCert(Certificate, ComplexSerializableType):
class Heuristics(ComplexSerializableType):
extracted_versions: List[str] = field(default=None)
cpe_matches: Optional[List[Tuple[float, CPE]]] = field(default=None)
+ labeled: bool = field(default=False)
verified_cpe_matches: Optional[List[CPE]] = field(default=None)
related_cves: Optional[List[str]] = field(default=None)
cert_lab: Optional[List[str]] = field(default=None)
@@ -215,7 +216,7 @@ class CommonCriteriaCert(Certificate, ComplexSerializableType):
self.cpe_candidate_vendors = None
def to_dict(self):
- return {'extracted_versions': self.extracted_versions, 'cpe_matches': self.cpe_matches, 'verified_cpe_matches': self.verified_cpe_matches, 'related_cves': self.related_cves, 'cert_lab': self.cert_lab, 'cert_id': self.cert_id}
+ return {'extracted_versions': self.extracted_versions, 'cpe_matches': self.cpe_matches, 'labeled': self.labeled, 'verified_cpe_matches': self.verified_cpe_matches, 'related_cves': self.related_cves, 'cert_lab': self.cert_lab, 'cert_id': self.cert_id}
@classmethod
def from_dict(cls, dct: Dict[str, str]):
diff --git a/sec_certs/dataset/common_criteria.py b/sec_certs/dataset/common_criteria.py
index 289f5584..00604646 100644
--- a/sec_certs/dataset/common_criteria.py
+++ b/sec_certs/dataset/common_criteria.py
@@ -650,7 +650,9 @@ class CCDataset(Dataset, ComplexSerializableType):
print(f'Saving progress.')
self.to_json()
- certs_to_verify: List[CommonCriteriaCert] = [x for x in self if (x.heuristics.cpe_matches and not x.heuristics.verified_cpe_matches)]
+ self[x.dgst].heuristics.labeled = True
+
+ certs_to_verify: List[CommonCriteriaCert] = [x for x in self if (x.heuristics.cpe_matches and not x.heuristics.labeled)]
logger.info('Manually verifying CPE matches')
time.sleep(0.05) # easier than flushing the logger
verify_certs(certs_to_verify)
diff --git a/test/data/test_cc_oop/fictional_cert.json b/test/data/test_cc_oop/fictional_cert.json
index c16a275b..dd106e74 100644
--- a/test/data/test_cc_oop/fictional_cert.json
+++ b/test/data/test_cc_oop/fictional_cert.json
@@ -55,6 +55,7 @@
"_type": "Heuristics",
"extracted_versions": null,
"cpe_matches": null,
+ "labeled": false,
"verified_cpe_matches": null,
"related_cves": null,
"cert_lab": null,
diff --git a/test/data/test_cc_oop/toy_dataset.json b/test/data/test_cc_oop/toy_dataset.json
index 8e091096..4be9f90d 100644
--- a/test/data/test_cc_oop/toy_dataset.json
+++ b/test/data/test_cc_oop/toy_dataset.json
@@ -58,6 +58,7 @@
"_type": "Heuristics",
"extracted_versions": null,
"cpe_matches": null,
+ "labeled": false,
"verified_cpe_matches": null,
"related_cves": null,
"cert_lab": null,
@@ -111,6 +112,7 @@
"_type": "Heuristics",
"extracted_versions": null,
"cpe_matches": null,
+ "labeled": false,
"verified_cpe_matches": null,
"related_cves": null,
"cert_lab": null,