내용없음9
내용없음10














 Technology news
기술정보
 
ASN.1 컴파일러 ASN1C V6.7.2 Release 2014년 9월 9일
 
 

ASN1C v6.7.2 has been released.  This is a maintenance release that fixed a number of issues.  We added support for safe memory copies as documented in a previous blog post.  We also added the capability to use the <isBigInteger/> configuration option to specify an arbitrary-sized integer type be used at the element level.  Previously, this could only be used at the production (type) level.  Also a few subtle bugs were fixed in C bit level encoding and memory management code.  For a complete list of changes, please consult the change log.

As always, this is a free upgrade for users with active support.  Please check your user account page and it may be already available.  If not, please contact us and we will set you up with this latest version.

Release Notes

This release of ASN1C adds the following new capabilities:
Support Added for C++11 Features
A new command-line option, -c++11, had been added which will cause features in the C++11 Standard to be added to generated code. This includes the use of std::string for 8-bit character string ASN.1 types (UTF8String, IA5String, etc.) and std::list, std::vector, and std::array for SEQUENCE OF / SET OF types.
Generation of Portable Makefiles
The -genmake command-line option now results in the generation of portable makefiles that can be used on Windows, Linux, or other UNIX environments. A platform-specific include file (platform.mk) is all that is required to define symbolic constants for C/C++ compilers and linkers and related items.
Generation of Doxygen Documentation
Doxygen documentation comment blocks are now added into C and C++ generated header files.
Improved XSD Compilation Support
Many defects were fixed in the compilation of XML Schema Definition (XSD) files. This is an alternative schema format which may be used instead of ASN.1.
Visual Studio 2010 now the Default Compiler
The ASN1C compiler and default C/C++ libraries are now built with Visual Studio 2010. The previous version used Visual Studio 2008. Visual Studio 2008 libraries are still available in the c_vs2008 and cpp_vs2008 subdirectories.
MINGW now a Standard Supported C/C++ Compiler
Libraries built with the popular mingw C/C++ compiler on Windows are now included as a standard platform type. These are included in the evaluation and licensed 32-bit Windows packages.

Compatibility

No significant code changes that should affect backward compatibility with the previous ASN1C version have been made in this release.

Documentation

Documentation for release is available online at the following web-link:http://www.obj-sys.com/asn1c-manuals.shtml

ASN1C V6.7.X CHANGE LOG

ASN1C 6.7.3 was released on September 9, 2014. Changes in this release include the following:

  • Fixed a bug related to parameterized types. In some cases, the code generated for a parameterized type, that was used with different actual parameters, would be generated as if the actual parameters were the same in all cases (ASN-6923).
  • Fixed a bug that affected creation of "temporary types" for SEQUENCE OF types. Given two distinct types, Mod1.X and Mod2.X, and two elements, SEQUENCE OF Mod1.X and SEQUENCE OF Mod2.Y, a single temporary type might be created, so that one of the SEQUENCE OF's would not be represented correctly. This manifested in Java code generation, but could possibly affect other languages, C# especially (ASN-6913).
  • Fixed a bug in Java and C# runtime license checking. The runtime would sometimes incorrectly report a license check failure in multithreaded applications (ASN-6889).
  • Fixed a bug in C/C++ code generation when using –linkedlist: memory could be incorrectly initialized, leading to invalid results (ASN-6826).
  • Exported the xu_fmt_tag2 function to allow users to call it for their own tag formatting purposes (ASN-6799).
  • Adjusted warnings for C/C++ code generation when an enumerated type prefix was specified by the user in a configuration file; no warning is printed when the name is changed (ASN-6799).
  • Fixed a bug in C/C++ code generation that would cause the extension of any C/C++ file to be replaced with either .c or .cpp, even when users specified their own (ASN-6799).
  • Fixed C/C++ error handler callback to work properly in the case of an invalid enumerated error (RTERR_INVENUM)(ASN-6763).
  • Fixed a bug in Java's Asn1BitString that caused empty bit string comparisons to return false when in fact the bit strings were equal (ASN-6764).
  • Fixed C/C++ code generation for enumerated types so that an error handler could accommodate invalid values in the enumeration (ASN-6763).
  • Fixed a problem in which compilation warnings would be issued by some compilers against some of the C function prototypes in the C/C++ run-time (ASN-6758).
  • Adjusted C/C++ code generation for OCTET STRING printing to ensure that the minimal number of octets would be printed when the octet string was sized (ASN-6738).

