diff options
| author | J08nY | 2024-02-03 18:52:17 +0100 |
|---|---|---|
| committer | J08nY | 2024-02-03 18:52:17 +0100 |
| commit | 3efe520d01726c5c00428b9fd4b4d07d8bb4da5c (patch) | |
| tree | 30a52f61eda3bde899ad18be47015dafedc3e648 | |
| parent | a096f7ed6c4637dc700bd53df2d110bb8a428394 (diff) | |
| download | sec-certs-3efe520d01726c5c00428b9fd4b4d07d8bb4da5c.tar.gz sec-certs-3efe520d01726c5c00428b9fd4b4d07d8bb4da5c.tar.zst sec-certs-3efe520d01726c5c00428b9fd4b4d07d8bb4da5c.zip | |
Improve Swedish rules.
| -rw-r--r-- | src/sec_certs/rules.yaml | 5 | ||||
| -rw-r--r-- | src/sec_certs/sample/cc_certificate_id.py | 9 | ||||
| -rw-r--r-- | tests/cc/test_cc_misc.py | 2 |
3 files changed, 14 insertions, 2 deletions
diff --git a/src/sec_certs/rules.yaml b/src/sec_certs/rules.yaml index 8f5c6fd4..404931fc 100644 --- a/src/sec_certs/rules.yaml +++ b/src/sec_certs/rules.yaml @@ -79,7 +79,10 @@ cc_cert_id: - "[0-9\\.]+?/TSE-CCCS-[0-9]+" # Turkish CCCS (21.0.0sc/TSE-CCCS-75) - "(?:[0-9]{1,2}\\.){2}[0-9]{1,2}/[0-9]{1,4}-[0-9]{3}" # 21.0.01/13-028 SE: - - "CSEC ?[0-9]{6,7}" # Sweden (CSEC2019015) + - "CSEC ?(?P<year>[0-9]{4})(?P<counter>[0-9]{2,3})" + # Examples: + # CSEC2019015 + # CSEC 2019012 IN: # India (IC3S/DEL01/VALIANT/EAL1/0317/0007/CR STQC/CC/14-15/12/ETR/0017 IC3S/MUM01/CISCO/cPP/0119/0016/CR) # will miss STQC/CC/14-15/12/ETR/0017 diff --git a/src/sec_certs/sample/cc_certificate_id.py b/src/sec_certs/sample/cc_certificate_id.py index 5ec168ee..bdca0ab6 100644 --- a/src/sec_certs/sample/cc_certificate_id.py +++ b/src/sec_certs/sample/cc_certificate_id.py @@ -129,7 +129,14 @@ class CertificateId: return self.clean.replace(" ", "") def _canonical_se(self): - return self.clean.replace(" ", "") + new_cert_id = self.clean + for rule in rules["cc_cert_id"]["SE"]: + if match := re.match(rule, new_cert_id): + groups = match.groupdict() + year = _parse_year(groups["year"]) + counter = int(groups["counter"]) + new_cert_id = f"CSEC{year}{counter:03}" + return new_cert_id def _canonical_uk(self): new_cert_id = self.clean diff --git a/tests/cc/test_cc_misc.py b/tests/cc/test_cc_misc.py index 3772340f..b25620e4 100644 --- a/tests/cc/test_cc_misc.py +++ b/tests/cc/test_cc_misc.py @@ -4,6 +4,7 @@ from sec_certs.sample.cc_certificate_id import canonicalize def test_canonicalize_fr(): assert canonicalize("Rapport de certification 2001/02v2", "FR") == "ANSSI-CC-2001/02v2" assert canonicalize("ANSSI-CC 2001/02-R01", "FR") == "ANSSI-CC-2001/02-R01" + assert canonicalize("ANSSI-CC 2001_02-M01", "FR") == "ANSSI-CC-2001/02-M01" def test_canonicalize_de(): @@ -40,6 +41,7 @@ def test_canonicalize_in(): def test_canonicalize_se(): assert canonicalize("CSEC2017020", "SE") == "CSEC2017020" assert canonicalize("CSEC 2017020", "SE") == "CSEC2017020" + assert canonicalize("CSEC201003", "SE") == "CSEC2010003" def test_canonicalize_uk(): |
