<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html xmlns:erl="http://erlang.org" xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="../../../../doc/otp_doc.css" type="text/css"> <title>Erlang -- Introduction</title> </head> <body> <div id="container"> <script id="js" type="text/javascript" language="JavaScript" src="../../../../doc/js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../../../../doc/js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript"> <!-- function getWinHeight() { var myHeight = 0; if( typeof( window.innerHeight ) == 'number' ) { //Non-IE myHeight = window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myHeight = document.body.clientHeight; } return myHeight; } function setscrollpos() { var objf=document.getElementById('loadscrollpos'); document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2; } function addEvent(obj, evType, fn){ if (obj.addEventListener){ obj.addEventListener(evType, fn, true); return true; } else if (obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } else { return false; } } addEvent(window, 'load', setscrollpos); //--></script><div id="leftnav"><div class="innertube"> <div class="erlang-logo-wrapper"><a href="../../../../doc/index.html"><img alt="Erlang Logo" src="../../../../doc/erlang-logo.png" class="erlang-logo"></a></div> <p class="section-title">ASN.1</p> <p class="section-subtitle">User's Guide</p> <p class="section-version">Version 5.0.8</p> <ul class="panel-sections"> <li><a href="users_guide.html">User's Guide</a></li> <li><a href="index.html">Reference Manual</a></li> <li><a href="release_notes.html">Release Notes</a></li> <li><a href="../pdf/asn1-5.0.8.pdf">PDF</a></li> <li><a href="../../../../doc/index.html">Top</a></li> </ul> <ul class="expand-collapse-items"> <li><a href="javascript:openAllFlips()">Expand All</a></li> <li><a href="javascript:closeAllFlips()">Contract All</a></li> </ul> <h3>Chapters</h3> <ul class="flipMenu" imagepath="../../../../doc/js/flipmenu"> <li id="loadscrollpos" title="Introduction" expanded="true">Introduction<ul> <li><a href="asn1_introduction.html"> Top of chapter </a></li> <li title="Scope"><a href="asn1_introduction.html#scope">Scope</a></li> <li title="Prerequisites"><a href="asn1_introduction.html#prerequisites">Prerequisites</a></li> </ul> </li> <li id="no" title="ASN.1" expanded="false">ASN.1<ul> <li><a href="asn1_overview.html"> Top of chapter </a></li> <li title="Introduction"><a href="asn1_overview.html#introduction">Introduction</a></li> </ul> </li> <li id="no" title="Getting Started" expanded="false">Getting Started<ul> <li><a href="asn1_getting_started.html"> Top of chapter </a></li> <li title="Example"><a href="asn1_getting_started.html#example">Example</a></li> <li title="ASN.1 Application User Interface"><a href="asn1_getting_started.html#asn.1-application-user-interface">ASN.1 Application User Interface</a></li> <li title="Multi-File Compilation"><a href="asn1_getting_started.html#multi-file-compilation">Multi-File Compilation</a></li> <li title="Remark about Tags"><a href="asn1_getting_started.html#remark-about-tags">Remark about Tags</a></li> <li title="ASN.1 Types"><a href="asn1_getting_started.html#asn.1-types">ASN.1 Types</a></li> <li title="Naming of Records in .hrl Files"><a href="asn1_getting_started.html#naming-of-records-in-.hrl-files">Naming of Records in .hrl Files</a></li> <li title="ASN.1 Values"><a href="asn1_getting_started.html#asn.1-values">ASN.1 Values</a></li> <li title="Macros"><a href="asn1_getting_started.html#macros">Macros</a></li> <li title="ASN.1 Information Objects (X.681)"><a href="asn1_getting_started.html#asn.1-information-objects--x.681-">ASN.1 Information Objects (X.681)</a></li> <li title="Parameterization (X.683)"><a href="asn1_getting_started.html#parameterization--x.683-">Parameterization (X.683)</a></li> </ul> </li> <li id="no" title="Specialized Decodes" expanded="false">Specialized Decodes<ul> <li><a href="asn1_spec.html"> Top of chapter </a></li> <li title="Exclusive Decode"><a href="asn1_spec.html#exclusive-decode">Exclusive Decode</a></li> <li title="Selective Decode"><a href="asn1_spec.html#selective-decode">Selective Decode</a></li> <li title="Performance"><a href="asn1_spec.html#performance">Performance</a></li> </ul> </li> </ul> </div></div> <div id="content"> <div class="innertube"> <h1>1 Introduction</h1> <p>The ASN.1 application provides the following:</p> <ul> <li>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.</li> <li>Runtime functions used by the generated code.</li> <li>Support for the following encoding rules: <ul> <li>Basic Encoding Rules (BER)</li> <li>Distinguished Encoding Rules (DER), a specialized form of BER that is used in security-conscious applications</li> <li>Packed Encoding Rules (PER), both the aligned and unaligned variant</li> </ul> </li> </ul> <h3><span onMouseOver="document.getElementById('ghlink-scope-idm281471753520568').style.visibility = 'visible';" onMouseOut="document.getElementById('ghlink-scope-idm281471753520568').style.visibility = 'hidden';"><span id="ghlink-scope-idm281471753520568" class="ghlink"><a href="https://github.com/erlang/otp/edit/maint/lib/asn1/doc/src/asn1_introduction.xml#L50" title="Found an issue with the documentation? Fix it by clicking here!"><span class="pencil"></span></a></span><a class="title_link" name="scope" href="#scope">1.1 Scope</a></span></h3> <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> <ul> <li> <p>Decimal notation (for example, <span class="code">"1.5e3</span>) for REAL values. The NR1, NR2, and NR3 formats as explained in ISO 6093 are supported.</p> </li> <li> <p>The <span class="code">RELATIVE-OID</span> type for relative object identifiers is fully supported.</p> </li> <li> <p>The subtype constraint (<span class="code">CONTAINING</span>/<span class="code">ENCODED BY</span>) 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> </li> <li> <p>The subtype constraint by regular expressions (<span class="code">PATTERN</span>) for character string types is parsed when compiling, but no further action is taken. This constraint is not a PER-visible constraint.</p> </li> <li> <p>Multiple-line comments as in C, <span class="code">/* ... */</span>, are supported.</p> </li> </ul> <h3><span onMouseOver="document.getElementById('ghlink-prerequisites-idm281471753532136').style.visibility = 'visible';" onMouseOut="document.getElementById('ghlink-prerequisites-idm281471753532136').style.visibility = 'hidden';"><span id="ghlink-prerequisites-idm281471753532136" class="ghlink"><a href="https://github.com/erlang/otp/edit/maint/lib/asn1/doc/src/asn1_introduction.xml#L85" title="Found an issue with the documentation? Fix it by clicking here!"><span class="pencil"></span></a></span><a class="title_link" name="prerequisites" href="#prerequisites">1.2 Prerequisites</a></span></h3> <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 <span class="bold_code bc-20"><a href="http://www.oss.com/asn1/dubuisson.html">http://www.oss.com/asn1/dubuisson.html</a></span>.</p> </div> <div class="footer"> <hr> <p>Copyright © 1997-2019 Ericsson AB. All Rights Reserved.</p> </div> </div> </div> <script type="text/javascript">window.__otpTopDocDir = '../../../../doc/js/';</script><script type="text/javascript" src="../../../../doc/js/highlight.js"></script> </body> </html>