aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorJ08nY2024-02-03 17:14:17 +0100
committerJ08nY2024-02-03 17:14:17 +0100
commit48876d5979adf8a63e2141262acd16608fc2aeda (patch)
treeb7ac57c0d532e7f636247d62c4ab0286de282d0a /src
parentc60fece36b7e7c5300b25cf83b9e34d338675067 (diff)
downloadsec-certs-48876d5979adf8a63e2141262acd16608fc2aeda.tar.gz
sec-certs-48876d5979adf8a63e2141262acd16608fc2aeda.tar.zst
sec-certs-48876d5979adf8a63e2141262acd16608fc2aeda.zip
Improve Malaysian rules.
Diffstat (limited to 'src')
-rw-r--r--src/sec_certs/rules.yaml6
-rw-r--r--src/sec_certs/sample/cc_certificate_id.py14
2 files changed, 19 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,