aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorJ08nY2024-02-03 18:45:46 +0100
committerJ08nY2024-02-03 18:45:46 +0100
commita096f7ed6c4637dc700bd53df2d110bb8a428394 (patch)
tree216817d97609a039a239cf9a57b3fa2fff1c3dc4 /src
parentaffffb9fc08b09d39806815a741832df79cd95e5 (diff)
downloadsec-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.yaml7
-rw-r--r--src/sec_certs/sample/cc_certificate_id.py8
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):