Abstract Syntax Notation One (ASN.1) is a framework for representing tree structured data. It is widely used in communication protocols (e.g., SNMP and LDAP), security protocols (e.g., X.509), data formats (e.g., PKCS#7), and so on. ASN.1 is designed for efficiency and the data is usually packed into byte boundaries, and hence is not very readable and is hard to manipulate. Since ASN.1 data is structured data, it should be possible to represent the same information in Extensible Markup Language (XML). XML is not particularly efficient in terms of data length, but is more readable, and it has many off-the-shelf free tools (e.g., XML processors for parsing and generation, XSL processors for rendering, XML editors for authoring, and so on). For such reasons, the translation between ASN.1 and XML will enable us to manipulate efficient ASN.1 data in a user-friendly manner. This is a Java library for such translation. Using the library, ASN.1 can be translated into XML and vice versa.
The ASN.1 Project from ITU-T started working (jointly with ISO) on two XML-related initiatives, which have similar goals but no relation to our technology. See their official page for details.
Try the following sample applications to see how this library works.
Concept, description, and examples to get started using this library.
Reference to packages, classes, and members. This is generated by javadoc.
Specification of the translation rule from an ASN.1 abstract syntax definition to a DTD, and sample DTDs for popular ASN.1 protocols.
This package contains the executable code of Java ASN.1 library developed by Thomas Eirich of IBM Zurich Research Lab. and also contains the XSL stylesheet and sample program for processing an XML-ified X.509 certificate developed by Mine Sakurai of NEC Networks Development Lab. We are grateful to them for providing their resources.
samples/asn1/, data/asn1/, and
data/asn1/grammars/, respectively