Gerade mal in ASN.1 eingelesen. Also die ganzen verschiedenen Encoder sind schon eine eigene Komplexität, aber wenn ich das richtig sehe kann ich mit dem richtigen Tooling, ähnlich wie bei Protobuf Encoder, Decoder und meine Datentypen im Code einfach aus der Specifikation generieren. Und das ist ja schon ganz geil. Was übersehe ich?

Gibt es eine guten Code Generatoren für die meisten Sprachen?

@hikhvar dingdingding du hast das Problem identifiziert. ASN.1 compiler sind magische Biester.
@funkylab Aber warum? Das ist doch alles relativ well defined.
@hikhvar disclaimer: das mag in den letzten Jahren besser geworden sein, aber meiner etinnerung nach war asn1c der go-to compiler, konnte aber viele der encodings nicht, die man so im low level networking und cellular brauchte; generell scheint mir der Standard etwas umfangreich und man findet halt dreiviertel-Implementierungen.
Es kommt mir vor, als hätte @LaF0rge dazu mal nen Vortrag gehalten, aber ich konnte jetzt auf die Schnelle nichts ausfindig machen.
@funkylab @hikhvar Die Situation bzgl. asn1-compiler/codegeneratoren im FOSS-Bereich ist tatsächlich historisch eine Katatsrophe. Das einzige halbwegs vernünftige tooling was ich kenne, ist in erlang (kein Wunder: Hat Ericsson gemacht, und die bauen damit ja Telekommuinikationssoftware). Für python ist die Sitaution grottig. Der asn1c für C ist in einem der vielen forks inzwischen etwas besser geworden. Oft fehlt UPER/APER encoding und fast immer fehlen Information Object Classes.
@funkylab @hikhvar es gibt halt selten funding für solches low-level tooling. Eine ordentliche test suite, die alle bekannten / öffentlichen ASN.1-syntax aus telecom-protokollen versucht zu verwenden fehlt ebenfalls. Im closed-source bereich lizenziert jeder proprietäre compiler/tools. Mein Favorit ist ffasn1c. Ultra schnelle code-generierung, ultra-kompakter code (habe ich schon auf cortex-M0 benutzt), ... - aber leider proprietär und kaum bekannt https://bellard.org/ffasn1/
FFASN1 Compiler

@LaF0rge @hikhvar … und naaaatürlich isses von Fabrice Bellard :) Man, der macht auch alles.
@funkylab @hikhvar ist wenig überraschend, wenn man LTE imlplementiert (womit/wozu er ja dann Amarisoft gegründet hat), will man vernünftiges ASN.1 tooling vorher. Und wenn man Ahnung von compilerbau hat (ich nicht), ist das vmtl. für jemanden mit seinem skill-level kein gigantischer task mehr. Zumal der ffasn1c ansatz ist, die ASN.1 syntax in binäre tabellen zu übersetzen, die dann zur runtime interpretiert werden. Also kein code-generation.

@LaF0rge Die Hauptkomplexität liegt also in den vielen verschiedenen Codex.

@funkylab

@hikhvar @funkylab Naja, die Komplexität liegt v.a. an den vielen Möglichkeiten, die ASN.1 im Detail ermöglicht. Viele bzw fast alld FOSS tools implementieren nur einen Teil davon. Und je nach dem welches protokoll/format Du dann nutzen willst, stolpert Du über die oft undokumentierten constraints der tools.
@hikhvar Ja, ASN.1 ist (oder war) klasse. Jede Generation an Programmierer:innen erfindet halt das Rad neu. Kannst dir ja mal Corba anschauen und du bekommst das nächste Déjà-vu… 😇