TU Darmstadt / ULB / TUbiblio

Design and Implementation of a Code Generator for ASN.1 Data Structures

Ebinger, Peter (2004):
Design and Implementation of a Code Generator for ASN.1 Data Structures.
[Book]

Abstract

A tool was developed that generates Java classes from a given ASN.1 definition, in order to code and decode the corresponding ASN.1 structures based on the CODEC library. CODEC is a Java library for coding and decoding ASN.1 data structures that is developed and maintained at the Fraunhofer IGD. The CODEC library is used particularly for the implementation of network protocols and other tasks within cryptographic environments, e.g. X.509 certificates. The first step is the analysis as well as the consolidation of the CODEC library. In this connection the measures necessary for the consolidation are specified, as well as some possible improvements of the underlying CODEC library are discussed. Furthermore the relevant ASN.1 constructs are defined as basis for realizing the required prototype classes. Thereafter the developed concept of the generator tool to be implemented is presented. This concept has to bridge the gap between strong automation and a broad function range. With consideration of the underlying complexity of ASN.1, a monolithic structure of the program could not be the goal of this concept. Therefore the target of the design is the development of a modular program structure, which can be easily extended. The developed concept is based on the 'Pipes and Filters' design pattern, which on the one hand provides good expandability and flexible configuration and on the other hand is well suited to integrate a template mechanism for the production of the desired ASN.1 data types. Based on this considerations the different aspects of the required generation process are analyzed and assigned to independent modules (filters). In the following the requirements of the individual modules are described in detail. Es wurde ein Werkzeug erstellt, das es erlaubt aus einer gegebenen ASN.1-Definition Java-Klassen zu erzeugen, um die entsprechenden ASN.1-Strukturen zu kodieren oder zu dekodieren. Das Werkzeug baut auf CODEC auf, einer Java-Bibliothek zum Kodieren und Dekodieren von ASN.1 Datenstrukturen, die vom Fraunhofer IGD entwickelt und gepflegt wird. Eingesetzt wird CODEC vor allem im kryptographischen Umfeld, wie z.B. bei X.509-Zertifikaten oder bei der Implementierung von Netzwerkprotokollen. Im Vorfeld der Entwicklung wird eine Analyse sowie eine Konsolidierung der dieser Arbeit zugrundeliegenden CODEC Bibliothek durchgeführt. Es werden die zur Konsolidierung notwendigen Maßnahmen zusammengestellt, sowie einige Möglichkeiten zur Verbesserung der CODEC Bibliothek diskutiert. Desweiteren werden die relevanten ASN.1 Konstrukte definiert die als Basis für die zu realisierenden Prototypen dienen. Danach wird das entwickelte Konzept des zu implementierenden Werkzeuges vorgestellt. Hierbei muss eine Brücke zwischen starker Automatisierung und breitem Funktionsumfang geschlagen werden. Ein monolitischer Aufbau des Programmes kann, bei Berücksichtigung der Komplexität des ASN.1 Standards, nicht Ziel des Konzeptes sein. Im Vordergrund des Designs steht daher die Entwicklung einer modularen und leicht zu erweiternden Programmstruktur. Das entwickelte Konzept basiert auf dem 'Pipes and Filters' Design Pattern, welches einerseits eine gute Erweiterbarkeit bzw. Konfigurierbarkeit ermöglicht und anderseits auch gut geeignet ist einen Template-Mechanismus zur Erstellung der gewünschten ASN.1 Datentypen zu integrieren. Basierend auf diesem Ansatz werden die verschiedenen Aspekte des geforderten Generierungsprozesses analysiert und auf unabhängige Module (Filter) abgebildet. Im Anschluss werden die Anforderungen an die einzelnen Module näher erläutert. Im Anschluss wird die Implemetierung des dargestellten Ansatzes ausführlich vorgestellt. Neben dem Parser-Generator JavaCC dient hierbei die eXtensible Stylesheet Language Transformation (XSLT) als Basistechnologie bei der Implemetierung. Die einzelen Filter der Pipeline werden hierbei mittels XSL-Stylesheets umgesetzt. Abschließend werden zukünftige Erweiterungen des Werkzeuges diskutiert.

Item Type: Book
Erschienen: 2004
Creators: Ebinger, Peter
Title: Design and Implementation of a Code Generator for ASN.1 Data Structures
Language: English
Abstract:

