Contents
The following -compat flags have been added:
The -avn compiler option is now supported. The option instructs the compiler to generate additional C# code that implements parsing of ASN.1 value notation data into C# objects that represent values defined by value notation. For more information about implementation restrictions, see the Value Parsing section.
NOTE: The ASN.1 value notation parser generated by the -avn option is a chargeable feature in non-evaluation licenses. Contact Sales to obtain pricing information.
New samples have been created for release 16 of the LTE and 5G protocols:
Samples for releases 14, 15, and 16 of the LTE and 5G protocols have been updated to use the most recent versions of the ASN.1 schemas available:
The cam_denm sample has been updated to use the most recent version of the ASN.1 schema:
A new sample has been created for the IEEE 1609.2 specification. The sample demonstrates how to construct, sign, and verify signed Ieee1609Dot2Data using the .NET System.Security.Cryptography API.
This section provides a summary of the new and enhanced features in the OSS ASN.1 Tools for C# 5.0.
The ASN.1 compiler now supports the new -enablePartialDecode and -partialDecodeOnly command-line options and the OSS.DataCallback and OSS.InfoCallback compiler directives. The -enablePartialDecode and -partialDecodeOnly compiler options instruct the compiler to generate code that makes the new DecodePartial() method of the Codec object available to you. The method does not return the decoded PDU value. Instead, it invokes a user-defined callback method when decoding each field that is marked by the OSS.DataCallback or OSS.Info Callback compiler directive and optionally passes the decoded field value to it.
The partial decoding feature enables you to
The feature is available for the BER, DER, PER, UPER, CPER, CUPER, OER, and COER encoding rules.
For more information, see the Partial Decoding section.
Samples for release 16 of the LTE and 5G protocols have been created:
The following new samples have been created for:
The basic/threads sample has been created. The sample demonstrates how to use the OSS ASN.1/C# API in multi-threaded applications.
Samples for releases 13, 14, and 15 of the LTE and 5G protocols have been updated to use the most recent versions of the ASN.1 schemas available:
This section provides a summary of the new and enhanced features in the OSS ASN.1 Tools for C# 4.7.
The ASN.1 compiler now supports X.680 Amendment 1. The IMPORTS clause allows symbols to be imported from the latest module version, as indicated by the object identifier, and it can now include WITH SUCCESSORS and WITH DESCENDANTS as SelectionOption.
The OSS ASN.1 Tools for C# now includes an additional version of the runtime assembly compatible with .NET Standard 2.0. You can use it to target numerous platforms that implement the .NET Standard 2.0 specification (for example, .NET Framework, .NET Core, Xamarin, Mono, UWP, etc.). Unlike .NET Standard 1.4, the .NET Standard 2.0 version of asn1csrt.dll does not require that the ASN.1 must be compiled with the -noSerializable command-line parameter. It also supports C# classes generated with the -genSchemaInfo compiler option.
A special type of absolute reference notation that allows you to access ASN.1 types located within WITH COMPONENTS and WITH COMPONENT (inner subtype) clauses and consists of two dollar signs ($$) followed by an index number indicating a particular WITH COMPONENTS or WITH COMPONENT is now supported. You can now assign user-defined names within CONSTRAINED BY clauses that are present within an inner subtype or a compiler-generated structure.
The JSON encoders now support an alternative form of encoding values of BIT STRING or OCTET STRING types with contents constraints if an ENCODED BY is absent. When you select this form, the values are encoded as text (the JSON value represents the contained value) rather than hex string.
The -jer command-line option is now an alias for the -json command-line option.
The following new samples have been created:
The following samples have been created for release 15 of the LTE protocols:
The following samples for releases 13 and 14 of the LTE protocols have been updated to use the most recent versions of the ASN.1 schemas available:
The following new samples have been created for release 15 of the 5G protocols:
A new sample has been created for the BTP protocol (ILP-RFC 0023: Bilateral Transfer protocol). The sample demonstrates how BTP peers communicate using the Prepare, Fulfill, and Reject requests.
This section provides a summary of the new and enhanced features in the OSS ASN.1 Tools for C# 4.6.
The OSS ASN.1 Tools for C# supports the Canonical Packed Encoding Rules (ALIGNED and UNALIGNED) as specified by ITU-T Recommendation X.691 (08/2015) | ISO/IEC 8825-2:2015.
The -cper and -cuper compiler options instruct the compiler to enable support for CPER. For better security, the CPER decoder operates in a strict mode: every deviation from the X.691 standard requirements is reported.
Support for the CANONICAL-PER encoder and CANONICAL-PER decoder is enabled when the -cper or -cuper compiler option is specified. A strict conformance level operation mode has been implemented in the BASIC-PER decoder.
NOTE: The following ASN.1 types are currently not supported by CPER: SET OF, GeneralString, and GraphicString. The compiler issues a warning when these types are encountered in an ASN.1 schema and the -cper or -cuper compiler option is used. The runtime throws an exception on an attempt to encode or decode a value of these types.
The compiler now supports the ASN1.RealRepresentation directive.
New samples for release 14 of LTE protocols have been created and existing samples for release 12 and 13 have been updated to the most recent versions of ASN.1 schemas available:
The ASN.1 compiler supports the UPPERCAMELCASED and LOWERCAMELCASED keywords in the NAME and TEXT JER encoding instructions.
This section provides a summary of the new and enhanced features in the OSS ASN.1 Tools for C# 4.5.
The ASN.1/C# compiler and runtime library support the JSON Encoding Rules. The existing -json command-line option instructs the compiler to enable support for X.jsoner at runtime.
The JSON codec supports the following encoding instructions:
The OSS ASN.1 Tools for C# now includes an additional version of the runtime assembly compatible with .NET Standard 1.4. You can use this version of the asn1csrt.dll runtime DLL to develop applications on the following platforms:
To generate C# classes compatible with .NET Standard, specify the -noserializable compiler option.
NOTE: When generating C# classes that will be used with .NET Standard, do not specify the -genschemainfo compiler option. This option generates C# attributes that are not supported by .NET Standard.
The following new samples for LTE protocols have been added:
This section provides a summary of the new and enhanced features in the OSS ASN.1 Tools for C# 4.4.
The -cxer option has been added to support the Canonical XML Encoding Rules (CXER) in the ASN.1/C# Tools. This option enables generation of the CXER encoder and the XER decoder so CXER messages can be encoded and decoded.
This section provides a summary of the new and enhanced features in the OSS ASN.1 Tools for C# 4.3.1.
The OSS ASN.1 Tools for C# now includes ASN.1 Studio 8.0. For a summary of the improvements in ASN.1 Studio 8.0, see the Enhancements History section.
This section provides a summary of the new and enhanced features in the OSS ASN.1 Tools for C# 4.3.
The following new features have been added:
For more information about the limitations that apply to the E-XER encoder/decoder, see the Encoder/Decoder Limitations section.
The -exer command-line option enables generation of code for E-XER.
The RecursionLimit decoder option limits the depth of nested recursive calls when the value of a circularly defined type is decoded.
This section provides a summary of the new and enhanced features in the OSS ASN.1 Tools for C# 4.2.
The following new features have been added:
The ASN.1 compiler can generate a sample program that shows you how to encode, decode, or print PDU and Value objects for types defined in the schema. To generate a sample program, use the -sampleCode command-line option.
The Copy() method has been added to the PDU classes. The method implements a deep copy of an object.
The JSON encoder now supports the EncodeImpliedValues option which enables encoding of null PDU fields (they imply a default value) in the JSON output.
The ValueNotationFormatter class now supports the PrintImpliedValues which enables printing of null PDU fields (they imply a default value) in the formatted output.
The JSON codec now supports an alternative format so that optional fields can be encoded as <key>:null (for example, "DateOfBirth":null).
Improved UTF8 printing and initialization of UTF8String fields. The ASN.1 compiler now generates human-readable strings (instead of byte arrays) to initialize UTF8String fields.
This section provides a summary of the new and enhanced features in the OSS ASN.1 Tools for C# 4.1.
The following new features have been added:
The new representation provides a separate class wrapping List<>, which is especially useful when handling nested SET OF/SEQUENCE OF.
Improved implementation for comparing SET OF/SEQUENCE OF values. You can now compare nested SET OF/SEQUENCE OF on three or more levels.
To facilitate usage of text-based codecs, for example, JSON or XER, the BaseCodec class was separated into two parts: BinaryCodec and TextCodec. Note that existing applications that reference BaseCodec must be changed to reference BinaryCodec.
The compiler now recognizes reserved C# keywords.
Reserved words specified with the -reservedWords compiler option are now case-sensitive.
This section provides a summary of the new and enhanced features in the OSS ASN.1 Tools for C# 4.0.
With version 4.0, the OSS ASN.1 Tools for C# has been redesigned with a more user-friendly API and better performance.
Users of the OSS ASN.1/C# Tools version 3 will find the architecture and the development process very familiar. However, the API is not compatible with previous versions (3 and earlier), so your existing application code must be modified to use the new API. However, you can install version 4.0 alongside an older version of the OSS ASN.1 Tools for C#; the two versions will peacefully co-exist.
See the Migration Guide for information about upgrading to version 4 and the Comparison Card to see the differences between versions 3 and 4.
This documentation applies to the OSS® ASN.1 Tools for C# release 5.1 and later.
Copyright © 2022 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.