aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sec_certs
diff options
context:
space:
mode:
authorJ08nY2024-02-03 18:37:48 +0100
committerJ08nY2024-02-03 18:37:48 +0100
commitaffffb9fc08b09d39806815a741832df79cd95e5 (patch)
treee70ceefab0c3ff56534210191c58944414a9caa4 /src/sec_certs
parent48876d5979adf8a63e2141262acd16608fc2aeda (diff)
downloadsec-certs-affffb9fc08b09d39806815a741832df79cd95e5.tar.gz
sec-certs-affffb9fc08b09d39806815a741832df79cd95e5.tar.zst
sec-certs-affffb9fc08b09d39806815a741832df79cd95e5.zip
Improve Japanese rules.
Diffstat (limited to 'src/sec_certs')
-rw-r--r--src/sec_certs/rules.yaml10
-rw-r--r--src/sec_certs/sample/cc_certificate_id.py16
2 files changed, 19 insertions, 7 deletions
diff --git a/src/sec_certs/rules.yaml b/src/sec_certs/rules.yaml
index 6b63b991..95a834ba 100644
--- a/src/sec_certs/rules.yaml
+++ b/src/sec_certs/rules.yaml
@@ -56,9 +56,13 @@ cc_cert_id:
# - "KECS[-‐]CR[-‐][0-9]+[-‐][0-9]+" # Korea KECS-CR-20-61
- "KECS[-‐](?:ISIS|NISS|CISS)[-‐][0-9]+[-‐][0-9]{4}" # Korea KECS-ISIS-1234-2011
JP:
- - "(?:CRP|ACR)-C[0-9]+-[0-9]+" # Japan (CRP-C0595-01 ACR-C0417-03)
- - "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)
+ - "(?:CRP|ACR)-C(?P<counter>[0-9]+)-(?P<digit>[0-9]+)"
+ - "JISEC-CC-CRP-C(?P<counter>[0-9]+)-(?P<digit>[0-9]+)-(?P<year>[0-9]{4})"
+ - "Certification No. [cC](?P<counter>[0-9]+)"
+ # Examples:
+ # CRP-C0595-01
+ # JISEC-CC-CRP-C0689-01-2020
+ # Certification No. C0090
MY:
- "ISCB-(?P<digit>[0-9])-RPT-C(?P<counter>[0-9]{3})-CR(?:-[0-9])?-(?P<version>[vV][0-9][a-z]?)"
# Examples:
diff --git a/src/sec_certs/sample/cc_certificate_id.py b/src/sec_certs/sample/cc_certificate_id.py
index 42dc9e6f..fe362b99 100644
--- a/src/sec_certs/sample/cc_certificate_id.py
+++ b/src/sec_certs/sample/cc_certificate_id.py
@@ -147,10 +147,18 @@ class CertificateId:
def _canonical_jp(self):
new_cert_id = self.clean
- if match := re.match("Certification No. (C[0-9]+)", new_cert_id):
- return match.group(1)
- if match := re.search("CRP-(C[0-9]+)-", new_cert_id):
- return match.group(1)
+ for rule in rules["cc_cert_id"]["JP"]:
+ if match := re.match(rule, new_cert_id):
+ groups = match.groupdict()
+ counter = groups["counter"]
+ digit = groups.get("digit")
+ year = _parse_year(groups.get("year"))
+ new_cert_id = f"JISEC-CC-CRP-C{counter}"
+ if digit:
+ new_cert_id += f"-{digit}"
+ if year:
+ new_cert_id += f"-{year}"
+ break
return new_cert_id
def _canonical_no(self):