ASN.1 Tools for Java — Details

ASN.1/Java Compiler

You can have it all - speed, flexibility, and a rich feature set. The OSS ASN.1/Java Compiler accepts one or more input files, each containing one or more ASN.1 modules. The OSS ASN.1/Java compiler is a compiled (not interpreted) executable, therefore capable of extremely fast ASN.1 compilation. The compiler verifies the ASN.1 specification and generates: informative diagnostic messages, Java classes for inclusion in your application, optional XSL stylesheets and/or DTD for XML encodings, and an optional ASN.1 output listing. The OSS ASN.1/Java compiler and runtime fully support ASN.1:1990, including all macros, as well as ASN.1:2002, ASN.1:2008 and ASN.1:2015, including full support for contents constraints.

No matter what your application needs, a little or a lot, OSS provides it. The OSS compiler's features include generation of:

  • a simple directory structure.
  • Java instantiations of all ASN.1 values.
  • informative diagnostic messages for any invalid ASN.1. The OSS compiler makes every attempt to recover from errors. Giving you messages for each error encountered means fewer recompilations to correct an invalid spec.
  • only the Java classes (based on the ASN.1 types) that you select - modules, PDUs, metadata (i.e. tags, names, constraints). Your application is leaner, thus your development time is reduced.
  • all of what you do need. Our ASN.1/Java compiler is comprehensive - not a tag or constraint is left behind.

Does your application need to do automatic decoding? Handle multiple ASN.1 versions? Work in a multi-threading environment? Does your spec contain values, extensible types and information object sets? Then you need the the full featured OSS compiler. It generates valid Java code no matter what spec you use (H323, PKCS, RANAP, NBAP are just a few of the specs that our customers use that our compiler handles with no problem).

Special features enable the OSS compiler to:

  • handle even the most unusual ASN.1 specifications that strain the JVM compiler limits.
  • work with third party IDEs such as emacs and Microsoft Visual Studio.
  • automate the sample application process enabling you to try out our tools quickly with a minimum of effort.
  • generate a batch or script file to facilitate Java compilation.

Encoder/Decoder

The encoder/decoder consists of a class called Coder, of which the essential methods are encode() and decode().

TLV Print Utility

This utility included with the ASN.1 Tools for Java takes a BER or DER encoding in ASCII or binary format from an input file and writes it to an output file in one of three different type-length-value (TLV) formats.

Encode() takes data placed by your application program in the compiler-generated Java classes, and converts it to a string of bytes encoded according to BER, PER (aligned or unaligned), OER, COER, DER, CER, XER, CXER, or E-XER. The method decode() takes a string of bytes that have been encoded according to BER, PER, OER, COER, DER, CER, XER, CXER, or E-XER and performs the inverse operation of the encoder, resulting in a Java object that you can easily manipulate.

More Functionality
  • powerful, flexible diagnostic and recovery capabilities
  • methods for copying, and comparing decoded messages
  • convenient mechanism for printing values of any type: System.out.println(value)
  • custom printing capabilities - print it your way!
  • dynamically extend extensible information object sets
  • convert to/from binary/hex format
  • debug BER encodings (OSSTLV)
  • debug PER encodings (ASN1-Step)
  • JIA API - a way to access data values without knowing the type of the data
Java Interpretive ASN.1 API

The Java Interpretive ASN.1 API (IAAPI) is a collection of Java classes included with the ASN.1 Tools for Java. The Java IAAPI provides access to the ASN.1 type, subtype and value notation via an easy to use interface. This allows applications to create and encode data using ASN.1 without any foreknowledge of the structure of the data, such as the number of components and their types. It also allows messages (PDUs) to be decoded, and the components of the messages to be accessed, based on their data types.

Standards Conformance

This powerful software conforms fully to the ASN.1 standards listed below:

  • ITU-T X.696 (ISO/IEC 8825-7) - Octet Encoding Rules (OER) Base Protocol

  • ITU-T X.680 (ISO/IEC 8824-1) - Abstract Syntax Notation One (ASN.1): Specification of Basic Notation

  • ITU-T X.681 (ISO/IEC 8824-2) - Abstract Syntax Notation One (ASN.1): Information Object Specification

  • ITU-T X.682 (ISO/IEC 8824-3) - Abstract Syntax Notation One (ASN.1): Constraint Specification

  • ITU-T X.683 (ISO/IEC 8824-4) - Abstract Syntax Notation One (ASN.1): Parameterization of ASN.1 Specifications

  • ITU-T X.690 (ISO/IEC 8825-1) - ASN.1 Encoding Rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)

  • ITU-T X.691 (ISO/IEC 8825-2) - ASN.1 Encoding Rules: Specification of Packed Encoding Rules (PER)

  • ITU-T X.692 (ISO/IEC 8825-3) - ASN.1 Encoding Rules: Specification of Encoding Control Notation (ECN)

  • ITU-T X.693 (ISO/IEC 8825-4) - ASN.1 Encoding Rules: Specification of XML Encoding Rules (XER). This includes the Canonical XML Encoding Rules (CXER) specification, and Extended XML Encoding Rules (E-XER).
Quick Links

Resources
icon

More information about how to create, compile and link your ASN.1 application using the ASN.1/Java Tools.


Free Trial
download

Download the ASN.1/Java Tools today!




24x7 Tech Support

contact

We are here: 24 hours a day, 7 days a week.

  • Phone: 1-888-OSS-2761 (USA and Canada)
  • Phone: 1-732-302-9669 (International)
  • Fax: 1-732-302-0023
  • Email: support@oss.com

Quickly receive answers to your support questions.