aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJ08nY2024-02-03 18:52:17 +0100
committerJ08nY2024-02-03 18:52:17 +0100
commit3efe520d01726c5c00428b9fd4b4d07d8bb4da5c (patch)
tree30a52f61eda3bde899ad18be47015dafedc3e648
parenta096f7ed6c4637dc700bd53df2d110bb8a428394 (diff)
downloadsec-certs-3efe520d01726c5c00428b9fd4b4d07d8bb4da5c.tar.gz
sec-certs-3efe520d01726c5c00428b9fd4b4d07d8bb4da5c.tar.zst
sec-certs-3efe520d01726c5c00428b9fd4b4d07d8bb4da5c.zip
Improve Swedish rules.
-rw-r--r--src/sec_certs/rules.yaml5
-rw-r--r--src/sec_certs/sample/cc_certificate_id.py9
-rw-r--r--tests/cc/test_cc_misc.py2
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():