ASN1C 6.7.2 was released on June 27, 2014. Changes in this release include the following:

  • Fixed a bug in rtxEncBit so that all non-zero values passed to it would be treated as TRUE. Some calls from legacy code were causing FALSE to be encoded instead (ASN-6723).
  • Fixed a C/C++ copy code generation bug in which source and destination were confused for character arrays (ASN-6711).
  • Fixed a bug in C++ pure parser generation in which types were assumed to be generated for SEQUENCE OF productions, even though–notypes was specified on the command line (ASN-6690).
  • Fixed a rare corner case in C/C++ unaligned PER encoding in which the memory heap could be invalidated when encoding an unaligned field in such a way that it aligned directly on the last byte of the dynamic encoding buffer (ASN-6674).
  • Fixed a bug in the C# run-time that could cause ArgumentNullException errors (ASN-6623).
  • Adjusted code generation and runtime libraries to use a safer version of memcpy and memmove that performs destination bounds-checking; the new macro is OSCRTLSAFEMEMCPY and may be used anywhere the OSCRTLMEMCPY or OSCRTLMEMMOVE macros were used previously (ASN-6622).
  • Adjusted MACRO parsing so that missing optional ERROR elements wouldn't cause a syntax failure when –x208 was passed on the command line (ASN-6611).
  • Fixed a bug in C/C++ code generation in which the use of the typePrefix configuration option would cause parameterized types in CAP to go missing (ASN-6611).
  • Absolute paths are now properly represented in generated makefiles (ASN-6600).
  • Fixed a bug in license checking in which Unable to get host id errors could be erroneously raised (ASN-6599).
  • Updated configuration file rules so that <isBigInteger/> can be applied to elements, not just productions (ASN-6530).
  • Changed the definition of ALLOC_ASN1ARRAY to zero out memory so that its use apart from –init would properly clear out old data (ASN-6517).
  • Fixed a problem with generated .csproj files not building if the -o qualifier was specified on the asn1c command line (ASN-6503).
  • Fixed a problem with generation of C# projects. If -csharp and -vcproj 2008 were specified, the generated project referenced the Visual Studio 2010 C# run-time instead of the Visual Studio 2008 C# run-time (ASN-6502).
  • Fixed a problem with an exception occurring when running C or C++ code that was built against the limited run-time if rtkey.h contained an expired key (ASN-6484).
  • Fixed a problem that would cause a cryptic error message to be displayed on Linux systems if more than one .lic file was found (ASN-6481).
  • Added the capability for the ASN1C licensed run-times to read the key from an osyslic.txt file in addition to an rtkey.dat file (ASN-6465).
  • Added new abstract classes to Java and C# runtime: Asn1Seq, Asn1Set, Asn1SeqOf, and Asn1SetOf. These classes provide the ability to access elements in a somewhat generalized fashion.
  • Improved the comment written to the generated rtkey.h file so that if a run-time expiration date was present, this was noted.

