aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2017-09-06 10:53:39 -0700
committerLev Walkin <vlm@lionet.info>2017-09-06 10:53:39 -0700
commit61b660f541c4edda03f6db79cde509011bbab82c (patch)
treed862e9b0961f2eee1f176244bcb1c31c327e3fef /README.md
parent774fbdc832bac6eb34db23d9893f6abdba016c64 (diff)
standards interoperability table
Diffstat (limited to 'README.md')
-rw-r--r--README.md33
1 files changed, 33 insertions, 0 deletions
diff --git a/README.md b/README.md
index 22fd06e3..7be6814a 100644
--- a/README.md
+++ b/README.md
@@ -14,6 +14,39 @@ The ASN.1 standard is large and complex and no open source compiler supports
it in its entirety. The asn1c is arguably the most evolved open source
ASN.1 compiler.
+# ASN.1 Transfer Syntaxes
+<details>
+<summary>ASN.1 encodings interoperability table</summary>
+
+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_F_BASIC) | *-XER | xer_decode()
+CANONICAL-XER | xer_encode(XER_F_CANONICAL)| *-XER | xer_decode()
+
+*) Asterisk means both BASIC and CANONICAL variants.
+</details>
+
# Build and Install
If you haven't installed the asn1c yet, read the [INSTALL.md](INSTALL.md) file