Extensible, Language Independent Method of Specification for Aribtrary ASN.1 Values
Original Publication Date: 1994-Apr-01
Included in the Prior Art Database: 2005-Mar-27
Allen, WC: AUTHOR [+3]
A method is disclosed for the representation of extensible information in a language-independent method capable of being transmitted between processes on the same or different systems.
Extensible, Language Independent Method of Specification
A method is
disclosed for the representation of extensible
information in a language-independent method capable of being
transmitted between processes on the same or different systems.
Syntax Notation 1 (ISO/IEC 8824) allows the definition
of system independent data types of arbitrary complexity. Values of
these data types must be defined, transmitted between processes and
analyzed by the processes. There are several methods used to
represent and transmit the values of ASN.1 types in current
implementations. These include:
1. Basic Encoding
Rules (BER) -- a self-delimiting binary
representation for data that is explicitly designed to be machine
independent. Parsing it can be extremely difficult. For
example, there are three methods of encoding the lengths of
elements, 7-bit numeric representations within OBJECT IDENTIFIERs
(the high order bit is used as a communication bit), and several
different methods for encoding real numbers.
2. A large number
of separate data structures, one for each element
of the ASN.1. These structures are defined in a specific
programming language, and they must be processed one element at a
3. A large buffer
containing a variable number of concatenated data
structures, each of which contains pointers to other structures
within the buffers (represented as offsets from the start of the
buffer). This is also programming language dependent. It
requires many fewer interactions than the previous method but it
is (at best) not very intuitive.
better if these values could be defined in such a way
that they could be defined in such a way that they could be processed
by applications written in any language, easily parsed with basic
utilities and easily understood by the programmers that will need to
is embodied by an API that represents these values
in a human readable format that can be understood by any programming
language. A value is formatted into a character string following a
few simple rules. Translating the value into a character string
eliminates the need for pointers, data structures, specific
programming languages and even concerns for byte order of integers
and word sizes.
rules for construction of values are very simple.
Some special syntaxes have been defined for common data types. In
all cases in which a special format is supported, the normal rules
may also be followed.
Rules for building values:
1. Each value
passed to the API must include three basic pieces of
a. Module name
b. Type name
c. A string containing the value
2. Within the value
string, each primitive element of the ASN.1 data
structure is input as a <label> <va...