[XML Security Suite]

ASN.1/XML Translator


What's this?

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.

Installation guide

Sample applications

Try the following sample applications to see how this library works.


Concept, description, and examples to get started using this library.

API documentation

Reference to packages, classes, and members. This is generated by javadoc.

Translation rule

Specification of the translation rule from an ASN.1 abstract syntax definition to a DTD, and sample DTDs for popular ASN.1 protocols.

Related documents


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.


Moved sample programs, data, and grammars to samples/asn1/, data/asn1/, and data/asn1/grammars/, respectively
Added a missing OID, i.e.,, and its tag to LabelX509Cert
Added UnlabelX509Cert as a sample application
Fixed an ASN.1 syntax parsing bug in ASN1Syntax2DTD
Added LabelX509Cert as a sample application
Revised documents for Xalan-Java 1.2.D02
Supported Xerces Java Parser 1.1
Added XMLEditor as a sample application

Takeshi Imamura
Hiroshi Maruyama