Commit 774fbdc8 authored by Lev Walkin's avatar Lev Walkin

standards interoperability table

parent 5efafc56
.\" Automatically generated by Pandoc 1.16.0.2 .\"t
.\" Automatically generated by Pandoc 1.19.2.1
.\" .\"
.ad l .ad l
.TH "asn1c" "1" "2016\-01\-23" "ASN.1 Compiler" "Version 0.9.28" .TH "asn1c" "1" "2017\-09\-01" "ASN.1 Compiler" "Version 0.9.29"
.nh \" Turn off hyphenation by default. .nh \" Turn off hyphenation by default.
.SH NAME .SH NAME
.PP .PP
...@@ -30,8 +31,8 @@ asn1c [\f[B]\-E\f[] [\f[B]\-F\f[]] | \f[B]\-P\f[] | \f[B]\-R\f[]] ...@@ -30,8 +31,8 @@ asn1c [\f[B]\-E\f[] [\f[B]\-F\f[]] | \f[B]\-P\f[] | \f[B]\-R\f[]]
.SH DESCRIPTION .SH DESCRIPTION
.PP .PP
asn1c compiles ASN.1 specifications into a set of target language asn1c compiles ASN.1 specifications into a set of target language
(C/C++) encoders and decoders for BER, DER, PER, XER and other encoding (C/C++) encoders and decoders for BER, DER, PER, XER, OER and other
rules. encoding rules.
.SH OPTIONS .SH OPTIONS
.SS Stage Selection Options .SS Stage Selection Options
.TP .TP
...@@ -163,6 +164,11 @@ native machine\[aq]s data types (long, double). ...@@ -163,6 +164,11 @@ native machine\[aq]s data types (long, double).
.RE .RE
.SS Codecs Generation Options .SS Codecs Generation Options
.TP .TP
.B \-gen\-OER
Generate the Octet Encoding Rules (OER) support code.
.RS
.RE
.TP
.B \-gen\-PER .B \-gen\-PER
Generate the Packed Encoding Rules (PER) support code. Generate the Packed Encoding Rules (PER) support code.
.RS .RS
...@@ -192,6 +198,128 @@ compiler to explain its internal understanding of subtype constraints. ...@@ -192,6 +198,128 @@ compiler to explain its internal understanding of subtype constraints.
Generate "\f[C]\-\-\ #line\f[]" comments in \f[B]\-E\f[] output. Generate "\f[C]\-\-\ #line\f[]" comments in \f[B]\-E\f[] output.
.RS .RS
.RE .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 .SH SEE ALSO
.PP .PP
\f[C]unber\f[](1), \f[C]enber\f[](1). \f[C]unber\f[](1), \f[C]enber\f[](1).
......
% asn1c(1) ASN.1 Compiler % asn1c(1) ASN.1 Compiler
% Lev Walkin <vlm@lionet.info> % Lev Walkin <vlm@lionet.info>
% 2016-01-23 % 2017-09-01
# NAME # NAME
...@@ -18,7 +18,7 @@ asn1c [**-E** [**-F**] | **-P** | **-R**] \ ...@@ -18,7 +18,7 @@ asn1c [**-E** [**-F**] | **-P** | **-R**] \
# DESCRIPTION # DESCRIPTION
asn1c compiles ASN.1 specifications into a set of asn1c compiles ASN.1 specifications into a set of
target language (C/C++) encoders and decoders for BER, DER, PER, XER target language (C/C++) encoders and decoders for BER, DER, PER, XER, OER
and other encoding rules. and other encoding rules.
# OPTIONS # OPTIONS
...@@ -111,6 +111,9 @@ and other encoding rules. ...@@ -111,6 +111,9 @@ and other encoding rules.
## Codecs Generation Options ## Codecs Generation Options
-gen-OER
: Generate the Octet Encoding Rules (OER) support code.
-gen-PER -gen-PER
: Generate the Packed Encoding Rules (PER) support code. : Generate the Packed Encoding Rules (PER) support code.
...@@ -134,6 +137,49 @@ and other encoding rules. ...@@ -134,6 +137,49 @@ and other encoding rules.
-print-lines -print-lines
: Generate "`-- #line`" comments in **-E** output. : Generate "`-- #line`" comments in **-E** output.
# TRANSFER SYNTAXES
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).
The interoperability table below specifies which API functions can be used
to exchange data in a compatible manner. If you need to _produce_ data
conforming to the standard specified in the column 1,
use the API function in the column 2.
If you need to _process_ data conforming to the standard(s) specified in the
column 3, use the API function specified in column 4.
See the `asn1c-usage.pdf` for details.
-------------------------------------------------------------
Encoding API function Understood by API function
-------------- ------------------ ------------- -------------
BER der_encode() BER ber_decode()
DER der_encode() DER, BER ber_decode()
CER _not supported_ CER, BER ber_decode()
BASIC-OER oer_encode() *-OER oer_decode()
CANONICAL-OER oer_encode() *-OER oer_decode()
BASIC-UPER uper_encode() *-UPER uper_decode()
CANONICAL-UPER uper_encode() *-UPER uper_decode()
*-APER _not supported_ *-APER _not supported_
BASIC-XER xer_encode(...) *-XER, xer_decode()
CANONICAL-XER xer_encode *-XER, xer_decode()
(XER_F_CANONICAL)
-------------------------------------------------------------
*) Asterisk means both BASIC and CANONICAL variants.
# SEE ALSO # SEE ALSO
`unber`(1), `enber`(1). `unber`(1), `enber`(1).
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment