Java Abstract Syntax Notation One (ASN.1) API |
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.
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: