.\"t
.\" Automatically generated by Pandoc 1.19.2.1
.\"
.ad l
.TH "asn1c" "1" "2017\-09\-01" "ASN.1 Compiler" "Version 0.9.29"
.nh \" Turn off hyphenation by default.
.SH NAME
.PP
asn1c \-\- the ASN.1 Compiler
.SH SYNOPSIS
.PP
asn1c [\f[B]\-E\f[] [\f[B]\-F\f[]] | \f[B]\-P\f[] | \f[B]\-R\f[]]
.PD 0
.P
.PD
[\f[B]\-S\f[]\f[I]dir\f[]] [\f[B]\-X\f[]]
.PD 0
.P
.PD
[\f[B]\-W\f[]\f[I]debug\-\f[]...] [\f[B]\-f\f[]\f[I]option\f[]]
[\f[B]\-gen\-\f[]\f[I]option\f[]]
[\f[B]\-pdu\f[]={\f[B]all\f[]|\f[B]auto\f[]|\f[I]Type\f[]}]
.PD 0
.P
.PD
[\f[B]\-print\-\f[]\f[I]option\f[]]
.PD 0
.P
.PD
\f[I]input\-filenames\f[]...
.SH DESCRIPTION
.PP
asn1c compiles ASN.1 specifications into a set of target language
(C/C++) encoders and decoders for BER, DER, PER, XER, OER and other
encoding rules.
.SH OPTIONS
.SS Stage Selection Options
.TP
.B \-E
Run the parsing stage only.
Print the reconstructed ASN.1 text.
.RS
.RE
.TP
.B \-F
Used together with \f[B]\-E\f[], instructs the compiler to stop after
the ASN.1 syntax tree fixing stage and dump the reconstructed ASN.1
specification to the standard output.
.RS
.RE
.TP
.B \-P
Dump the compiled output to the standard output instead of creating the
target language files on disk.
.RS
.RE
.TP
.B \-R
Restrict the compiler to generate only the ASN.1 tables, omitting the
usual support code.
.RS
.RE
.TP
.B \-S \f[I]directory\f[]
Use the specified directory with ASN.1 skeleton files.
.RS
.RE
.TP
.B \-X
Generate an XML DTD schema for the specified ASN.1 files.
.RS
.RE
.SS Warning Options
.TP
.B \-Werror
Treat warnings as errors; abort if any warning is produced.
.RS
.RE
.TP
.B \-Wdebug\-lexer
Enable lexer debugging during the ASN.1 parsing stage.
.RS
.RE
.TP
.B \-Wdebug\-fixer
Enable ASN.1 syntax tree fixer debugging during the fixing stage.
.RS
.RE
.TP
.B \-Wdebug\-compiler
Enable debugging during the actual compile time.
.RS
.RE
.SS Language Options
.TP
.B \-fbless\-SIZE
Allow \f[C]SIZE()\f[] constraint for \f[C]INTEGER\f[],
\f[C]ENUMERATED\f[], and other types for which this constraint is
normally prohibited by the standard.
This is a violation of ASN.1 standard, and the compiler may fail to
produce a meaningful code.
.RS
.RE
.TP
.B \-fcompound\-names
Using this option prevents name collisions in the target source code by
using complex names for target language structures.
(Name collisions may occur if the ASN.1 module reuses the same
identifiers in multiple contexts).
.RS
.RE
.TP
.B \-findirect\-choice
When generating code for a \f[C]CHOICE\f[] type, compile the
\f[C]CHOICE\f[] members as indirect pointers instead of declaring them
inline.
Consider using this option together with \f[B]\-fno\-include\-deps\f[]
to prevent circular references.
.RS
.RE
.TP
.B \-fincludes\-quoted
Refer to header files in \f[C]#include\f[]s using
\f[B]"\f[]double\f[B]"\f[] instead of \f[B]<\f[]angle\f[B]>\f[] quotes.
.RS
.RE
.TP
.B \-fknown\-extern\-type=\f[I]name\f[]
Pretend the specified type is known.
The compiler will assume the target language source files for the given
type have been provided manually.
.RS
.RE
.TP
.B \-fline\-refs
Include ASN.1 module\[aq]s line numbers in generated code comments.
.RS
.RE
.TP
.B \-fno\-constraints
Do not generate ASN.1 subtype constraint checking code.
This may make a shorter executable.
.RS
.RE
.TP
.B \-fno\-include\-deps
Do not generate courtesy #include lines for non\-critical type
dependencies.
Helps prevent namespace collisions.
.RS
.RE
.TP
.B \-funnamed\-unions
Enable unnamed unions in the definitions of target language\[aq]s
structures.
.RS
.RE
.TP
.B \-fwide\-types
Use the unbounded size data types (\f[C]INTEGER_t\f[],
\f[C]ENUMERATED_t\f[], \f[C]REAL_t\f[]) by default, instead of using the
native machine\[aq]s data types (long, double).
.RS
.RE
.SS Codecs Generation Options
.TP
.B \-gen\-OER
Generate the Octet Encoding Rules (OER) support code.
.RS
.RE
.TP
.B \-gen\-PER
Generate the Packed Encoding Rules (PER) support code.
.RS
.RE
.TP
.B \-pdu={all|auto|\f[I]Type\f[]}
Create a PDU table for specified types, or discover Protocol Data Units
automatically.
In case of \f[B]\-pdu=all\f[], all ASN.1 types defined in all modules
will form a PDU table.
In case of \f[B]\-pdu=auto\f[], all types not referenced by any other
type will form a PDU table.
If \f[I]Type\f[] is an ASN.1 type identifier, the identifier is added to
the generated PDU table.
The last form may be specified multiple times to add any number of PDUs.
.RS
.RE
.SS Output Options
.TP
.B \-print\-constraints
When \f[B]\-EF\f[] options are also specified, this option forces the
compiler to explain its internal understanding of subtype constraints.
.RS
.RE
.TP
.B \-print\-lines
Generate "\f[C]\-\-\ #line\f[]" comments in \f[B]\-E\f[] output.
.RS
.RE
.SH TRANSFER SYNTAXES
.PP
The ASN.1 family of standards define a number of ways to encode data,
including byte\-oriented (e.g., BER), bit\-oriented (e.g., PER), and
textual (e.g., XER).
Some encoding variants (e.g., DER) are just stricter variants of the
more general encodings (e.g., BER).
.PP
The interoperability table below specifies which API functions can be
used to exchange data in a compatible manner.
If you need to \f[I]produce\f[] data conforming to the standard
specified in the column 1, use the API function in the column 2.
If you need to \f[I]process\f[] data conforming to the standard(s)
specified in the column 3, use the API function specified in column 4.
See the \f[C]asn1c\-usage.pdf\f[] for details.
.PP
.TS
tab(@);
lw(14.6n) lw(18.5n) lw(13.6n) lw(13.6n).
T{
Encoding
T}@T{
API function
T}@T{
Understood by
T}@T{
API function
T}
_
T{
BER
T}@T{
der_encode()
T}@T{
BER
T}@T{
ber_decode()
T}
T{
DER
T}@T{
der_encode()
T}@T{
DER, BER
T}@T{
ber_decode()
T}
T{
CER
T}@T{
\f[I]not supported\f[]
T}@T{
CER, BER
T}@T{
ber_decode()
T}
T{
BASIC\-OER
T}@T{
oer_encode()
T}@T{
*\-OER
T}@T{
oer_decode()
T}
T{
CANONICAL\-OER
T}@T{
oer_encode()
T}@T{
*\-OER
T}@T{
oer_decode()
T}
T{
BASIC\-UPER
T}@T{
uper_encode()
T}@T{
*\-UPER
T}@T{
uper_decode()
T}
T{
CANONICAL\-UPER
T}@T{
uper_encode()
T}@T{
*\-UPER
T}@T{
uper_decode()
T}
T{
*\-APER
T}@T{
\f[I]not supported\f[]
T}@T{
*\-APER
T}@T{
\f[I]not supported\f[]
T}
T{
BASIC\-XER
T}@T{
xer_encode(...)
T}@T{
*\-XER
T}@T{
xer_decode()
T}
T{
CANONICAL\-XER
T}@T{
xer_encode (XER_F_CANONICAL)
T}@T{
*\-XER
T}@T{
xer_decode()
T}
.TE
.PP
*) Asterisk means both BASIC and CANONICAL variants.
.SH SEE ALSO
.PP
\f[C]unber\f[](1), \f[C]enber\f[](1).
.SH AUTHORS
Lev Walkin <vlm@lionet.info>.
