010-68421378
sales@cogitosoft.com
Categories

OSS ASN.1/JAVA

ASN.1 Tools for Java

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().

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, DER, CER, XER, CXER, or E-XER. The method decode() takes a string of bytes that have been encoded according to BER, PER, OER, 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.

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.

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).

Feature ASN.1/
C
ASN.1/
C++
ASN.1/
C#
ASN.1/
Java

Support for OER

 

Speed. Don't settle for snail-paced ASN.1 tools.
Both our compiler and runtime are fast. We invite you to evaluate our tools and see for yourself.

Fastest Faster Fast Fast

Support for encoder/decoder with debug and tracing capabilities (SOED).

 

Support for interpretive encoder/decoder designed for a small memory footprint (LED).
OSS' tools can meet your code size requirements no matter which protocol specified with ASN.1 that you use.

 

Support for compiler-generated encoder/decoder designed for speed (TOED).

 

Encoding to file or socket in a few lines of code
OSS offers socket support for all encoding rules for any value of any type. Improve the performance of your application. No need to store values in temporary memory. You only need to write one or two lines of code.

Quality Tracing and Precise Error Messages
OSS ASN.1 tools provide a wealth of diagnostics, giving you the information you need, in the format you need, on the platform you want. Don't settle for ASN.1 tools that are miserly with debugging information, thus slowing you down.

Extensibility 
No need to worry about backward compatibility between versions of your ASN.1 - your own or the programs with which you communicate.

Relay Safe Mode 
Allows decoding a message with extensions using a different version of the ASN.1 spec and then preserve those extensions when re-encoding.

 

Parameterization 
Get full support including options to determine which types are generated.

 

Compare and Copy Value
Avoid having to write code to copy or compare and save on implementation time. You can compare any 2 values, or make a copy of any value, regardless of the value's complexity, all with one simple function call.

Constraint Checking
Check all, some, or no constraints. That includes pattern constraints and contents constraints. Invalid values are caught at compile time and runtime, not silently ignored.

Large Values for All Encoding Rules
If you have values that are too large to fit in memory, you'll need this feature. OSS supports large values for all encoding rules, no matter what nesting depth the value has within the PDU.

 

Change runtime options dynamically with ease
Flexibility at runtime allows you to change options on the fly. For example, encoding rules can be changed so that you can decode with XER and then re-encode with PER.

Access to ASN.1 without foreknowledge of the data
Via the IAAPI you can generically access ASN.1 types, subtypes, and values without having the name or the structure of the data.

 

Value Notation Format I/O
Print values in value notation format, and read values with the OSS runtime function that parses value notation.

Nesting limits
For recursively defined constructed types and strings, these limits keep your program secure from undesirable invalid encodings. For ASN.1/C, you can even override the default limits.

 

Support of J2ME CLDC 1.1 (Connected Limited Device Configuration)
The CLDC is a specification of a framework for Java ME applications targeted at devices with very limited resources, such as pagers and mobile phones. The OSS ASN.1 Compiler for Java can now generate Java classes compatible with the J2ME CLDC 1.1 platform. New CLDC 1.1 compatible runtime jar files have been introduced to encode/decode ASN.1 binary and XML messages.

     
 
Quick Navigation;

© Copyright 2000-2017  COGITO SOFTWARE CO.,LTD. All rights reserved.