<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE chapter SYSTEM "chapter.dtd">
<chapter>
<header>
<copyright>
<year>1997</year><year>2016</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
</legalnotice>
<title>Introduction</title>
<prepared></prepared>
<docno></docno>
<date>2015-03-31</date>
<rev>A</rev>
<file>asn1_introduction.xml</file>
</header>
<p>The <c>ASN.1</c> application provides the following:</p>
<list type="bulleted">
<item>An ASN.1 compiler for Erlang, which generates encode and
decode functions to be used by Erlang programs sending and
receiving ASN.1 specified data.</item>
<item>Runtime functions used by the generated code.</item>
<item>Support for the following encoding rules:
<list><item>Basic Encoding Rules (BER)</item>
<item>Distinguished Encoding Rules (DER), a specialized form of
BER that is used in security-conscious applications</item>
<item>Packed Encoding Rules (PER), both the aligned and
unaligned variant</item>
</list>
</item>
</list>
<section>
<title>Scope</title>
<p>This application covers all features of ASN.1 up to the 1997
edition of the specification. In the 2002 edition,
new features were introduced. The following features
of the 2002 edition are fully or partly supported:</p>
<list type="bulleted">
<item>
<p>Decimal notation (for example, <c>"1.5e3</c>) for REAL values.
The NR1, NR2, and NR3 formats as explained in ISO 6093 are
supported.</p>
</item>
<item>
<p>The <c>RELATIVE-OID</c> type for relative object identifiers is
fully supported.</p>
</item>
<item>
<p>The subtype constraint (<c>CONTAINING</c>/<c>ENCODED BY</c>) to
constrain the content of an octet string or a bit string is
parsed when compiling, but no further action is taken. This
constraint is not a PER-visible constraint.</p>
</item>
<item>
<p>The subtype constraint by regular expressions (<c>PATTERN</c>)
for character string types is parsed when compiling, but no
further action is taken. This constraint is not a
PER-visible constraint.</p>
</item>
<item>
<p>Multiple-line comments as in C, <c>/* ... */</c>, are
supported.</p>
</item>
</list>
</section>
<section>
<title>Prerequisites</title>
<p>It is assumed that the reader is familiar with the Erlang
programming language, concepts of OTP, and is familiar with the
ASN.1 notation. The ASN.1 notation is documented in the standard
definition X.680, which is the primary text. It can also be
helpful, but not necessary, to read the standard definitions
X.681, X.682, X.683, X.690, and X.691.</p>
<p>A good book explaining those reference texts is
Dubuisson: ASN.1 - Communication Between Heterogeneous Systems,
is free to download at
<url href="http://www.oss.com/asn1/dubuisson.html">http://www.oss.com/asn1/dubuisson.html</url>.</p>
</section>
</chapter>