ASN.1 Tools for C# — Enhancements History

ASN.1 Tools for C# - version 4.5.0 (latest version)

  • The ASN.1/C# Tools now includes ASN.1 Studio v8.2.0.
  • Conformance to Draft ITU-T Recommendation X.jsoner:
    • The ASN.1/C# compiler and the TOED 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:
      • JER:ARRAY
      • JER:BASE64
      • JER:NAME
      • JER:OBJECT
      • JER:TEXT
      • JER:UNWRAPPED
  • 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.
  • The following new samples for LTE protocols have been added:

ASN.1 Tools for C# - version 4.4.0

  • The ASN.1/C# Tools now includes ASN.1 Studio v8.1.0.
  • 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.
  • The ASN.1/C# Tools now supports decoding of BER, DER, XER, and CXER messages without explicit specification of the message type. The new "-helperapi pdudecoder" compiler option enables generation of the service PDU decoder class so PDUs can be decoded without explicit specification of the PDU type. Automatic detection of the incoming message type is available in the BER, DER, XER, and CXER codecs.
  • Reduce the code size of classes generated with either the encoder or decoder methods by using the -encodeonly or -decodeonly compiler option, respectively.
  • The ASN.1/C# PER encoder-decoder implementation now conforms to the recent X.691 corrigendum (2015): an encoding contained in a BIT STRING should be at least one octet for PER ALIGNED and 1 bit for PER UNALIGNED.
  • New samples:
    • A sample for the 2016-03 version of the J2735 protocol has been created. The sample does not include the J2735:2016 ASN.1 specification due to licensing reasons. Users should obtain it directly from the ITS SAE site.
    • A sample for the 3GPP XwAP (TS 36.463) protocol has been created.

ASN.1 Tools for C# - version 4.3.1


ASN.1 Tools for C# - version 4.3

  • The ASN.1/C# Tools now includes ASN.1 Studio v7.5.1.
  • Support for the Extended XML Encoding Rules (E-XER) was added.
  • The "RecursionLimit" decoder option was added. This option limits the depth of nested recursive calls when the value of a circularly defined type is decoded.

ASN.1 Tools for C# - version 4.2

  • The ASN.1/C# Tools now includes ASN.1 Studio v7.4
  • Support for the following encoding rules was added: Distinguished Encoding Rules (DER), Canonical Octet Encoding Rules (C-OER), XML Encoding Rules (XER).
  • The ASN.1 compiler has been enhanced to generate a sample program that shows you how to encode, decode, or print PDU and Value objects for types defined in the schema. Use the -sampleCode command-line option to generate a sample program.
  • The Copy() method has been added to the PDU classes. The method implements a deep copy of the object.
  • The JSON codec now supports an alternative format for optional fields to be encoded as :null (e.g. "DateOfBirth":null).
  • The ASN.1 compiler now generates human-readable strings (instead of byte arrays) to initialize UTF8String fields.
  • The JSON encoder now supports the EncodeImpliedValues option which enables encoding of null PDU fields (they imply a default value) in the JSON output. By default, the values of these fields are not included in the output.
  • The ValueNotationFormatter class now supports the PrintImpliedValues which enables printing of null PDU fields (they imply a default value) in the formatted output.

ASN.1 Tools for C# - version 4.1

  • The ASN.1/C# Tools now includes ASN.1 Studio v7.3.
  • Support for JSON.
    • - The JSON Encoding Rules for ASN.1 were introduced to facilitate the scaling of JSON-based architectures. With JSON ER, you can preserve the power of text (JSON) encodings, yet take advantage of the conversion to/from binary (ASN.1) encodings for fast transmission or compact storage.
  • New compiler option "-prefix <string>".
    • - This option instructs the compiler to generate top-level identifiers with the specified string prefix.
  • Improved implementation for comparing SET OF/SEQUENCE OF values.
    • - The comparison of nested SET OF/SEQUENCE OF on 3 or more levels is now supported.

