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 qualifier 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.