Commit ad9551f6 authored by Mark Canterbury's avatar Mark Canterbury
Browse files

First attempt

parent e762b619
Loading
Loading
Loading
Loading
Loading

utils/oids/oid.md

0 → 100644
+14 −0
Original line number Diff line number Diff line
# OID list
| Spec | Module name | Version | Full OID |
| ---- | ----------- | ------- | -------- |
|[TS 102 232-1](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1)|[HI1NotificationOperations](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1/HI1NotificationOperations.asn?ref_type=heads)|version7|itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) hi1(0) notificationOperations(1) version7(7)|
|[TS 102 232-1](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1)|[HI2Operations](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1/HI2Operations.asn?ref_type=heads)|version17|itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) hi2(1) version17(18)|
|[TS 102 232-1](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1)|[LI-PS-PDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1/LI-PS-PDU.asn?ref_type=heads)|version40|itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) li-ps(5) genHeader(1) version40(40)|
|[TS 102 232-2](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-2)|[EmailPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-2/EmailPDU.asn?ref_type=heads)|version20|itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) li-ps(5) email(2) version20(20)|
|[TS 102 232-3](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-3)|[IPAccessPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-3/IPAccessPDU.asn?ref_type=heads)|version20|itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) li-ps(5) iPAccess(3) version20(20)|
|[TS 102 232-4](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-4)|[L2AccessPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-4/L2AccessPDU.asn?ref_type=heads)|version10|itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2)li-ps(5) l2Access(4) version10(10)|
|[TS 102 232-5](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-5)|[IPMultimediaPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-5/IPMultimediaPDU.asn?ref_type=heads)|version17|itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) li-ps(5) iPMultimedia(5) version17(17)|
|[TS 102 232-6](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-6)|[PstnIsdnPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-6/PstnIsdnPDU.asn?ref_type=heads)|version6|itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) li-ps(5) pstnIsdn(6) version6(6)|
|[TS 102 657](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102657)|[RDMessage](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102657/RDMessage.asn?ref_type=heads)|version33|itu-t(0) identified-organization(4) etsi(0) securityDomain(2) retainedData(3) rdHeader(0) version33(33)|
|[TS 103 462](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/103462)|[ILHIPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/103462/ILHIPDU.asn?ref_type=heads)|version2|itu-t(0) identified-organization(4) etsi(0) securityDomain(2) informationHandover(4) ilhi(0) ilhiPdu(0) version2(2)|
|[TS 103 280](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/103280)|[Common-Parameters](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/103280/TS_103_280.asn1?ref_type=heads)|version261|itu-t(0) identified-organization(4) etsi(0) common-parameters(3280) version261(261)|

utils/oids/oid.py

0 → 100644
+34 −0
Original line number Diff line number Diff line
from pathlib import Path
import re

regex = re.compile(r"^(.+?){(.*?)}", re.DOTALL)
arc_regex = re.compile(r"(.+?)\(([0-9]+?)\)")
root = Path("./")
asn_files = list(root.rglob("*.asn")) + list(root.rglob("*.asn1"))

markdown_string = "# OID list\n"

markdown_string += "| Spec | Module name | Version | Full OID |\n"
markdown_string += "| ---- | ----------- | ------- | -------- |\n"

for asn_file in asn_files:
    if asn_file.parts[0] == "testing":
        continue
    text = asn_file.read_text()
    spec = f"TS {asn_file.parts[0][0:3]} {asn_file.parts[0][3:]}"
    url = f"https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/{str(asn_file).replace("\\","/")}?ref_type=heads"
    matches = regex.findall(text)
    for match in matches:
        module_name = match[0].strip()
        link = f"[{module_name}]({url})"
        oid_string = match[1].replace("\n","").replace("\r","").strip()
        oids = oid_string.split(" ")

        for oid in oids:
            print(f"   {oid}")
        last_arc = oids[-1]
        arc_parts = arc_regex.match(last_arc)
        markdown_string += f"|[{spec}](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/{'/'.join(asn_file.parts[:-1])})|{link}|{arc_parts.group(1)}|{oid_string}|\n"

out_file = Path("./utils/oids/oid.md")
out_file.write_text(markdown_string)
 No newline at end of file