The OSS ASN.1 Tools for C++ is a development tool for building true C++ applications using ASN.1. It supports the full ASN.1 syntax as described by the ASN.1:1990 through ASN.1:2021 standards and the following encoding rules:
The OSS ASN.1 Tools completely shields the user from the intricacies of these encoding rules.
You can tailor the OSS ASN.1 Tools' output to suit your needs using command-line options, compiler directives, encoder/decoder flags, and other customization features.
The OSS ASN.1 Tools for C++ includes the following components:
The OSS ASN.1/C++ Compiler takes ASN.1 specifications as input and generates C++ classes and control tables for encoding and decoding. The compiler validates the specification, and can generate
The OSS ASN.1/C++ Runtime API includes runtime libraries that perform ASN.1 encoding and decoding functions, as well as auxiliary operations, on application messages. OSS offers these runtime libraries in three versions to satisfy different requirements for code size, encoding/decoding speed, and diagnostic capabilities:
The Space-Optimized Encoder/Decoder (SOED) is table-driven and, as its name implies, minimizes the use of memory, which is especially useful when the schema is large or complex. The SOED is a popular choice for use during development. Both the encoder and decoder have a simple, yet flexible, memory management interface, along with a wealth of trace, error trapping, diagnostic, and recovery features.
The Time-Optimized Encoder/Decoder (TOED) is a popular choice for deployment because of its emphasis on minimizing CPU utilization. OSS purposely minimized the trace feature and used a code-driven, rather than table-driven, design to achieve lightning speed.
The Lean Encoder/Decoder (LED) (packaged separately) is a table-driven encoder/decoder. Similar to the TOED, it is optimized for speed and, similar to the SOED, it uses a minimum amount of memory. The LED is best suited for embedded systems that have a limited amount of memory and require a short amount of processing time while running applications.
The following diagram shows an overview of the SOED and TOED workflow. For more information about choosing the right encoder/decoder that suits your specific needs, see ASN.1 Tools for C++ - Runtime Choices.
SOED and TOED workflow
ASN.1 Studio® is a powerful IDE included with the OSS ASN.1 Tools for C++ on the Windows and Linux platforms. You can use ASN.1 Studio to graphically create or modify ASN.1 values, without writing any code.
You can use ASN.1 Studio to:
For more information, go to ASN.1 Studio.
Utilities
This documentation applies to release 7.3 and later of the OSS® ASN.1 Tools for C++.
Copyright © 2024 OSS Nokalva, Inc. All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means electronic, mechanical, photocopying, recording or otherwise, without the prior permission of OSS Nokalva, Inc.
Every distributed copy of the OSS ASN.1 Tools for C++ is associated with a specific license and related unique license number. That license determines, among other things, what functions of the OSS ASN.1 Tools for C++ are available to you.