ASN1C 7.8.2 was released on August 9, 2024. Changes in this release include the following:
- Modified the GUI so when a config file is added to a project, the file is identified as a config file instead of a schema file (A1C-1373).
- Modified the GUI so the option to delete an include directory permanently when removing it from a project is no longer presented (A1C-1373).
- Fixed a bug in the GUI that could potentially cause a crash if a config file is deleted permanently (A1C-1373).
- Fixed an issue where the command line comment in generated Java files might cause the Java compiler to report an error.
- Removed the 32-bit gnu libraries (built with gcc) from the Windows SDK. The SDK still contains both 32-bit and 64-bit libraries built with mingw. The 32-bit gnu libraries can be built upon request.
- Removed the Java ME jars from Java run-time distributions. The Java ME jars can be built upon request.
- Changed Java XML encoding so empty elements are encoded using the longer form (e.g., <tag></tag>) instead of the shorter form (e.g., <tag/>) if the canonical flag is set. This change makes the Java behavior consistent with the C/C++ behavior (A1C-1409).
- Fixed a problem where code would not be generated for some types if an ASN.1 module contained over 5,000 types (A1C-1418).
- Fixed a problem that could cause generated *Values.java files not to compile due to multiple import statements referencing the same class from different packages (A1C-1421).
- Fixed a crash in the compiler that would occur when generating Java or C# PER code for ASN.1 specifications that contain extensible size constraints (A1C-1460).
- Fixed two defects in generated code when using -c++11 and -pdu all. In one case, an object's destructor was called twice. In another case, an object's constructor was not invoked at all. (A1C-1453)
- Fixed a problem that could cause iFloat license operations not to work on macOS (LIC-18).
- Fixed a defect in which X.680 clause 50.11 was not being strictly interpreted to remove extensibility on constraints when a different subtype constraint was applied to the parent type. This affected PER encoding and decoding to remove the extensibility bit from the encoding. This fix was done for all supported languages (A1C-1461).
- We added asn1SetTC_ function generation for the case where an information object sets has only 1 member but is extensible (A1C-1453).
- For Windows distributions the minimum version of Windows where the installation can be done has been changed to Windows 7. If desired, a distribution that will allow installation on versions of Windows as old as Windows 2000 can be created, but such a distribution won't be supported.
ASN1C 7.8.1 was released on April 17, 2024. Changes in this release include the following:
- Fixed a bug that could cause a PER encoding of a size-constrained BIT STRING to be incorrect if numbits was specified as 0 (A1C-1326).
- Fixed a bug in C/C++ XER decoding where the decoder incorrectly required extension elements to be present (A1C-1313).
- Fixed a problem in the ASN1C GUI where if Go was the selected language, unchecking the UPER check box would not enable the PER check box (A1C-1281).
- Fixed the -gencssources qualifier, which previously would issue a warning and not create the .mk file.
- Support has been added for .NET v8. This support includes a version of the C# run-time assembly (asn1rtcs.dll) that targets .NET v8, a new -dotnetv8 qualifiers for C# project file generation, and a corresponding option in the ASN1C GUI.
- Support has been added for .NET Standard v2. This support includes a version of the C# run-time assembly (asn1rtcs.dll) that targets .NET Standard v2.
- Fixed a problem where the "asn1c -licfiles" command would show nothing if OSLICDIR was defined and contained an osyslic.txt file.
- Fixed some inconsistencies between the GUI project file and the build.xml file for java/sample_der/PKIX_Certificate.
- Fixed problems that prevented the GUI from working on macos_m1 systems.
- ASN1C v7.7.2 included some changes related to PER encoding of BIT STRINGs with named bits and extensible size constraints. Those changes caused some values to be encoded with length zero where previously they wouldn't be. Further analysis has shown that the previous behavior was more correct, so in v7.8.1 these changes have been reverted (A1C-1123, A1C-1234).
ASN1C 7.8.0 was released on January 12, 2024. New features in this release include the following:
- Added capability to use 100% static memory for C/C++. The capability to use static memory existed in prior releases, but there were still parts of the API that allocated some dynamic memory in the course of setting this up. This has now been eliminated.
- Validation has been added to the DER decoding logic for all languages to ensure elements in a SET or SET OF construct are in correct canonical order. A non-fatal error is raised if the elements are found to be out of order, but decoding is continued rather than aborted.
- The -oid-as-string command-line option was added to allow OBJECT IDENTIFIER values to be stored as dotted number strings. This makes it possible to specify OID arc values to be arbitrarily large integer numbers that will not fit in 32 or 64 bit integer typed variables.
- Support has been added for .NET v7. This support includes a version of the C# run-time assembly (asn1rtcs.dll) that targets .NET v7, a new -dotnetv7 qualifiers for C# project file generation, and a corresponding option in the ASN1C GUI.
- The ASN1C GUI is now included in the SDK for macOS on the Apple M1 platform.
- For C, C++, Java, and C# if -genwriter is specified with one binary encoding rule (e.g., -ber, -per) and one text encoding rule (either -xml or -json), the generated writer will first decode a text representation of the message using the text encoding rule and will then encode a binary representation of the message using the binary encoding rule.
- Similarly, if -genreader is specified with one binary encoding rule and one text encoding rule, the generated reader will first decode a binary representation of the message using the binary encoding rule and will then encode a text representation of the message using the text encoding rule.
- Support for handling table constraints has been added for the OER and PER encoding rules.
The following defects were fixed in this release:
- Fixed ASN2XSD so an assertion violation is not signaled if an element in the ASN.1 is of type CHARACTER STRING, EXTERNAL, or EMBEDDED PDV (A1C-1233).
- Fixed Go JER encoding of open type to follow X.697 and not to wrap the open type value in a JSON object.
- Fixed Java and C# writer generation so random test data is not generated unless -gentest is specified.
- Fixed defects in Go JSON (JER) code generation in decoding types designated to be big integers.
- Fixed defects in Go JSON (JER) code generation for encoding and decoding elements in version bracket groups.