Pricing      Download   
MENU 
 Home Products About Support Contact
 

Overview | Classes | Examples | Standards

Looking for a standalone ASN.1 Toolkit ? The Monfox Java ASN.1 API is now available as a standalone product:

See: DynamicOSI® Java ASN.1 SDK


The Java ASN.1 API includes the complete set of Abstract Syntax Notation One (ASN.1) value API classes used by the DynamicTMN® product suite. These API classes provide the set of generic, high-level interfaces used in constructing, accessing and manipulating ASN.1 values for use with other DynamicTMN® APIs.

 

ASN.1 API Overview

The Java ASN.1 API has a developer-friendly interface with a variety of methods for populating and accessing ASN.1 values. The ASN.1 API may be used standalone to perform ASN.1/BER encoding and decoding, with the CMIS API to populate and evaluate CMIS message parameters, or with the GDMO Manager API and GDMO Agent API to populate and access GDMO attribute, action and notification information. The ASN.1 APIs features include:

  • high-level ASN.1 value classes for all ASN.1 builtin types
  • metadata driven ASN.1 Basic Encoding Rules (BER) coder/decoder
  • metadata based named OID resolution with reverse name lookup
  • convenience classes and methods for ease of use
  • ASN.1 Value Notation (AVN) string parsing/generation
  • choice of string based AVN or convenience APIs
  • configurable output formats
  • smart BER buffer caching for optimized performance
 

ASN.1 API Classes


The ASN.1 API classes correspond to the different ASN.1 types defined in the ASN.1 syntax standard (X.208/X.680). For example, some of the ASN.1 value classes are:

   AbstractData      : Common base superclass
   BOOLEAN           : ASN.1 BOOLEAN values
   NULL              : ASN.1 NULL values
   REAL              : ASN.1 REAL values
   ENUMERATED        : ASN.1 ENUMERATED values
   BIT_STRING        : ASN.1 BIT STRING values
   INTEGER           : ASN.1 INTEGER values
   AbstractString    : ASN.1 String/OCTET STRING values
   OBJECT_IDENTIFIER : ASN.1 OBJECT IDENTIFIER values
   CHOICE            : ASN.1 CHOICE values
   SEQUENCE_OF       : ASN.1 SEQUENCE OF values
   SET_OF            : ASN.1 SET OF values
   StructuredData    : ASN.1 SET and SEQUENCE values
   AnyData           : ASN.1 ANY DEFINED BY values
   

The ASN.1 API uses the GDMO and ASN.1 Metadata API to validate and generate ASN.1 values and value notation strings.


 

ASN.1 API Examples

See the following example which shows the use of the ASN.1 API to construct and access the value for a simple ASN.1 SEQUENCE:


   // -- Example ASN.1 Type 
   // 
   //    Record ::= SEQUENCE
   //               {
   //                   name    GraphicString,                
   //                   age     INTEGER,
   //                   married BOOLEAN
   //               }


   // -- Create a value using the StructuredData class
   
   StructuredData record1 = new StructuredData("Record");
   record1.set("name", "Barney Gumble");
   record1.set("age", 43);
   record1.set("married", false);

   // -- Create a value using ASN.1 value notation --


   String avn =  "{ name 'Montgomery Burns', "
               + "  age   89,"
               + "  married FALSE }";

   AbstractData record2 = AbstractData.Create("Record", avn);

                                  
   // -- Extract fields from the value

   String  name    = record2.getAsString("name");
   int     age     = record2.getAsInt("age");
   boolean married = record2.getAsBool("married");

   

For a complete set of API examples, API Javadoc, developer guides, agent simulators and much more, please click here to download the DynamicTMN® CMIP Suite evaluation package.


Download DynamicTMN® CMIP Suite Evaluation 


 

Supported Standards

The Java ASN.1 API supports the following standards:

  • Java 2: Java 2 SDK version 1.2 or greater
  • TMF 040: Based on the TMForum ASN.1 API Standard
  • ITU-T X.208/X.680: Abstract Syntax Notation One (ASN.1)
  • ITU-T X.209/X.690: ASN.1 Basic Encoding Rules (BER)
 

Related Components

The Java ASN1 API uses the following DynamicTMN® API:

Is used by the following DynamicTMN® Java APIs:

As well as is used by by the following DynamicTMN® products: