diff options
| author | GeogeFI | 2021-11-03 19:57:09 +0100 |
|---|---|---|
| committer | GeogeFI | 2021-11-03 19:57:09 +0100 |
| commit | 32bb00a60dca719569d0a01802b3166535d76ab2 (patch) | |
| tree | 6070b919294d9d27060e0b627c090d6f83d0b99d /sec_certs | |
| parent | cb93b7534e310cf3b0e90576e20df960993b26b6 (diff) | |
| parent | e48a5bdf9883fed6ffc5878636dee0d21646e93e (diff) | |
| download | sec-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.py | 2 | ||||
| -rw-r--r-- | sec_certs/certificate/common_criteria.py | 6 | ||||
| -rw-r--r-- | sec_certs/certificate/fips.py | 6 | ||||
| -rw-r--r-- | sec_certs/dataset/fips.py | 2 | ||||
| -rw-r--r-- | sec_certs/serialization.py | 5 |
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 |