ASN1C 6.7.1 was released on April 9, 2014. Changes in this release include the following:

  • Fixed a crash that could be caused when using deferred decoding with the ASN1FASTCOPY flag set in the context (ASN-6474).
  • Fixed a memory corruption that occurs when users who ported code from pre-6.0-era versions of ASN1C to 6.x using the packagedrtport.pl script called the rtxDListAppendData function. Users who have never called the script or who have regenerated code from newer versions are unaffected by this issue (ASN-6446).
  • Fixed a problem with C/C++ PER OCTET STRING encodings for zero-length octet strings. They were encoded as 0x00 0x00 instead of 0x00 (ASN-6442).
  • Fixed C/C++ runtime source compilations when _MEMCOMPACT was defined (ASN-6430).
  • Added deferred decoding for BER to C# code generation (ASN-6410).
  • Fixed a bug in C/C++ code generation to fix encodings of types marked as open types using the <isOpenType/> predicate in a configuration file (ASN-6410).
  • Updated several runtime functions in response to lint-checking warnings related to variable initializations (ASN-6337).
  • Fixed a bug in C/C++ PER code generation in which an "OK" status could be returned when decoding failed; this occurred when–compact was specified on the command line (ASN-6331).
  • Fixed a bug in C/C++ copy code generation that could cause corruption in character arrays (ASN-6328).
  • Fixed a bug in C/C++ copy code generation in which a failed memory allocation was ignored (ASN-6312).
  • Fixed a bug in Visual Studio project file generation in which references to asn1rt_a.lib would be incorrectly generated as asn1rt_a.libd (ASN-6456).

ASN1C 6.7.0 was released on February 3, 2014. New features in this release include the following:

  • Support added for some C++ 11 features in generated code.
  • Generation of Portable Makefiles.
  • Generation of Doxygen Documentation.
  • Improved XSD Compilation Support.
  • Visual Studio 2010 now the Default Compiler for Windows.
  • MINGW now a Standard Supported C/C++ Compiler.

Related links:

The current production release version of ASN1C is 6.5.5, released on November 13, 2012. Changes in this release include the following:

  • Updated memory management routines to perform additional error checking (ASN-4954).
  • Fixed an array index out of bounds exception that could occur when using named bit strings with generated Java code (ASN-4899).
  • Fixed a potential crash and invalid code generation that was occurring in the case of inline OCTET STRING definitions in C++.
  • Fixed C code generation when –table-unions was specified with –prtfmt details; a name buffer was specified twice (ASN-4873).
  • Fixed a C PER decoding issue that was caused when using the list predicate for storage in a configuration file (ASN-4804).
  • Fixed a problem that caused DLLs in the lib folder of Windows kits to specify the wrong version of the C run-time in their manifests (ASN-4796).
  • Updated print to string sources to remove warnings in source code packages (ASN-4783).
  • Fixed a problem related to the <enumPrefix> predicate that could cause name clashes with some enumerated identifiers (ASN-4765).
  • Fixed a bug in which filenames could be truncated when the current working directory was specified as the output directory (-O .) and –maxlines was passed on the command-line (ASN-4654).
ASN1C 6.5.4 was released on September 5, 2012. Changes in this release include the following:
  • Updated C/C++ code generation to prevent the header guard prefix from attaching to rtkey.h files. This permits the generation and integration of multiple modules without duplicating the key value across the global name table (ASN-4765).
  • Updated C/C++ PER code generation to prevent harmless Valgrind warnings about freeing uninitialized memory; our memory management handles this situation safely. The Valgrind warnings arise when decoded lengths exceed the acceptable size of an array (RTERR_TOOBIG) (ASN-4748).
  • Updated Java PER bit tracing for Asn1Real types so that the length, format, and exponent values would be explicitly reported (ASN-4744).
  • Corrected an issue in which a large negative numeric literal would sometimes appear in generated C or C++ code and would cause compilation to fail (ASN-4738).
  • Corrected an issue in which macros intended to designate values as 64-bit values were improperly used in generated C or C++ code (ASN-4738).
  • Updated Java code generation so that complex types would not be improperly initialized if they were part of a CHOICE (ASN-4728).
  • Updated the Java Asn1BerDecodeContext class so that it would better track tags seen during decoding. This helps to avoid conflicts with default elements (ASN-4728).
  • When linking code against the 32-bit Visual Studio 2010 libraries, "missing PDB file" warning messages are displayed. (ASN-4690).
  • When compiling XSD and generating a C XML decoder for an element having a fixed number of occurrences (greater than one), the generated code contained an error that prevented compilation. A value was assigned to the non-existent field "n". (ASN-4660).
  • Fixed several warnings that would appear when using the –W4 option with Visual C/C++ (ASN-4654).
  • When generating C# code with table constraints, some generated files weren't included in a generated makefile or .csproj file. (ASN-4638).
  • Fixed a problem that could cause an exception during execution of generated memory deallocation code (ASN-4609).
  • Fixed defects in generated BER encoders and decoders. These would arise, when compiling XSD, in the case of a sequence whose content is a single element E, where E's type is itself a sequence whose content is a single element. The C/C++ BER encoder encoded a BER tag in primitive form when the correct form was constructed. The C/C++/Java/C# BER decoders would report unexpected tag errors on a correct encoding (ASN-4670).
  • Fixed a bug in license validation in the ASN1C GUI that could force users to open the GUI twice in order to open or create new projects (ASN-4560).
  • Fixed a defect in generated C# BER decoders where the tag for a sequence-of's element was not being matched, leaving the tag to be treated as part of the contents of the repeating element. This occurred when the sequence-of was inlined and was the alternative type for a choice type.
  • Added -noevents to provide a way to disable event handler code generation for Java and C#, where it is otherwise done by default (ASN-4726).
