diff options
| -rw-r--r-- | src/sec_certs/rules.yaml | 6 | ||||
| -rw-r--r-- | src/sec_certs/sample/cc_certificate_id.py | 14 | ||||
| -rw-r--r-- | tests/cc/test_cc_misc.py | 6 |
3 files changed, 25 insertions, 1 deletions
diff --git a/src/sec_certs/rules.yaml b/src/sec_certs/rules.yaml index fa188052..6b63b991 100644 --- a/src/sec_certs/rules.yaml +++ b/src/sec_certs/rules.yaml @@ -60,7 +60,11 @@ cc_cert_id: - "JISEC-CC-CRP-C[0-9]+-[0-9]+-[0-9]+" # Japan (JISEC-CC-CRP-C0689-01-2020) - "Certification No. [cC][0-9]+" # Japan (Certification No. C0090) MY: - - "ISCB-[0-9]+-(?:RPT|FRM)-[CM][0-9]+[A-Z]?-(?:CR|AMR)(?:-[0-9])?-[vV][0-9](?:\\.[0-9])?[a-z]?" # Malaysia (ISCB-3-RPT-C092-CR-v1, ISCB-3-RPT-C068-CR-1-v1) + - "ISCB-(?P<digit>[0-9])-RPT-C(?P<counter>[0-9]{3})-CR(?:-[0-9])?-(?P<version>[vV][0-9][a-z]?)" + # Examples: + # ISCB-3-RPT-C068-CR-1-v1 + # ISCB-5-RPT-C075-CR-v2 + # ISCB-5-RPT-C046-CR-V1a IT: - "OCSI/CERT/.+?" # Italy - "OCSI/CERT/.+?/20[0-9]+(?:\\w|/RC)" # Italy (OCSI/CERT/ATS/01/2018/RC) diff --git a/src/sec_certs/sample/cc_certificate_id.py b/src/sec_certs/sample/cc_certificate_id.py index e84f6df2..42dc9e6f 100644 --- a/src/sec_certs/sample/cc_certificate_id.py +++ b/src/sec_certs/sample/cc_certificate_id.py @@ -89,6 +89,19 @@ class CertificateId: return new_cert_id + def _canonical_my(self) -> str: + new_cert_id = self.clean + for rule in rules["cc_cert_id"]["MY"]: + if match := re.match(rule, new_cert_id): + groups = match.groupdict() + digit = groups["digit"] + counter = groups["counter"] + version = groups["version"] + new_cert_id = f"ISCB-{digit}-RPT-C{counter}-CR-{version.lower()}" + break + + return new_cert_id + def _canonical_es(self) -> str: cert_id = self.clean spain_parts = cert_id.split("-") @@ -170,6 +183,7 @@ class CertificateId: "FR": self._canonical_fr, "DE": self._canonical_de, "US": self._canonical_us, + "MY": self._canonical_my, "ES": self._canonical_es, "IT": self._canonical_it, "IN": self._canonical_in, diff --git a/tests/cc/test_cc_misc.py b/tests/cc/test_cc_misc.py index 6fde3339..d439d508 100644 --- a/tests/cc/test_cc_misc.py +++ b/tests/cc/test_cc_misc.py @@ -19,6 +19,12 @@ def test_canonicalize_us(): assert canonicalize("CCEVS-VR-04-0082", "US") == "CCEVS-VR-0082-2004" +def test_canonicalize_my(): + assert canonicalize("ISCB-5-RPT-C075-CR-v2", "MY") == "ISCB-5-RPT-C075-CR-v2" + assert canonicalize("ISCB-5-RPT-C046-CR-V1a", "MY") == "ISCB-5-RPT-C046-CR-v1a" + assert canonicalize("ISCB-3-RPT-C068-CR-1-v1", "MY") == "ISCB-3-RPT-C068-CR-v1" + + def test_canonicalize_es(): assert canonicalize("2011-14-INF-1095-v1", "ES") == "2011-14-INF-1095" |
