diff options
| author | J08nY | 2023-08-14 11:02:18 +0200 |
|---|---|---|
| committer | J08nY | 2023-08-14 11:02:18 +0200 |
| commit | f62cbc46ded0b98150b46d93533add3a27f7843e (patch) | |
| tree | 5e5c26afc9ffdf91870f15bad5a7e2332f0c8f89 | |
| parent | 47246745a2cd3d6cb7e6269f2731f291788649d5 (diff) | |
| download | sec-certs-f62cbc46ded0b98150b46d93533add3a27f7843e.tar.gz sec-certs-f62cbc46ded0b98150b46d93533add3a27f7843e.tar.zst sec-certs-f62cbc46ded0b98150b46d93533add3a27f7843e.zip | |
Fix Canada CC scheme download.
They changed their website, which broke our code.
Honestly, I am surprised this scheme parsing does not break
more often.
| -rw-r--r-- | src/sec_certs/constants.py | 6 | ||||
| -rw-r--r-- | src/sec_certs/sample/cc_scheme.py | 8 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/sec_certs/constants.py b/src/sec_certs/constants.py index b28b925d..c1ebfdfc 100644 --- a/src/sec_certs/constants.py +++ b/src/sec_certs/constants.py @@ -73,8 +73,10 @@ CC_AUSTRALIA_INEVAL_URL = ( CC_AUSTRALIA_BASE_URL + "/resources-business-and-government/assessment-and-evaluation-programs/australian-information-security-evaluation-program-aisep" ) -CC_CANADA_CERTIFIED_URL = "https://www.cyber.gc.ca/en/tools-services/common-criteria/certified-products" -CC_CANADA_INEVAL_URL = "https://www.cyber.gc.ca/en/tools-services/common-criteria/products-evaluation" +CC_CANADA_BASE_URL = "https://www.cyber.gc.ca" +CC_CANADA_API_URL = CC_CANADA_BASE_URL + "/api/cccs/page/v1/get" +CC_CANADA_CERTIFIED_URL = "/en/tools-services/common-criteria/certified-products" +CC_CANADA_INEVAL_URL = "/en/tools-services/common-criteria/products-evaluation" CC_ANSSI_BASE_URL = "https://www.ssi.gouv.fr" CC_ANSSI_CERTIFIED_URL = CC_ANSSI_BASE_URL + "/en/products/certified-products/" CC_BSI_BASE_URL = "https://www.bsi.bund.de/" diff --git a/src/sec_certs/sample/cc_scheme.py b/src/sec_certs/sample/cc_scheme.py index 12fb1fd4..307dfb57 100644 --- a/src/sec_certs/sample/cc_scheme.py +++ b/src/sec_certs/sample/cc_scheme.py @@ -153,7 +153,9 @@ def get_canada_certified() -> list[dict[str, Any]]: :return: The entries. """ - soup = _get_page(constants.CC_CANADA_CERTIFIED_URL) + resp = _get(constants.CC_CANADA_API_URL + f"?lang=en&url={constants.CC_CANADA_CERTIFIED_URL}", None) + html_data = resp.json()["response"]["page"]["body"][0] + soup = BeautifulSoup(html_data, "html5lib") tbody = soup.find("table").find("tbody") results = [] for tr in tqdm(tbody.find_all("tr"), desc="Get CA scheme certified."): @@ -176,7 +178,9 @@ def get_canada_in_evaluation() -> list[dict[str, Any]]: :return: The entries. """ - soup = _get_page(constants.CC_CANADA_INEVAL_URL) + resp = _get(constants.CC_CANADA_API_URL + f"?lang=en&url={constants.CC_CANADA_INEVAL_URL}", None) + html_data = resp.json()["response"]["page"]["body"][0] + soup = BeautifulSoup(html_data, "html5lib") tbody = soup.find("table").find("tbody") results = [] for tr in tqdm(tbody.find_all("tr"), desc="Get CA scheme in evaluation."): |