A tool was developed that generates Java classes from a given ASN.1 definition, in order to code and decode the corresponding ASN.1 structures based on the CODEC library. CODEC is a Java library for coding and decoding ASN.1 data structures that is developed and maintained at the Fraunhofer IGD. The CODEC library is used particularly for the implementation of network protocols and other tasks within cryptographic environments, e.g. X.509 certificates. The first step is the analysis as well as the consolidation of the CODEC library. In this connection the measures necessary for the consolidation are specified, as well as some possible improvements of the underlying CODEC library are discussed. Furthermore the relevant ASN.1 constructs are defined as basis for realizing the required prototype classes. Thereafter the developed concept of the generator tool to be implemented is presented. This concept has to bridge the gap between strong automation and a broad function range. With consideration of the underlying complexity of ASN.1, a monolithic structure of the program could not be the goal of this concept. Therefore the target of the design is the development of a modular program structure, which can be easily extended. The developed concept is based on the 'Pipes and Filters' design pattern, which on the one hand provides good expandability and flexible configuration and on the other hand is well suited to integrate a template mechanism for the production of the desired ASN.1 data types. Based on this considerations the different aspects of the required generation process are analyzed and assigned to independent modules (filters). In the following the requirements of the individual modules are described in detail. Es wurde ein Werkzeug erstellt, das es erlaubt aus einer gegebenen ASN.1-Definition Java-Klassen zu erzeugen, um die entsprechenden ASN.1-Strukturen zu kodieren oder zu dekodieren. Das Werkzeug baut auf CODEC auf, einer Java-Bibliothek zum Kodieren und Dekodieren von ASN.1 Datenstrukturen, die vom Fraunhofer IGD entwickelt und gepflegt wird. Eingesetzt wird CODEC vor allem im kryptographischen Umfeld, wie z.B. bei X.509-Zertifikaten oder bei der Implementierung von Netzwerkprotokollen. Im Vorfeld der Entwicklung wird eine Analyse sowie eine Konsolidierung der dieser Arbeit zugrundeliegenden CODEC Bibliothek durchgeführt. Es werden die zur Konsolidierung notwendigen Maßnahmen zusammengestellt, sowie einige Möglichkeiten zur Verbesserung der CODEC Bibliothek diskutiert. Desweiteren werden die relevanten ASN.1 Konstrukte definiert die als Basis für die zu realisierenden Prototypen dienen. Danach wird das entwickelte Konzept des zu implementierenden Werkzeuges vorgestellt. Hierbei muss eine Brücke zwischen starker Automatisierung und breitem Funktionsumfang geschlagen werden. Ein monolitischer Aufbau des Programmes kann, bei Berücksichtigung der Komplexität des ASN.1 Standards, nicht Ziel des Konzeptes sein. Im Vordergrund des Designs steht daher die Entwicklung einer modularen und leicht zu erweiternden Programmstruktur. Das entwickelte Konzept basiert auf dem 'Pipes and Filters' Design Pattern, welches einerseits eine gute Erweiterbarkeit bzw. Konfigurierbarkeit ermöglicht und anderseits auch gut geeignet ist einen Template-Mechanismus zur Erstellung der gewünschten ASN.1 Datentypen zu integrieren. Basierend auf diesem Ansatz werden die verschiedenen Aspekte des geforderten Generierungsprozesses analysiert und auf unabhängige Module (Filter) abgebildet. Im Anschluss werden die Anforderungen an die einzelnen Module näher erläutert. Im Anschluss wird die Implemetierung des dargestellten Ansatzes ausführlich vorgestellt. Neben dem Parser-Generator JavaCC dient hierbei die eXtensible Stylesheet Language Transformation (XSLT) als Basistechnologie bei der Implemetierung. Die einzelen Filter der Pipeline werden hierbei mittels XSL-Stylesheets umgesetzt. Abschließend werden zukünftige Erweiterungen des Werkzeuges diskutiert.

Uncontrolled Keywords: ASN.1, Cryptography, XSLT, Coder / Decoder
Divisions: 20 Department of Computer Science
20 Department of Computer Science > Interactive Graphics Systems
Date Deposited: 16 Apr 2018 09:04
Additional Information:

61 S.

Export:
Suche nach Titel in: TUfind oder in Google

Optionen (nur für Redakteure)

View Item View Item