diff options
| author | Ján Jančár | 2022-01-28 15:15:40 +0100 |
|---|---|---|
| committer | GitHub | 2022-01-28 15:15:40 +0100 |
| commit | cf75369c67e7528d1f25eec90d96e0aea90761e8 (patch) | |
| tree | ac72d77dddcc6eab5f254dfba2eda648de2153aa | |
| parent | c94092c42bf2a841ce1efc78f034205bfc5680ab (diff) | |
| parent | 6c8206f155f3afe2ce98d3f1f2fd92ae7570b497 (diff) | |
| download | sec-certs-cf75369c67e7528d1f25eec90d96e0aea90761e8.tar.gz sec-certs-cf75369c67e7528d1f25eec90d96e0aea90761e8.tar.zst sec-certs-cf75369c67e7528d1f25eec90d96e0aea90761e8.zip | |
Merge pull request #161 from crocs-muni/fix/fips-download-first
fips: Download algorithm pages first to abort early.
| -rw-r--r-- | sec_certs/dataset/fips.py | 6 | ||||
| -rw-r--r-- | sec_certs/sample/common_criteria.py | 20 |
2 files changed, 19 insertions, 7 deletions
diff --git a/sec_certs/dataset/fips.py b/sec_certs/dataset/fips.py index 0fa9da01..5bcd4494 100644 --- a/sec_certs/dataset/fips.py +++ b/sec_certs/dataset/fips.py @@ -283,9 +283,6 @@ class FIPSDataset(Dataset, ComplexSerializableType): # Download files containing all available module certs (always) cert_ids = self.prepare_dataset(test, update) - logger.info("Downloading certificate html and security policies") - self.download_neccessary_files(cert_ids) - if not no_download_algorithms: aset = FIPSAlgorithmDataset({}, Path(self.root_dir / "web" / "algorithms"), "algorithms", "sample algs") aset.get_certs_from_web() @@ -293,6 +290,9 @@ class FIPSDataset(Dataset, ComplexSerializableType): self.algorithms = aset + logger.info("Downloading certificate html and security policies") + self.download_neccessary_files(cert_ids) + self.web_scan(cert_ids, redo=redo_web_scan) @serialize diff --git a/sec_certs/sample/common_criteria.py b/sec_certs/sample/common_criteria.py index 99bb0e44..8953e63d 100644 --- a/sec_certs/sample/common_criteria.py +++ b/sec_certs/sample/common_criteria.py @@ -39,9 +39,13 @@ class CommonCriteriaCert(Certificate, PandasSerializableType, ComplexSerializabl super().__setattr__("maintenance_date", helpers.sanitize_date(self.maintenance_date)) @classmethod - def from_dict(cls, dct: Dict) -> "MaintenanceReport": + def from_dict(cls, dct: Dict) -> "CommonCriteriaCert.MaintenanceReport": new_dct = dct.copy() - new_dct["maintenance_date"] = date.fromisoformat(dct["maintenance_date"]) if isinstance(dct["maintenance_date"], str) else dct["maintenance_date"] + new_dct["maintenance_date"] = ( + date.fromisoformat(dct["maintenance_date"]) + if isinstance(dct["maintenance_date"], str) + else dct["maintenance_date"] + ) return super().from_dict(new_dct) def __lt__(self, other): @@ -363,8 +367,16 @@ class CommonCriteriaCert(Certificate, PandasSerializableType, ComplexSerializabl new_dct = dct.copy() new_dct["maintenance_updates"] = set(dct["maintenance_updates"]) new_dct["protection_profiles"] = set(dct["protection_profiles"]) - new_dct["not_valid_before"] = date.fromisoformat(dct["not_valid_before"]) if isinstance(dct["not_valid_before"], str) else dct["not_valid_before"] - new_dct["not_valid_after"] = date.fromisoformat(dct["not_valid_after"]) if isinstance(dct["not_valid_after"], str) else dct["not_valid_after"] + new_dct["not_valid_before"] = ( + date.fromisoformat(dct["not_valid_before"]) + if isinstance(dct["not_valid_before"], str) + else dct["not_valid_before"] + ) + new_dct["not_valid_after"] = ( + date.fromisoformat(dct["not_valid_after"]) + if isinstance(dct["not_valid_after"], str) + else dct["not_valid_after"] + ) return super(cls, CommonCriteriaCert).from_dict(new_dct) @classmethod |