ASN1C 6.5.3 was released on July 9, 2012. Changes in this release include the following:
  • Fixed a potential stack overflow caused by mutual recursion when encoding OCTET STRINGS with size constraints exceeding 64k in the Java and C# runtime libraries (ASN-4648).
  • Fixed a potential memory corruption in the C/C++ runtime that could occur when explicitly requesting a memory reallocation that would transform the pointer from a managed block to a raw block (ASN-4629).
  • Addressed some behaviors of the Java Runtime (ASN-4626):
    • Fixed a number of NullPointerExceptions that could be generated when checking the hash codes of different types in the Java runtime.
    • Adjusted the creation of Asn1Time classes to throw an exception when passing in an invalid time string. An invalid format exception was usually thrown after the time class was used, not when it was created.
    • Updated the Asn1Time documentation to explain that uninitialized time objects were not considered equal.
  • Fixed a bug in copy code that could cause memory corruption when copying OCTET STRINGs (ASN-4606).
  • Fixed a bug in which ASN1C would sometimes incorrectly report missing definitions in a module (ASN-4598).
  • Fixed a few sample ASN.1 modules that were missing definitions (ASN-4598).
  • Updated comparisons with OSNULLINDEX to remove a spurious warning about comparisons with unsigned integers (ASN-4595).
  • Fixed a warning about code that included OSRTStreamIF.h (ASN-4595).
  • Updated Java Asn1Enumerated classes to prevent race conditions in multi-threaded environments and to protect member variables from unwitting modification (ASN-4573).
  • Fixed several different issues with Java code generation and the runtime (ASN-4550):
    • Corrected several NullPointerException failures when calling equals() methods.
    • Corrected inconsistent behavior of equals() in Asn1Time subclasses.
    • Corrected validate methods for numeric and IA5 string types.
    • Added equals() methods for EXTERNAL types.
    • Ensured consistency for hashCode() methods.
  • Fixed a warning when compiling code that included ASN1CBitStr.h (ASN-4542).
  • Fixed a bug in which imported object identifiers whose arc names were C/C++ reserved keywords would be improperly resolved by the compiler (ASN-4523).
  • Fixed a problem with printing warnings to the standard output when –warnings was used on the command-line (ASN-4519).
  • Fixed an exception that could occur when the GetTime() method of the C# Asn1UTCTime class was called (ASN-4514).
  • No longer report "XML element with more than 1 explicit tag" errors when generating code from XSD. This was an internal limitation that has been lifted (ASN-4504).
  • Ensured that errors would be reported to standard out as well as in the output file when permitted alphabet constraints contain characters that are not a part of the canonical set (ASN-4497).
  • Fixed a possible use-after-free error that appears in the C common runtime after attempting to decode a message populated with random data; this can occur when initialization functions are explicitly disabled (ASN-4494).
  • Fixed generation of XSD from ASN.1. When generating XSD, given a TypeAssignment such as MyTypeAlias ::= MyType where MyType is a sequence of integer, the xsd type generated for MyTypeAlias should be a simpleType, not a complexType, because it is defined as an xsd:restriction on MyType, which is a simple type (ASN-4451).
  • Fixed a bug in which C/C++ PER encoders were not adding a trailing length determinant when encoding octet strings whose size was an exact multiple of 16k (ASN-4435).
  • Fixed a bug in C/C++ compact PER decoding in which dynamic octet strings for CONTAINING types were not properly returning an error status when an error occurred (ASN-4431).
  • Added support for REAL value range constraint checks that use simple values (e.g., 1.5) as range end points (ASN-4408).
  • Added Asn1SeekableStream to C# runtime library. This internal class supports seeking on streams that do not usually support it, such as NetworkStreams (ASN-4359).
  • Fixed a bug in C/C++ test code generation in which the correct type for a table-constrained open type element was not always selected (ASN-4088).
  • Fixed handling of XSD date and time types when generating code from XSD or when compiling ASN.1 that uses the corresponding types defined by X.694 in the XSD module. The old behavior treated these types as ASN.1 TIME subtypes which have different BER/PER encodings than called for by X.694.
  • Changed the ASN1C compiler so a status of -1 is returned to the operating system when the compiler binary terminates if syntax errors are detected in a module. Previously, the compiler binary would return 0 in such situations.
