diff options
| author | J08nY | 2024-02-03 18:37:48 +0100 |
|---|---|---|
| committer | J08nY | 2024-02-03 18:37:48 +0100 |
| commit | affffb9fc08b09d39806815a741832df79cd95e5 (patch) | |
| tree | e70ceefab0c3ff56534210191c58944414a9caa4 /src/sec_certs | |
| parent | 48876d5979adf8a63e2141262acd16608fc2aeda (diff) | |
| download | sec-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.yaml | 10 | ||||
| -rw-r--r-- | src/sec_certs/sample/cc_certificate_id.py | 16 |
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): |
