aboutsummaryrefslogtreecommitdiffhomepage
path: root/sec_certs
diff options
context:
space:
mode:
authorGeogeFI2021-11-03 19:57:09 +0100
committerGeogeFI2021-11-03 19:57:09 +0100
commit32bb00a60dca719569d0a01802b3166535d76ab2 (patch)
tree6070b919294d9d27060e0b627c090d6f83d0b99d /sec_certs
parentcb93b7534e310cf3b0e90576e20df960993b26b6 (diff)
parente48a5bdf9883fed6ffc5878636dee0d21646e93e (diff)
downloadsec-certs-32bb00a60dca719569d0a01802b3166535d76ab2.tar.gz
sec-certs-32bb00a60dca719569d0a01802b3166535d76ab2.tar.zst
sec-certs-32bb00a60dca719569d0a01802b3166535d76ab2.zip
Merge branch 'compute-dependencies' of github.com:crocs-muni/sec-certs into compute-dependencies
Diffstat (limited to 'sec_certs')
-rw-r--r--sec_certs/certificate/cc_maintenance_update.py2
-rw-r--r--sec_certs/certificate/common_criteria.py6
-rw-r--r--sec_certs/certificate/fips.py6
-rw-r--r--sec_certs/dataset/fips.py2
-rw-r--r--sec_certs/serialization.py5
5 files changed, 12 insertions, 9 deletions
diff --git a/sec_certs/certificate/cc_maintenance_update.py b/sec_certs/certificate/cc_maintenance_update.py
index 7e4db349..4f87e836 100644
--- a/sec_certs/certificate/cc_maintenance_update.py
+++ b/sec_certs/certificate/cc_maintenance_update.py
@@ -16,7 +16,7 @@ class CommonCriteriaMaintenanceUpdate(CommonCriteriaCert, ComplexSerializableTyp
def __init__(self, name: str, report_link: str, st_link: str,
state: Optional[CommonCriteriaCert.InternalState],
pdf_data: Optional[CommonCriteriaCert.PdfData],
- heuristics: Optional[CommonCriteriaCert.Heuristics],
+ heuristics: Optional[CommonCriteriaCert.CCHeuristics],
related_cert_digest: str,
maintenance_date: date):
super().__init__('', '', name, '', '', '', None, None,
diff --git a/sec_certs/certificate/common_criteria.py b/sec_certs/certificate/common_criteria.py
index af1935d2..f6470231 100644
--- a/sec_certs/certificate/common_criteria.py
+++ b/sec_certs/certificate/common_criteria.py
@@ -186,7 +186,7 @@ class CommonCriteriaCert(Certificate, ComplexSerializableType):
return processed if (processed := self.processed_cert_id) else self.keywords_cert_id
@dataclass
- class Heuristics(ComplexSerializableType):
+ class CCHeuristics(ComplexSerializableType):
extracted_versions: List[str] = field(default=None)
cpe_matches: Optional[List[Tuple[float, CPE]]] = field(default=None)
labeled: bool = field(default=False)
@@ -227,7 +227,7 @@ class CommonCriteriaCert(Certificate, ComplexSerializableType):
maintainance_updates: Set[MaintainanceReport],
state: Optional[InternalState],
pdf_data: Optional[PdfData],
- heuristics: Optional[Heuristics]):
+ heuristics: Optional[CCHeuristics]):
super().__init__()
self.status = status
@@ -254,7 +254,7 @@ class CommonCriteriaCert(Certificate, ComplexSerializableType):
self.pdf_data = pdf_data
if heuristics is None:
- heuristics = self.Heuristics()
+ heuristics = self.CCHeuristics()
self.heuristics = heuristics
@property
diff --git a/sec_certs/certificate/fips.py b/sec_certs/certificate/fips.py
index 2ff95291..71c304e2 100644
--- a/sec_certs/certificate/fips.py
+++ b/sec_certs/certificate/fips.py
@@ -142,7 +142,7 @@ class FIPSCertificate(Certificate, ComplexSerializableType):
return str(self.cert_id)
@dataclass(eq=True)
- class Heuristics(ComplexSerializableType):
+ class FIPSHeuristics(ComplexSerializableType):
keywords: Optional[Dict[str, Dict]]
algorithms: List[Dict[str, Dict]]
connections: List[str]
@@ -200,7 +200,7 @@ class FIPSCertificate(Certificate, ComplexSerializableType):
def __init__(self, cert_id: str,
web_scan: 'FIPSCertificate.WebScan',
pdf_scan: 'FIPSCertificate.PdfScan',
- heuristics: 'FIPSCertificate.Heuristics',
+ heuristics: 'FIPSCertificate.FIPSHeuristics',
state: State):
super().__init__()
self.cert_id = cert_id
@@ -461,7 +461,7 @@ class FIPSCertificate(Certificate, ComplexSerializableType):
[] if not initialized else initialized.pdf_scan.algorithms,
[] # connections
),
- FIPSCertificate.Heuristics(None, {}, [], 0),
+ FIPSCertificate.FIPSHeuristics(None, {}, [], 0),
state
)
diff --git a/sec_certs/dataset/fips.py b/sec_certs/dataset/fips.py
index 354aec8d..f13e3059 100644
--- a/sec_certs/dataset/fips.py
+++ b/sec_certs/dataset/fips.py
@@ -268,7 +268,7 @@ class FIPSDataset(Dataset, ComplexSerializableType):
logger.info("Removing 'processed' field. This dataset can be used to be uploaded and later downloaded using latest_snapshot() or something")
cert: FIPSCertificate
for cert in self.certs.values():
- cert.heuristics = FIPSCertificate.Heuristics(None, {}, [], 0)
+ cert.heuristics = FIPSCertificate.FIPSHeuristics(None, {}, [], 0)
self.match_algs()
diff --git a/sec_certs/serialization.py b/sec_certs/serialization.py
index e24138a8..f63b6cba 100644
--- a/sec_certs/serialization.py
+++ b/sec_certs/serialization.py
@@ -20,7 +20,10 @@ class ComplexSerializableType:
@classmethod
def from_dict(cls, dct: Dict):
- return cls(*(tuple(dct.values())))
+ try:
+ return cls(*(tuple(dct.values())))
+ except TypeError as e:
+ raise TypeError(f'Dict: {dct} with mro: {cls.__mro__}') from e
# Decorator for serialization