ASN.1 Tools for C++ — Details

ASN.1/C++ Compiler

The OSS ASN.1/C++ Compiler is a stand-alone program that takes as input one or more files, with each input file containing one or more ASN.1 modules. The compiler verifies that the specification is valid, and generates:

  • diagnostic messages and optionally an output ASN.1 listing
  • C++ classes to be included into your application program
  • a control table for use by the encoder/decoder.

Cross compiling is supported by the ASN.1 Tools for C++. Cross compiling enables a developer 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. Find out more about cross-compilation.


The encoder/decoder provides the application programmer with the encode() and decode() methods.

TLV Print 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 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, PER, CPER, OER, COER, DER, CER, XER, CXER, E-XER, or JSON. The other method, decode(), takes a string of bytes that have been encoded according to BER, PER, CPER, OER, COER, DER, CER, XER, CXER, E-XER, or JSON 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.

Standards Conformance

This powerful software conforms fully to the ASN.1 standards listed below:

  • ITU-T X.697(ISO/IEC 8825-xx) - ASN.1 Encoding Rules: Specification of Javascript Object Notation (JSON) Encoding Rules (JSON/ER)
  • ITU-T X.696 (ISO/IEC 8825-7) - Octet Encoding Rules (OER) Base Protocol
  • ITU-T X.680 (ISO/IEC 8824-1) - Abstract Syntax Notation One (ASN.1): Specification of Basic Notation
  • ITU-T X.681 (ISO/IEC 8824-2) - Abstract Syntax Notation One (ASN.1): Information Object Specification
  • ITU-T X.682 (ISO/IEC 8824-3) - Abstract Syntax Notation One (ASN.1): Constraint Specification
  • ITU-T X.683 (ISO/IEC 8824-4) - Abstract Syntax Notation One (ASN.1): Parameterization of ASN.1 Specifications
  • ITU-T X.690 (ISO/IEC 8825-1) - ASN.1 Encoding Rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)
  • ITU-T X.691 (ISO/IEC 8825-2) - ASN.1 Encoding Rules: Specification of Packed Encoding Rules (PER)
  • ITU-T X.692 (ISO/IEC 8825-3) - ASN.1 Encoding Rules: Specification of Encoding Control Notation (ECN)
  • ITU-T X.693 (ISO/IEC 8825-4) - ASN.1 Encoding Rules: Specification of XML Encoding Rules (XER). This includes the Canonical XML Encoding Rules (CXER) specification, and Extended XML Encoding Rules (E-XER).
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.