ASN.1 Tools for C# - version 4.0

  • The OSS ASN.1 Tools for C# v4.0 is a complete re-implementation of the product done with the following goals:
    • - improve encoding/decoding speed
        (now up to 10 times faster, on average, compared to the previous ASN.1/C# release)
    • - improved API
    • - support for the Octet Encoding Rules - OER

ASN.1 Tools for C# - version 3.1

  • The ASN.1/C# Tools now includes ASN.1 Studio, a powerful new IDE packed with functionality that allows you to compile ASN.1 specs, display, create, modify or encode messages with just a few mouse clicks, and so much more!
  • The ASN.1/C# tools now install under the Program Files\OSS Nokalva\asn1csharp\ folder (whereas before the 3.1 release, they were installed under Program Files\OSS\asn1csharp\).
  • Samples are now installed under the folder pointed to by the environment variable %ALLUSERSPROFILE%. By default, on Windows 7 and VISTA, the samples are installed under the C:\ProgramData\OSS Nokalva\asn1csharp\win32\<version-number>\samples folder, and on Windows XP, the samples are installed under the C:\Documents and Settings\All Users\Application Data\OSS Nokalva\asn1csharp\win32\<version-number>\samples folder.

ASN.1 Tools for C# - version 2.2

  • The OSS ASN.1 compiler for C# now supports the new command line options,-namesForVB/-noNamesForVB, to enable/disable the generation of names for C# properties and methods suitable for use in a Visual Basic .NET applications. The default behavior of the ASN.1 compiler, for backward compatibility, is to generate names that differ in case. We recommend that Visual Basic developers use the new option to avoid case related problems.
  • The runtime Asn1Exception can now become a Serializable object.

ASN.1 Tools for C# - version 2.1

  • OSS ASN.1 Tools for C# version 2.1 supports the full range of time types as specified in ISO 8601 (TIME, DATE, TIME-OF-DAY, DATE-TIME, DURATION). These representations of date and time were standardized to avoid misinterpretations across national boundaries. New runtime types Asn1TimeType(TIME), Asn1DateType (DATE), Asn1DateTimeType (DATE-TIME), Asn1DurationType (DURATION) and Asn1TimeOfDayType (TIME-OF-DAY) are available to support these new time types.
  • A new command line option, -partialClasses, causes the compiler to generate C# partial classes for types, objects, object classes, objects sets, and classes containing module values. The generated partial classes are dedicated to the Microsoft .NET Framework 2.0. They permit a class definition to be split over two or more source files for easier maintenance and development.
  • A new command line option, -useXmlNames, instructs the compiler to generate additional classes for typereferences, different names for type properties and additional names for named identifier constants. The names of these extra classes, properties and constants match the names used in the Extended XER encoding of classes and class members. The ASN.1 Compiler derives the names for such components from the E-XER NAME or TEXT encoding instructions.
  • Runtime methods ToString() now provide the representation of the instance value using ASN.1 value notation. Note that alternatively the Asn1TypeExplorer class, which allows access to more information , such as the reference type name of each component of a constructed type, is still available.
  • The runtime method Decode() has been added to the IDecoder interface. Previously it existed on all decoders but was not visible through the interface.
  • Generic methods are now available for Asn1ConstructedType (SEQUENCE, SET, CHOICE) andAsn1ConstructedOfType (SEQUENCE OF, SET OF) to allow the manipulation of internal components of constructed types without knowing the exact type of these components.
  • The runtime method Validate() now throws Asn1ValidationException (which extendsAsn1Exception) for clearer exception handling when using validating encoders or decoders.

ASN.1 Tools for C# - version 2.0

  • Extended XML Encoding Rules (E-XER) support has been added to the OSS ASN.1 Tools for C#. Now you can have the full capabilities of XML with ASN.1. Extended-XER encoding makes ASN.1 an XML schema notation as powerful as XSD, with the simplicity of ASN.1.
  • A new compiler option, -lineSeparator, allows you to specify a line separator escape sequence of your choice (e.g., to create DOS-type line formatting) for XER or E-XER encodings.
  • A new command line option, -asn1ModuleNamespace, allows you to define a namespace for an ASN.1 module. When used in conjunction with another new option, -noModule, a shared module (ie., a module that has multiple modules importing from it) can be used independently as a common C# DLL by each protocol's generated API.
  • New methods, GetAsn1TypeElements() and AddAsn1Type(), allow you to get a list of elements and to add an element for easier handling of SEQUENCE OF/SET OF types.

ASN.1 Tools for C# - version 1.3

  • A new compiler option, -verbose/-noverbose, controls whether detailed compile-time status messages are displayed. Specifying -verbose will result in the display of details such as the name of the input file currently being read, the contents of the license file in use, etc.
  • A new runtime property, sortingSetOf, has been added to the XER encoders to control the sorting of SET OF components.