ASN1C 6.5.2 was released on April 30, 2012. Changes in this release include the following:
  • Fixed a bug in which using –o and –maxlines together could cause header files to be overwritten (ASN-4407).
  • Fixed a bug with C/C++ PER decoding in which fixed-length SEQUENCE OF types would be improperly decoded (ASN-4382).
  • Fixed a possible crash in the construction of C++ bit strings when they were used as PDU data types (ASN-4373).
  • Updated rtxPrintToStream functions so that global print streams would properly indent. Global print streams are not thread safe; context-specific streams are recommended in their place (ASN-4362).
  • Updated the Asn1BerDecodeBuffer class in the C# runtime to ensure that underlying streams that did not support Seek would still decode properly (ASN-4359).
  • Changed –noAmbigTag option to –allow-ambig-tags. References to the old option will still work (ASN-4352).
  • Updated Java exceptions so that they would extend RuntimeException, making them unchecked. This helps to facilitate upgrades from older versions (ASN-4351).
  • Fixed a problem with casing of the root element when compiling XSD. In some cases, the element name would be capitalized when it should have been uncapitalized (ASN-4342).
  • Added the generation of default value assignments for REAL types for all languages in ASN1C. This was causing a bug in PER decoding (ASN-4293).
  • Updated the character string equals methods to test the types of the strings, returning false if the types are different. Previously, for example, an Asn1PrintableString and Asn1NumericString would be considered equal if they had the same string representation (ASN-4290).
  • Added hashCode methods to all types in the Java run time that inherit from Asn1Type. Java code generation was changed to generate a hashCode method for SEQUENCE/OF and SET/OF types when –equals was specified on the command-line (ASN-4290).
  • Fixed a problem in the Java / C# code generation that could cause decoding errors when reading named, sized BIT STRINGs (ASN-4260).
