standards interoperability table

This commit is contained in:
Lev Walkin 2017-09-06 10:39:24 -07:00
parent 5efafc56b4
commit 774fbdc832
2 changed files with 180 additions and 6 deletions

View File

@ -1,7 +1,8 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\"t
.\" Automatically generated by Pandoc 1.19.2.1
.\"
.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.
.SH NAME
.PP
@ -30,8 +31,8 @@ asn1c [\f[B]\-E\f[] [\f[B]\-F\f[]] | \f[B]\-P\f[] | \f[B]\-R\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 and other encoding
rules.
(C/C++) encoders and decoders for BER, DER, PER, XER, OER and other
encoding rules.
.SH OPTIONS
.SS Stage Selection Options
.TP
@ -163,6 +164,11 @@ native machine\[aq]s data types (long, double).
.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
@ -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.
.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).

View File

@ -1,6 +1,6 @@
% asn1c(1) ASN.1 Compiler
% Lev Walkin <vlm@lionet.info>
% 2016-01-23
% 2017-09-01
# NAME
@ -18,7 +18,7 @@ asn1c [**-E** [**-F**] | **-P** | **-R**] \
# DESCRIPTION
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.
# OPTIONS
@ -111,6 +111,9 @@ and other encoding rules.
## Codecs Generation Options
-gen-OER
: Generate the Octet Encoding Rules (OER) support code.
-gen-PER
: Generate the Packed Encoding Rules (PER) support code.
@ -134,6 +137,49 @@ and other encoding rules.
-print-lines
: 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
`unber`(1), `enber`(1).