ASN.1 Compiler for C++ and Encoder/Decoder

ASN.1 Compiler for C++

The ASN.1 compiler for C++ is a standalone program that takes one or more input files, where each input file contains one or more ASN.1 modules, and generates C++ source code for encoding and decoding ASN.1 messages. The compiler verifies that the ASN.1 schema is valid, and generates the following:

  • Diagnostic messages and optionally an output ASN.1 listing
  • C++ classes to be included in your application program
  • A control table for use by the space-optimized or lean encoder/decoder
ASN.1 Compiler for C++ and ASN.1 Encoder/ Decoder workflow

The ASN.1 Tools for C++ also supports cross compiling. Cross compiling enables developers to produce files that can be used on a different operating system than the one the compiler runs on. Maximize your investment with the ability to cross-compile. Learn more about cross-compilation.

Key features of the ASN.1 Compiler for C++

  • Support of the latest ASN.1 standards
  • Code checking. The ASN.1 compiler for C++ offers extensive diagnostic capabilities to minimize your development time and effort.
  • Option rich compiler. Save development time and effort with a large selection of compiler options and directives that generate code with minimal effort.
  • Processing of multiple ASN.1 files. Our compiler handles ASN.1 in its original format.

For a complete list of features, see Features shared across all OSS ASN.1 Tools.

ASN.1 Encoder/Decoder

The OSS encoders/decoders provide, among many other features, the encode() and decode() methods. The encode() method takes data placed by your application program into the object of the compiler-generated C++ class, and converts it to a string of bytes encoded according to BER, DER, CER, PER, UPER, CPER, CUPER, OER, COER, XER, CXER, E-XER, JSON, or AVN.

The decode() method takes a string of bytes that have been encoded according to BER, DER, CER, PER, UPER, CPER, CUPER, OER, COER, XER, CXER, E-XER, JSON, or AVN and performs the inverse operation, resulting in an object instance of a C++ class that you can easily manipulate. Encoder/decoder tracing control and encoding/decoding exception handling are also provided.

TLV Print Utility

This utility, included with the ASN.1 Tools for C++, takes a BER or DER encoding in ASCII or binary format from an input file and writes it to an output file in one of three different type-length-value (TLV) formats.

The space-optimized encoder/decoder (SOED) is so named because its emphasis is on minimizing use of memory, especially when the abstract syntax is large or complex. Both the encoder and decoder possess a simple yet flexible memory management interface as well as a wealth of tracing, error trapping, diagnostic and recovery capabilities.

The time-optimized encoder/decoder (TOED) has a program call interface identical to the space-optimized encoder/decoder's and performs the same function (except that it does not possess any tracing capability), but its emphasis is on minimizing CPU utilization.

The OSS runtime libraries have been ported to 500+ platforms, including many embedded platforms.

Key features of the ASN.1 Encoder/Decoder

  • Full support of BER, DER, CER, PER, UPER, CPER, CUPER, OER, COER, XER, CXER, E-XER, and JSON encoding rules
  • Reduce productivity bottlenecks with automatic encoding and decoding.
  • Make your application development process easier using methods that support PDU copying, comparing, printing, and more.

See Runtime Choices to find the right encoder/decoder that suits your specific needs.

Take the next step

  1. Download a 30 Day Free Trial of our ASN.1/C++ Tools.
  2. Get familiar with the ASN.1 compiler for C++ and the encoders/decoders by exploring the Getting Started topics.
  3. See a simple sample application.
  4. If you have questions regarding how to use the ASN.1/C++ Tools, check out the Knowledge Center section or visit the Contact Info section.

Standards Conformance

Our ASN.1 compiler for C++ and ASN.1 encoders/decoders are fully compliant with all ASN.1 standards. We support: 2021, 2015, 2008, 2002, 1997, 1994, and 1990. For a complete list, see the Standards Conformance page.

Quick Links


More information about how to create, compile and link your ASN.1 application using the ASN.1/C++ Tools.

Free Trial

Download the ASN.1/C++ Tools today!

24x7 Tech Support


We are here: 24 hours a day, 7 days a week.

  • Phone: 1-888-OSS-2761 (USA and Canada)
  • Phone: 1-732-302-9669 (International)
  • Fax: 1-732-302-0023
  • Email:

Quickly receive answers to your support questions.