diff options
| author | J08nY | 2024-02-03 18:45:46 +0100 |
|---|---|---|
| committer | J08nY | 2024-02-03 18:45:46 +0100 |
| commit | a096f7ed6c4637dc700bd53df2d110bb8a428394 (patch) | |
| tree | 216817d97609a039a239cf9a57b3fa2fff1c3dc4 /src | |
| parent | affffb9fc08b09d39806815a741832df79cd95e5 (diff) | |
| download | sec-certs-a096f7ed6c4637dc700bd53df2d110bb8a428394.tar.gz sec-certs-a096f7ed6c4637dc700bd53df2d110bb8a428394.tar.zst sec-certs-a096f7ed6c4637dc700bd53df2d110bb8a428394.zip | |
Improve UK rules.
Diffstat (limited to 'src')
| -rw-r--r-- | src/sec_certs/rules.yaml | 7 | ||||
| -rw-r--r-- | src/sec_certs/sample/cc_certificate_id.py | 8 |
2 files changed, 11 insertions, 4 deletions
diff --git a/src/sec_certs/rules.yaml b/src/sec_certs/rules.yaml index 95a834ba..8f5c6fd4 100644 --- a/src/sec_certs/rules.yaml +++ b/src/sec_certs/rules.yaml @@ -46,8 +46,11 @@ cc_cert_id: - "[0-9][0-9][0-9][ -](?:EWA|LSS|CCS)(?:[ -]20[0-9][0-9])?" # Canada (522-EWA-2020, 524 LSS 2020, 503-LSS) - "[0-9][0-9][0-9](?:%20|-)(?:EWA|LSS|CCS)(?:%20|-)(?:20[0-9][0-9]%20|)CR%20v[0-9]\\.[0-9]" # Canada filename with space (518-LSS%20CR%20v1.0) UK: - - "CRP[0-9]+[A-Z]?" # UK CESG - - "CERTIFICATION REPORT No. P[0-9]+[A-Z]?" # UK CESG + - "CRP(?P<counter>[0-9]+[A-Z]?)" + - "CERTIFICATION REPORT No. P(?P<counter>[0-9]+[A-Z]?)" + # Examples: + # CRP208 + # CERTIFICATION REPORT No. P123A ES: - "20[0-9][0-9][-‐][0-9]+[-‐]INF[-‐][0-9]+([-‐]?[ -‐](?:V|v)[0-9]+)?" # Spain ("2006-4-INF-98 v2" or "2006-4-INF-98-v2" or "2020-34-INF-3784- v1") KR: diff --git a/src/sec_certs/sample/cc_certificate_id.py b/src/sec_certs/sample/cc_certificate_id.py index fe362b99..5ec168ee 100644 --- a/src/sec_certs/sample/cc_certificate_id.py +++ b/src/sec_certs/sample/cc_certificate_id.py @@ -133,8 +133,12 @@ class CertificateId: def _canonical_uk(self): new_cert_id = self.clean - if match := re.match("CERTIFICATION REPORT No. P([0-9]+[A-Z]?)", new_cert_id): - new_cert_id = "CRP" + match.group(1) + for rule in rules["cc_cert_id"]["UK"]: + if match := re.match(rule, new_cert_id): + groups = match.groupdict() + counter = groups["counter"] + new_cert_id = f"CRP{counter}" + break return new_cert_id def _canonical_ca(self): |