ASN1C 6.5.1 was released on March 7, 2012. Changes in this release include the following:
  • A complete Windows 64-bit (x64) distribution is now available containing both compiler and run-time libraries built in 64-bit mode.
  • Support for Extended-XER ATTRIBUTE and BASE64 instructions added.
  • XER support for C/C++ has been changed to use the same run-time library as XML. XER/XML format can now be switched via a run-time switch. Support for SAX-based XER as existed previously is now considered deprecated.
  • Fixed an issue with floating license checking in which the both the GUI and command-line executable occupied a slot thus providing an incorrect concurrent license usage count.
  • Resolved a stack corruption in Solaris Forte libraries when attempting to create a control class for a PDU; this affected non-optimized libraries only (ASN-4167).
  • IA5String validation in Java adjusted to fail if the ASCII value was greater than 127 (0x7E) per ITU-T T.50 (ASN-4201).
  • Fixed a bug in C code generation that could cause invalid print-to-stream functions to be generated when compiling an XSD (ASN-4184).
  • Updated Java code generation to add string validation to production types, not just elements within SEQUENCEs (ASN-4097).
  • Fixed a test-code generation failure when EXTERNAL types were used inside of CHOICEs, as in ANSI TCAP (ASN-4087).
  • Fixed an error in writer and reader generation when an EXTERNAL type was incorrectly selected as a PDU (ASN-4087).
  • The debug run-time C and C++ DLLs for Visual Studio 2008 and Visual Studio 2010 in Windows kits are now provided as files with names ending in d (e.g., asn1berd.dll) in addition to files with names not having the d (e.g., asn1ber.dll) that were used previously. The next major release of ASN1C will just provide the files with names ending in d for these two platforms. (ASN-4079).
ASN1C 6.5.0 was released on January 20, 2012. New features in this release include the following:
  • Use of Visual Studio 2008 as Default Compiler on Windows.
  • Addition of a Visual Studio Plug-in for Windows.
  • Improved Support for Android.
  • Ability to Generate C# Project Files.
  • C/C++ Code Generation Changes for Optimal Size Constraint Handling<.
  • Deferred Decoding in Java/C#.
  • Real-time Random Test Code Generation in C/C++.
  • Partial Extended XER (E-XER) Support.
 
     
 
5G NR, LTE, 3GPP Telecommunication Solutions - 기술 정보
Objective Systems Solutions3GPP API's3GPP Application Programming Interfaces (API's) are pre-compiled and optimized C function libraries for encoding and decoding protocol messages defined within 3GPP standards documentsAPI's are available for ASN.1-based protocols for 5G (New Radio) (LTE-NR-RRC, E1AP, F1AP, NGAP, XnAP, NRPPa) and LTE (Long Term Evolution) (EUTRA-RRC, S1AP, X2AP, M2AP, M3AP).API's are also available ..
기술정보 2012-07-25
ASN.1 컴파일러 ASN1C V6.7.2 Release 2014년 9월 9일
   ASN1C v6.7.2 has been released.  This is a maintenance release that fixed a number of issues.  We added support for safe memory copies as documented in a previous blog post.  We also added the capability to use the <isBigInteger/> configuration option to specify an arbitrary-sized integer type be used at the element level.  Previously, this could only be used at ..
2012-04-16
64-bit Windows Kits in ASN1C 6.5.1
 With ASN1C 6.5.1 separate 64-bit kits for Windows will be available. For a while versions of ASN1C prior to 6.5.0 have included 64-bit libraries for Visual Studio 2005, Visual Studio 2008, and Visual Studio 2010. The 64-bit Windows software development kits for ASN1C 6.5.1 include these libraries also, but they also include a 64-bit version of the ASN1C compiler itself, which is something that wasn’t offered ..
2012-04-16
최신 ASN1C v6.5 PER 옵션
ASN1C version 6.5 introduces the -perindef and -uper options for PER encoding. The -perindef option is used to specify that indefinite (fragmented) lengths must be supported in the generated code. Past versions of ASN1C added this support automatically, but it was observed that the performance overhead in supporting these lengths was significant and they were not used very often (PER messages tend to be small in ..
기술정보 2012-01-11
ASN.1 과 XML 솔류션
Objective Systems ASN1C compiler software allowed me to get down to the detail we needed... in fact the sample code was extremely helpful...” K.D. Advanced Decisions, Inc.
2012-01-11
1

(153-803) 서울시 금천구 가산동 371-59 신한이노플렉스 703호 (주)엔엘텔레콤
TEL: 02-813-7474 / FAX: 02-813-6355 / E-mail: sales1@nltelecom.com