diff options
| -rw-r--r-- | src/sec_certs/dataset/cc.py | 3 | ||||
| -rw-r--r-- | tests/cc/test_cc_dataset.py | 11 | ||||
| -rw-r--r-- | tests/data/cc/dataset/toy_dataset.json | 678 |
3 files changed, 352 insertions, 340 deletions
diff --git a/src/sec_certs/dataset/cc.py b/src/sec_certs/dataset/cc.py index d622a588..44c56afa 100644 --- a/src/sec_certs/dataset/cc.py +++ b/src/sec_certs/dataset/cc.py @@ -658,7 +658,7 @@ class CCDataset(Dataset[CCCertificate, CCAuxiliaryDatasets], ComplexSerializable cert_processing.process_parallel( CCCertificate.convert_cert_pdf, certs_to_process, - progress_bar_desc="Converting PDFs of security targets to txt", + progress_bar_desc="Converting PDFs of certificates to txt", ) def _convert_all_pdfs_body(self, fresh: bool = True) -> None: @@ -702,6 +702,7 @@ class CCDataset(Dataset[CCCertificate, CCAuxiliaryDatasets], ComplexSerializable def _extract_pdf_metadata(self) -> None: self._extract_report_metadata() self._extract_target_metadata() + self._extract_cert_metadata() @staged(logger, "Extracting report frontpages") def _extract_report_frontpage(self) -> None: diff --git a/tests/cc/test_cc_dataset.py b/tests/cc/test_cc_dataset.py index 4fe40a40..9d1e4022 100644 --- a/tests/cc/test_cc_dataset.py +++ b/tests/cc/test_cc_dataset.py @@ -23,6 +23,12 @@ def test_download_and_convert_pdfs(toy_dataset: CCDataset, data_dir: Path): "8a5e6bcda602920c": "fcee91f09bb72a6526a1f94d0ab754a6db3fbe3ba5773cd372df19788bb25292", } + template_cert_pdf_hashes = { + "309ac2fd7f2dcf17": "9d38bca310c4d349cc39471e0b75d939cc275db9a75b07b8a365d719cfbedcc5", + "8cf86948f02f047d": None, + "8a5e6bcda602920c": "4ba78f26f505819183256ca5a6b404fa90c750fe160c41791e4c400f64e2f6d5", + } + with TemporaryDirectory() as td: toy_dataset.copy_dataset(td) toy_dataset.download_all_artifacts() @@ -30,10 +36,12 @@ def test_download_and_convert_pdfs(toy_dataset: CCDataset, data_dir: Path): if not ( toy_dataset["309ac2fd7f2dcf17"].state.report.download_ok or toy_dataset["309ac2fd7f2dcf17"].state.st.download_ok + or toy_dataset["309ac2fd7f2dcf17"].state.cert.download_ok or toy_dataset["8cf86948f02f047d"].state.report.download_ok or toy_dataset["8cf86948f02f047d"].state.st.download_ok or toy_dataset["8a5e6bcda602920c"].state.report.download_ok or toy_dataset["8a5e6bcda602920c"].state.st.download_ok + or toy_dataset["8a5e6bcda602920c"].state.cert.download_ok ): pytest.xfail(reason="Fail due to error during download") @@ -42,12 +50,15 @@ def test_download_and_convert_pdfs(toy_dataset: CCDataset, data_dir: Path): for cert in toy_dataset: assert cert.state.report.pdf_hash == template_report_pdf_hashes[cert.dgst] assert cert.state.st.pdf_hash == template_st_pdf_hashes[cert.dgst] + assert cert.state.cert.pdf_hash == template_cert_pdf_hashes[cert.dgst] assert not cert.state.report.convert_garbage assert not cert.state.st.convert_garbage assert cert.state.report.convert_ok assert cert.state.st.convert_ok assert cert.state.report.txt_path.exists() assert cert.state.st.txt_path.exists() + if cert.cert_link: + assert cert.state.cert.txt_path.exists() template_report_txt_path = data_dir / "report_309ac2fd7f2dcf17.txt" template_st_txt_path = data_dir / "target_309ac2fd7f2dcf17.txt" diff --git a/tests/data/cc/dataset/toy_dataset.json b/tests/data/cc/dataset/toy_dataset.json index dc70bc4e..dbf75078 100644 --- a/tests/data/cc/dataset/toy_dataset.json +++ b/tests/data/cc/dataset/toy_dataset.json @@ -1,345 +1,345 @@ { - "_type": "sec_certs.dataset.cc.CCDataset", - "state": { - "_type": "sec_certs.dataset.dataset.Dataset.DatasetInternalState", - "meta_sources_parsed": true, - "artifacts_downloaded": false, - "pdfs_converted": false, - "auxiliary_datasets_processed": false, - "certs_analyzed": false + "_type": "sec_certs.dataset.cc.CCDataset", + "state": { + "_type": "sec_certs.dataset.dataset.Dataset.DatasetInternalState", + "meta_sources_parsed": true, + "artifacts_downloaded": false, + "pdfs_converted": false, + "auxiliary_datasets_processed": false, + "certs_analyzed": false + }, + "timestamp": "2020-11-16 17:04:14.770153", + "sha256_digest": "not implemented", + "name": "toy dataset", + "description": "toy dataset description", + "n_certs": 3, + "certs": [ + { + "_type": "sec_certs.sample.cc.CCCertificate", + "dgst": "309ac2fd7f2dcf17", + "status": "active", + "category": "Access Control Devices and Systems", + "name": "NetIQ Identity Manager 4.7", + "manufacturer": "NetIQ Corporation", + "scheme": "SE", + "security_level": { + "_type": "Set", + "elements": [ + "ALC_FLR.2", + "EAL3+" + ] + }, + "not_valid_before": "2020-06-15", + "not_valid_after": "2025-06-15", + "report_link": "https://www.commoncriteriaportal.org/files/epfiles/Certification%20Report%20-%20NetIQ®%20Identity%20Manager%204.7.pdf", + "st_link": "https://www.commoncriteriaportal.org/files/epfiles/ST%20-%20NetIQ%20Identity%20Manager%204.7.pdf", + "cert_link": "https://www.commoncriteriaportal.org/files/epfiles/Certifikat%20CCRA%20-%20NetIQ%20Identity%20Manager%204.7_signed.pdf", + "manufacturer_web": "https://www.netiq.com/", + "protection_profiles": { + "_type": "Set", + "elements": [] + }, + "maintenance_updates": { + "_type": "Set", + "elements": [] + }, + "state": { + "_type": "sec_certs.sample.cc.CCCertificate.InternalState", + "report": { + "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", + "download_ok": false, + "convert_garbage": false, + "convert_ok": false, + "extract_ok": false, + "pdf_hash": null, + "txt_hash": null + }, + "st": { + "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", + "download_ok": false, + "convert_garbage": false, + "convert_ok": false, + "extract_ok": false, + "pdf_hash": null, + "txt_hash": null + }, + "cert": { + "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", + "download_ok": false, + "convert_garbage": false, + "convert_ok": false, + "extract_ok": false, + "pdf_hash": null, + "txt_hash": null + } + }, + "pdf_data": { + "_type": "sec_certs.sample.cc.CCCertificate.PdfData", + "report_metadata": null, + "st_metadata": null, + "cert_metadata": null, + "report_frontpage": null, + "st_frontpage": null, + "cert_frontpage": null, + "report_keywords": null, + "st_keywords": null, + "cert_keywords": null, + "report_filename": null, + "st_filename": null, + "cert_filename": null + }, + "heuristics": { + "_type": "sec_certs.sample.cc.CCCertificate.Heuristics", + "extracted_versions": null, + "cpe_matches": null, + "verified_cpe_matches": null, + "related_cves": null, + "cert_lab": null, + "cert_id": null, + "annotated_references": null, + "extracted_sars": null, + "direct_transitive_cves": null, + "indirect_transitive_cves": null, + "report_references": { + "_type": "sec_certs.sample.certificate.References", + "directly_referenced_by": null, + "directly_referencing": null, + "indirectly_referenced_by": null, + "indirectly_referencing": null + }, + "st_references": { + "_type": "sec_certs.sample.certificate.References", + "directly_referenced_by": null, + "directly_referencing": null, + "indirectly_referenced_by": null, + "indirectly_referencing": null + }, + "scheme_data": null + } }, - "timestamp": "2020-11-16 17:04:14.770153", - "sha256_digest": "not implemented", - "name": "toy dataset", - "description": "toy dataset description", - "n_certs": 3, - "certs": [ - { - "_type": "sec_certs.sample.cc.CCCertificate", - "dgst": "309ac2fd7f2dcf17", - "status": "active", - "category": "Access Control Devices and Systems", - "name": "NetIQ Identity Manager 4.7", - "manufacturer": "NetIQ Corporation", - "scheme": "SE", - "security_level": { - "_type": "Set", - "elements": [ - "ALC_FLR.2", - "EAL3+" - ] - }, - "not_valid_before": "2020-06-15", - "not_valid_after": "2025-06-15", - "report_link": "https://www.commoncriteriaportal.org/files/epfiles/Certification%20Report%20-%20NetIQ®%20Identity%20Manager%204.7.pdf", - "st_link": "https://www.commoncriteriaportal.org/files/epfiles/ST%20-%20NetIQ%20Identity%20Manager%204.7.pdf", - "cert_link": "https://www.commoncriteriaportal.org/files/epfiles/Certifikat%20CCRA%20-%20NetIQ%20Identity%20Manager%204.7_signed.pdf", - "manufacturer_web": "https://www.netiq.com/", - "protection_profiles": { - "_type": "Set", - "elements": [] - }, - "maintenance_updates": { - "_type": "Set", - "elements": [] - }, - "state": { - "_type": "sec_certs.sample.cc.CCCertificate.InternalState", - "report": { - "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", - "download_ok": false, - "convert_garbage": false, - "convert_ok": false, - "extract_ok": false, - "pdf_hash": null, - "txt_hash": null - }, - "st": { - "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", - "download_ok": false, - "convert_garbage": false, - "convert_ok": false, - "extract_ok": false, - "pdf_hash": null, - "txt_hash": null - }, - "cert": { - "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", - "download_ok": false, - "convert_garbage": false, - "convert_ok": false, - "extract_ok": false, - "pdf_hash": null, - "txt_hash": null - } - }, - "pdf_data": { - "_type": "sec_certs.sample.cc.CCCertificate.PdfData", - "report_metadata": null, - "st_metadata": null, - "cert_metadata": null, - "report_frontpage": null, - "st_frontpage": null, - "cert_frontpage": null, - "report_keywords": null, - "st_keywords": null, - "cert_keywords": null, - "report_filename": null, - "st_filename": null, - "cert_filename": null - }, - "heuristics": { - "_type": "sec_certs.sample.cc.CCCertificate.Heuristics", - "extracted_versions": null, - "cpe_matches": null, - "verified_cpe_matches": null, - "related_cves": null, - "cert_lab": null, - "cert_id": null, - "annotated_references": null, - "extracted_sars": null, - "direct_transitive_cves": null, - "indirect_transitive_cves": null, - "report_references": { - "_type": "sec_certs.sample.certificate.References", - "directly_referenced_by": null, - "directly_referencing": null, - "indirectly_referenced_by": null, - "indirectly_referencing": null - }, - "st_references": { - "_type": "sec_certs.sample.certificate.References", - "directly_referenced_by": null, - "directly_referencing": null, - "indirectly_referenced_by": null, - "indirectly_referencing": null - }, - "scheme_data": null - } + { + "_type": "sec_certs.sample.cc.CCCertificate", + "dgst": "8cf86948f02f047d", + "status": "active", + "category": "Access Control Devices and Systems", + "name": "Magic SSO V4.0", + "manufacturer": "Dreamsecurity Co., Ltd.", + "scheme": "KR", + "security_level": { + "_type": "Set", + "elements": [] + }, + "not_valid_before": "2019-11-15", + "not_valid_after": "2024-11-15", + "report_link": "https://www.commoncriteriaportal.org/files/epfiles/KECS-CR-19-70%20Magic%20SSO%20V4.0(eng)%20V1.0.pdf", + "st_link": "https://www.commoncriteriaportal.org/files/epfiles/Magic_SSO_V4.0-ST-v1.4_EN.pdf", + "cert_link": null, + "manufacturer_web": "https://www.dreamsecurity.com/", + "protection_profiles": { + "_type": "Set", + "elements": [ + { + "_type": "sec_certs.sample.protection_profile.ProtectionProfile", + "pp_name": "Korean National Protection Profile for Single Sign On V1.0", + "pp_eal": "EAL1+", + "pp_link": "https://www.commoncriteriaportal.org/files/ppfiles/KECS-PP-0822-2017%20Korean%20National%20PP%20for%20Single%20Sign%20On%20V1.0(eng).pdf", + "pp_ids": null + } + ] + }, + "maintenance_updates": { + "_type": "Set", + "elements": [] + }, + "state": { + "_type": "sec_certs.sample.cc.CCCertificate.InternalState", + "report": { + "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", + "download_ok": false, + "convert_garbage": false, + "convert_ok": false, + "extract_ok": false, + "pdf_hash": null, + "txt_hash": null }, - { - "_type": "sec_certs.sample.cc.CCCertificate", - "dgst": "8cf86948f02f047d", - "status": "active", - "category": "Access Control Devices and Systems", - "name": "Magic SSO V4.0", - "manufacturer": "Dreamsecurity Co., Ltd.", - "scheme": "KR", - "security_level": { - "_type": "Set", - "elements": [] - }, - "not_valid_before": "2019-11-15", - "not_valid_after": "2024-11-15", - "report_link": "https://www.commoncriteriaportal.org/files/epfiles/KECS-CR-19-70%20Magic%20SSO%20V4.0(eng)%20V1.0.pdf", - "st_link": "https://www.commoncriteriaportal.org/files/epfiles/Magic_SSO_V4.0-ST-v1.4_EN.pdf", - "cert_link": null, - "manufacturer_web": "https://www.dreamsecurity.com/", - "protection_profiles": { - "_type": "Set", - "elements": [ - { - "_type": "sec_certs.sample.protection_profile.ProtectionProfile", - "pp_name": "Korean National Protection Profile for Single Sign On V1.0", - "pp_eal": "EAL1+", - "pp_link": "https://www.commoncriteriaportal.org/files/ppfiles/KECS-PP-0822-2017%20Korean%20National%20PP%20for%20Single%20Sign%20On%20V1.0(eng).pdf", - "pp_ids": null - } - ] - }, - "maintenance_updates": { - "_type": "Set", - "elements": [] - }, - "state": { - "_type": "sec_certs.sample.cc.CCCertificate.InternalState", - "report": { - "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", - "download_ok": false, - "convert_garbage": false, - "convert_ok": false, - "extract_ok": false, - "pdf_hash": null, - "txt_hash": null - }, - "st": { - "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", - "download_ok": false, - "convert_garbage": false, - "convert_ok": false, - "extract_ok": false, - "pdf_hash": null, - "txt_hash": null - }, - "cert": { - "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", - "download_ok": false, - "convert_garbage": false, - "convert_ok": false, - "extract_ok": false, - "pdf_hash": null, - "txt_hash": null - } - }, - "pdf_data": { - "_type": "sec_certs.sample.cc.CCCertificate.PdfData", - "report_metadata": null, - "st_metadata": null, - "cert_metadata": null, - "report_frontpage": null, - "st_frontpage": null, - "cert_frontpage": null, - "report_keywords": null, - "st_keywords": null, - "cert_keywords": null, - "report_filename": null, - "st_filename": null, - "cert_filename": null - }, - "heuristics": { - "_type": "sec_certs.sample.cc.CCCertificate.Heuristics", - "extracted_versions": null, - "cpe_matches": null, - "verified_cpe_matches": null, - "related_cves": null, - "cert_lab": null, - "cert_id": null, - "annotated_references": null, - "extracted_sars": null, - "direct_transitive_cves": null, - "indirect_transitive_cves": null, - "report_references": { - "_type": "sec_certs.sample.certificate.References", - "directly_referenced_by": null, - "directly_referencing": null, - "indirectly_referenced_by": null, - "indirectly_referencing": null - }, - "st_references": { - "_type": "sec_certs.sample.certificate.References", - "directly_referenced_by": null, - "directly_referencing": null, - "indirectly_referenced_by": null, - "indirectly_referencing": null - }, - "scheme_data": null - } + "st": { + "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", + "download_ok": false, + "convert_garbage": false, + "convert_ok": false, + "extract_ok": false, + "pdf_hash": null, + "txt_hash": null }, - { - "_type": "sec_certs.sample.cc.CCCertificate", - "dgst": "8a5e6bcda602920c", - "status": "active", - "category": "Boundary Protection Devices and Systems", - "name": "Fortinet FortiGate w/ FortiOS v5.6.7", - "manufacturer": "Fortinet, Inc.", - "scheme": "CA", - "security_level": { - "_type": "Set", - "elements": [] - }, - "not_valid_before": "2019-05-22", - "not_valid_after": "2024-05-24", - "report_link": "https://www.commoncriteriaportal.org/files/epfiles/383-4-450%20CR%20v1.0a.pdf", - "st_link": "https://www.commoncriteriaportal.org/files/epfiles/383-4-450%20ST%20v1.3A.pdf", - "cert_link": "https://www.commoncriteriaportal.org/files/epfiles/383-4-450%20CT%20v1.0a.pdf", - "manufacturer_web": "https://www.fortinet.com/", - "protection_profiles": { - "_type": "Set", - "elements": [ - { - "_type": "sec_certs.sample.protection_profile.ProtectionProfile", - "pp_name": "collaborative Protection Profile for Stateful Traffic Filter Firewalls v2.0 + Errata 20180314", - "pp_eal": null, - "pp_link": "https://www.commoncriteriaportal.org/files/ppfiles/CPP_FW_V2.0E.pdf", - "pp_ids": null - } - ] - }, - "maintenance_updates": { - "_type": "Set", - "elements": [ - { - "_type": "sec_certs.sample.cc.CCCertificate.MaintenanceReport", - "maintenance_date": "2019-08-26", - "maintenance_title": "Fortinet FortiGate w/ FortiOS v5.6.7 Build 6022", - "maintenance_report_link": "https://www.commoncriteriaportal.org/files/epfiles/383-7-159%20MR%20v1.0e.pdf", - "maintenance_st_link": "https://www.commoncriteriaportal.org/files/epfiles/383-7-159%20ST%20v1.4%20CCRA.pdf" - } - ] - }, - "state": { - "_type": "sec_certs.sample.cc.CCCertificate.InternalState", - "report": { - "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", - "download_ok": false, - "convert_garbage": false, - "convert_ok": false, - "extract_ok": false, - "pdf_hash": null, - "txt_hash": null - }, - "st": { - "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", - "download_ok": false, - "convert_garbage": false, - "convert_ok": false, - "extract_ok": false, - "pdf_hash": null, - "txt_hash": null - }, - "cert": { - "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", - "download_ok": false, - "convert_garbage": false, - "convert_ok": false, - "extract_ok": false, - "pdf_hash": null, - "txt_hash": null - } - }, - "pdf_data": { - "_type": "sec_certs.sample.cc.CCCertificate.PdfData", - "report_metadata": null, - "st_metadata": null, - "cert_metadata": null, - "report_frontpage": null, - "st_frontpage": null, - "cert_frontpage": null, - "report_keywords": null, - "st_keywords": null, - "cert_keywords": null, - "report_filename": null, - "st_filename": null, - "cert_filename": null - }, - "heuristics": { - "_type": "sec_certs.sample.cc.CCCertificate.Heuristics", - "extracted_versions": null, - "cpe_matches": null, - "verified_cpe_matches": null, - "related_cves": null, - "cert_lab": null, - "cert_id": null, - "annotated_references": null, - "extracted_sars": null, - "direct_transitive_cves": null, - "indirect_transitive_cves": null, - "report_references": { - "_type": "sec_certs.sample.certificate.References", - "directly_referenced_by": null, - "directly_referencing": null, - "indirectly_referenced_by": null, - "indirectly_referencing": null - }, - "st_references": { - "_type": "sec_certs.sample.certificate.References", - "directly_referenced_by": null, - "directly_referencing": null, - "indirectly_referenced_by": null, - "indirectly_referencing": null - }, - "scheme_data": null - } + "cert": { + "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", + "download_ok": false, + "convert_garbage": false, + "convert_ok": false, + "extract_ok": false, + "pdf_hash": null, + "txt_hash": null } - ] + }, + "pdf_data": { + "_type": "sec_certs.sample.cc.CCCertificate.PdfData", + "report_metadata": null, + "st_metadata": null, + "cert_metadata": null, + "report_frontpage": null, + "st_frontpage": null, + "cert_frontpage": null, + "report_keywords": null, + "st_keywords": null, + "cert_keywords": null, + "report_filename": null, + "st_filename": null, + "cert_filename": null + }, + "heuristics": { + "_type": "sec_certs.sample.cc.CCCertificate.Heuristics", + "extracted_versions": null, + "cpe_matches": null, + "verified_cpe_matches": null, + "related_cves": null, + "cert_lab": null, + "cert_id": null, + "annotated_references": null, + "extracted_sars": null, + "direct_transitive_cves": null, + "indirect_transitive_cves": null, + "report_references": { + "_type": "sec_certs.sample.certificate.References", + "directly_referenced_by": null, + "directly_referencing": null, + "indirectly_referenced_by": null, + "indirectly_referencing": null + }, + "st_references": { + "_type": "sec_certs.sample.certificate.References", + "directly_referenced_by": null, + "directly_referencing": null, + "indirectly_referenced_by": null, + "indirectly_referencing": null + }, + "scheme_data": null + } + }, + { + "_type": "sec_certs.sample.cc.CCCertificate", + "dgst": "8a5e6bcda602920c", + "status": "active", + "category": "Boundary Protection Devices and Systems", + "name": "Fortinet FortiGate w/ FortiOS v5.6.7", + "manufacturer": "Fortinet, Inc.", + "scheme": "CA", + "security_level": { + "_type": "Set", + "elements": [] + }, + "not_valid_before": "2019-05-22", + "not_valid_after": "2024-05-24", + "report_link": "https://www.commoncriteriaportal.org/files/epfiles/383-4-450%20CR%20v1.0a.pdf", + "st_link": "https://www.commoncriteriaportal.org/files/epfiles/383-4-450%20ST%20v1.3A.pdf", + "cert_link": "https://www.commoncriteriaportal.org/files/epfiles/383-4-450%20CT%20v1.0a.pdf", + "manufacturer_web": "https://www.fortinet.com/", + "protection_profiles": { + "_type": "Set", + "elements": [ + { + "_type": "sec_certs.sample.protection_profile.ProtectionProfile", + "pp_name": "collaborative Protection Profile for Stateful Traffic Filter Firewalls v2.0 + Errata 20180314", + "pp_eal": null, + "pp_link": "https://www.commoncriteriaportal.org/files/ppfiles/CPP_FW_V2.0E.pdf", + "pp_ids": null + } + ] + }, + "maintenance_updates": { + "_type": "Set", + "elements": [ + { + "_type": "sec_certs.sample.cc.CCCertificate.MaintenanceReport", + "maintenance_date": "2019-08-26", + "maintenance_title": "Fortinet FortiGate w/ FortiOS v5.6.7 Build 6022", + "maintenance_report_link": "https://www.commoncriteriaportal.org/files/epfiles/383-7-159%20MR%20v1.0e.pdf", + "maintenance_st_link": "https://www.commoncriteriaportal.org/files/epfiles/383-7-159%20ST%20v1.4%20CCRA.pdf" + } + ] + }, + "state": { + "_type": "sec_certs.sample.cc.CCCertificate.InternalState", + "report": { + "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", + "download_ok": false, + "convert_garbage": false, + "convert_ok": false, + "extract_ok": false, + "pdf_hash": null, + "txt_hash": null + }, + "st": { + "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", + "download_ok": false, + "convert_garbage": false, + "convert_ok": false, + "extract_ok": false, + "pdf_hash": null, + "txt_hash": null + }, + "cert": { + "_type": "sec_certs.sample.cc.CCCertificate.DocumentState", + "download_ok": false, + "convert_garbage": false, + "convert_ok": false, + "extract_ok": false, + "pdf_hash": null, + "txt_hash": null + } + }, + "pdf_data": { + "_type": "sec_certs.sample.cc.CCCertificate.PdfData", + "report_metadata": null, + "st_metadata": null, + "cert_metadata": null, + "report_frontpage": null, + "st_frontpage": null, + "cert_frontpage": null, + "report_keywords": null, + "st_keywords": null, + "cert_keywords": null, + "report_filename": null, + "st_filename": null, + "cert_filename": null + }, + "heuristics": { + "_type": "sec_certs.sample.cc.CCCertificate.Heuristics", + "extracted_versions": null, + "cpe_matches": null, + "verified_cpe_matches": null, + "related_cves": null, + "cert_lab": null, + "cert_id": null, + "annotated_references": null, + "extracted_sars": null, + "direct_transitive_cves": null, + "indirect_transitive_cves": null, + "report_references": { + "_type": "sec_certs.sample.certificate.References", + "directly_referenced_by": null, + "directly_referencing": null, + "indirectly_referenced_by": null, + "indirectly_referencing": null + }, + "st_references": { + "_type": "sec_certs.sample.certificate.References", + "directly_referenced_by": null, + "directly_referencing": null, + "indirectly_referenced_by": null, + "indirectly_referencing": null + }, + "scheme_data": null + } + } + ] } |
