aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJán Jančár2024-07-04 16:55:17 +0200
committerGitHub2024-07-04 16:55:17 +0200
commit301c3aaccfb042bd229078a75a5906665b77bc4f (patch)
treeba0b78b28b9a4479f72bd3cb747de5615491bd9d
parentc5b4f3d8b966a23c90a9fadb2e29a63f989e0b7f (diff)
parent0a62b68777936510c9784b813c83c47734daf948 (diff)
downloadsec-certs-301c3aaccfb042bd229078a75a5906665b77bc4f.tar.gz
sec-certs-301c3aaccfb042bd229078a75a5906665b77bc4f.tar.zst
sec-certs-301c3aaccfb042bd229078a75a5906665b77bc4f.zip
Merge pull request #421 from crocs-muni/fix/fips-search-proper
Fix FIPS aplgo download column parse.
-rw-r--r--src/sec_certs/constants.py4
-rw-r--r--src/sec_certs/dataset/fips_algorithm.py3
2 files changed, 6 insertions, 1 deletions
diff --git a/src/sec_certs/constants.py b/src/sec_certs/constants.py
index 71c79f3e..e9b6d882 100644
--- a/src/sec_certs/constants.py
+++ b/src/sec_certs/constants.py
@@ -32,7 +32,9 @@ FIPS_BASE_URL = "https://csrc.nist.gov"
FIPS_CMVP_URL = FIPS_BASE_URL + "/projects/cryptographic-module-validation-program"
FIPS_CAVP_URL = FIPS_BASE_URL + "/projects/Cryptographic-Algorithm-Validation-Program"
FIPS_MODULE_URL = FIPS_CMVP_URL + "/certificate/{}"
-FIPS_ALG_SEARCH_URL = FIPS_CAVP_URL + "/validation-search?searchMode=validation&page="
+FIPS_ALG_SEARCH_VALIDATION_URL = FIPS_CAVP_URL + "/validation-search?searchMode=validation&page="
+FIPS_ALG_SEARCH_IMPLEMENTATION_URL = FIPS_CAVP_URL + "/validation-search?searchMode=implementation&page="
+FIPS_ALG_SEARCH_URL = FIPS_ALG_SEARCH_VALIDATION_URL
FIPS_SP_URL = "https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents/security-policies/140sp{}.pdf"
FIPS_ACTIVE_MODULES_URL = (
FIPS_CMVP_URL + "/validated-modules/search?SearchMode=Advanced&CertificateStatus=Active&ValidationYear=0"
diff --git a/src/sec_certs/dataset/fips_algorithm.py b/src/sec_certs/dataset/fips_algorithm.py
index 4a87b3ef..56163078 100644
--- a/src/sec_certs/dataset/fips_algorithm.py
+++ b/src/sec_certs/dataset/fips_algorithm.py
@@ -96,6 +96,9 @@ class FIPSAlgorithmDataset(JSONPathDataset, ComplexSerializableType):
@staticmethod
def parse_algorithms_from_html(html_path: Path) -> set[FIPSAlgorithm]:
df = pd.read_html(html_path)[0]
+ for col in df.columns:
+ if "Order by" in col:
+ df.rename(columns={col: col.split("Order by")[0]}, inplace=True)
df["alg_type"] = df["Validation Number"].map(lambda x: re.sub(r"[0-9\s]", "", x))
df["alg_number"] = df["Validation Number"].map(lambda x: re.sub(r"[^0-9]", "", x))
df["alg"] = df.apply(