From 0b340619c90d7b55189fcb06a46ff64e594d3a97 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= This document describes the changes made to the asn1 system
- from version to version. The intention of this document is to
- list all incompatibilities as well as all enhancements and
- bug-fixes for every release of the asn1 application. Each release of asn1
- thus constitutes one section in this document. The title of each
- section is the version number of asn1. Data in info/0 in generated code is moved to attribute
- asn1_info, thus vsn value remains the same if compiler
- options for asn1-spec differs but the generated code is
- the same. Own Id: OTP-6462 Dialyzer warnings on asn1 are removed, i.e. dead code
- removed. Own Id: OTP-6506 Now it is possible to use 'asn1config' and 'inline'
- options together. It is also possible to use 'inline' on
- a single file like:
- Own Id: OTP-6405 As a complement to the option "{inline,OutputFile}" it is
- now possible to use the option "inline". Then asn1 creates
- an output file with the name of the source .set file. Own Id: OTP-6314 When compiling an asn1 source that reference a type in
- another source the compiler uses the asn1db file of the
- other source to resolve the reference. It also tests
- whether the other source has been updated since the
- asn1db file was generated. This last test was to brutal
- in that it exits compilation when no source was found,
- even though a asn1db file existed. Changed behavior from
- a brutal exit to a warning. Own Id: OTP-6143 asn1 encoding failed on BIT STRING with constraint
- Own Id: OTP-5932 Race condition removed in server for variable names for
- generated code. Own Id: OTP-6111 Now exists a default function clause for table lookup of
- a table constraint. This causes a nice error instead of a
- crash. Did also remove some obsolete funs ({Mod,Fun}) in
- generated code. Own Id: OTP-5783 ASN1-compiler failed to derive a value out of an external
- reference in some certain cases, when compiling specs so
- that the spec with the reference was compiled before the
- spec with the defined value. Own Id: OTP-5812 Aux Id: seq10133 The documentation of how records of embedded types are
- named is extended and made clearer by examples and rules.
- The section "Naming of Records in .hrl Files" in the
- User's Guide is added. Own Id: OTP-5831 Aux Id: seq10133 The compiler failed to give right name to record/function
- of a parameterized type that was referenced through
- another instance of a parameterized type in another
- module. The fault occurred when modules were compiled in a
- certain order. Now the compiler resolves the name
- correctly. Own Id: OTP-5832 Aux Id: seq10133 The dynamic sort of SET OF values now correctly handles
- values encoded in the "ber_bin, der, optimize" mode, the
- value of a SET OF is a list of binaries. Own Id: OTP-5687 Bad code was generated for an INTEGER with value-range. If
- the value that was encoded had a lower bound with
- negative value it caused a crash. This bug is now
- removed. Own Id: OTP-5688 Aux Id: seq10049 Compiler now handles wrong include paths by returning an
- error if a referenced module is not available. Own Id: OTP-5689 The bug causing a runtime error when encoding a type
- defined by: Own Id: OTP-5710 Aux Id: seq10066 Better handling of filename paths Own Id: OTP-5701 Effective constraint for Own Id: OTP-5477 Aux Id: OTP-5511 Adjusted compiler so that functions in generated code
- only are exported once. Own Id: OTP-5509 Fixed the compiler failure when handling a value range
- constraint with an extension mark that had the Lower
- bound and/or Upper bound values as an external reference
- to a defined value. Own Id: OTP-5511 Aux Id: OTP-5466 Removed sorting of elements for SEQUENCE OF. It shall
- only be done in SET OF. Own Id: OTP-5602 Corrected code that generated code causing badarith
- warning. Own Id: OTP-5616 Compiler now correctly crashes when compiling bad values.
- Failed for instance on INTEGER value that was a reference
- to a defined value. Also solved problem with a union
- constraint on an INTEGER. Own Id: OTP-5457 Additional coverage of object set syntax. Own Id: OTP-5466 A bug due to representation of open_type values is now
- fixed. It could cause problem if one used the EXTERNAL
- type. Own Id: OTP-5302 Due to an internal error the same code could have been
- generated more than one time. This happened for the
- exclusive decode functionality. Own Id: OTP-5378 Empty objects caused problems. There was trouble when an
- object set referenced imported objects that in turn
- referenced imported types. Lacked support of
- SelectionType in object. All these have been attended. Own Id: OTP-5240 Now it is possible to inline asn1 run-time functionality
- in the module generated by the asn1 compiler. Thus, it
- will be only one module doing all encoding/decoding. Own Id: OTP-5243 A class that was referenced in two steps caused a
- compiler failure. It is now corrected. Own Id: OTP-5103 Optionally make it possible to get the un-decoded rest along with
- the return value. Compile with option undec_rest. Own Id: OTP-5104 An error due to unchecked referenced imported type resulted
- in missing tag in some table constraint cases. This error is
- now corrected. Error occurred during decode in
- Own Id: OTP-5022 When a referenced value in another module in turn referenced a
- defined value the compilation crashed. This is due to the new
- routines for compilation, that external references are resolved
- during compilation, and not by the order in which modules are
- compiled. This error is now corrected. Own Id: OTP-4970 Functionality for parameterized class is added. Parsing failures on
- WithSyntax spec is corrected. Own Id: OTP-4893 The failure due to Parameterized Type when parameter is an object
- set is corrected. Own Id: OTP-4894 Aux Id: OTP-4893 Object Identifier values with two components and the first was a
- value reference failed due to parsing conflicts. Now it is
- corrected. Own Id: OTP-4895 The erroneous comparison of file name and asn1 module name could
- cause compilation failure. The situation for this failure is rare,
- it requires that other processes modifies the compiled file during
- the compilation procedure. It is now fixed. Own Id: OTP-4944 Aux Id: seq8429 Selective decode was ignored when exclusive decode spec in asn1
- configfile was missing. Selective decode failed when the selected
- type was the top type. These bugs are now removed. Own Id: OTP-4953 Aux Id: seq8436 The test interface asn1ct:test/1,2,3 and asn1ct:value/2 failed for
- open type and EXTERNAL. The bug is now removed. Own Id: OTP-4955 Aux Id: seq8438) Two equal functions were generated for two components referencing
- the same type when they were picked by the action "parts". The bug
- is now fixed. Own Id: OTP-4957 Aux Id: seq8434 INTEGER with named number list and ENUMERATED can now be sub
- constrained with names from the names list. Own Id: OTP-4917 Now there is support for SelectionType (X 680 section 29) Own Id: OTP-4918 The compiler now resolves circular dependencies. When asn1 specs
- IMPORTS from each other so that there are circular dependencies. Own Id: OTP-4919 Now is the asn1 type UTF8String supported. For user instructions
- see documentation. Own Id: OTP-4965 The Own Id: OTP-4866 False encode of BIT STRING in PER (per_bin,optimize) is fixed. The error occurred when there was a type like BIT STRING (SIZE(C)) and C > 16. Own Id: OTP-4869 Functionality to handle parameterized object sets have been added. Own Id: OTP-4832 Bug causing duplicated function definitions using exclusive decode is removed. Own Id: OTP-4833) The race condition when loading asn1 driver is solved. Own Id: OTP-4835 A specialized decode, selective decode is now available. It decodes a chosen internal sub-type of a constructed type. Own Id: OTP-4856) Release of Asn1 1.4.2.1 on R7B, The functionality is the same, but
- the layer between the driver and the asn1 erlang code is different. ObjectDescriptor does now work as part of a sequence, set or choice. Own Id: OTP-4773 When a SEQUENCE that have extension mark was decoded inside a
- SEQUENCE OF it could cause decode error due to a failure in
- restbytes2. It is now corrected. Own Id: OTP-4791) Now the bug is fixed that caused the compiler crash on an untagged
- optional open type. Own Id: OTP-4792 The earlier exit caused by bad in-data is now fixed so it will
- return an {error,Reason} tuple.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Own Id: OTP-4797
- -Open type encoded with indefinite length is now correct decoded.
-Own Id: OTP-4798
-Now is absent optional open types handled correctly.
-Own Id: OTP-4799
-Now is the necessary functions available for sorting in run-time of - SET and SET OF components.
-Own Id: OTP-4809
-When a component in a SEQUENCE is a CHOICE (or reference to a CHOICE)
- and the SEQUENCE's component and one of the alternatives in the CHOICE
- have identical names, an error may occur if one doesn't use the
- 'optimized' versions of the compiler. In the older versions (
Own Id: OTP-4693
-Exclusive decode is enabled by a compiler option and a configuration - file. It makes it possible to leave parts of an ASN.1 encoded message - un-decoded.
-Own Id: OTP-4744
-The documentation about how extensibility is handled is now corrected.
-Own Id: OTP-4663
-Function in object now calls the exported function
-Own Id: OTP-4665
-Now is tags for ObjectClassFieldType analyzed correctly.
-Own Id: OTP-4666
-Now is the Default value for an ENUMERATED returned as the name from - the NamedList when decoding.
-Own Id: OTP-4633
-It was an internal failure when permitted alphabet constraint existed - together with for instance a size constraint. E.g. when a - referenced type is constrained by a size constraint and the defined - type in turn is constrained by a permitted alphabet constraint.
-Own Id: OTP-4559
-Record is generated in hrl file for a CHOICE with extension mark - that has an internal SEQUENCE/SET definition.
-Own Id: OTP-4560
-Now is the length of a SEQUENCE/SET OF correctly encoded/decoded (PER).
-Own Id: OTP-4590
-The problem with unordered decoded terms when a component is a - ObjectClassFieldType has been solved.
-Own Id: OTP-4591
-More complex definitions with TableConstraints where the SimpleTable - and ComponentRelation are on different levels is now fully - supported.
-Own Id: OTP-4631
-Each generated .erl file have now a function info/0 that returns - information about the used compiler version and options.
-Own Id: OTP-4373
-When compiling an ASN.1 module the compiler generates an Erlang module
- that is compiled by the Erlang compiler. Earlier it was not possible to
- add options to the final step, the Erlang compilation. By adding any
- option that is not recognized as a specific ASN.1 option it will be
- passed to the final step like:
Own Id: OTP-4491
-Earlier one couldn't multi file compile modules that had different - tagdefault, which now is possible. Equal Type/Value names in different - modules are resolved by renaming (concatenate type name and module - name): If two types with the same name T exist in module A and module B - they will get the new names TA and TB.
-(Own Id: OTP-4492)
-Aux Id: OTP-3983
-BER: Encode/decode of data have been significantly improved. By use of
- the compiler options
Own Id: OTP-4493
-Proper length encoding and padding implemented for a
(Own Id: OTP-4353)
-Bug in compiler, when an
(Own Id: OTP-4354)
-Internal error in check phase that caused crash on
-
(Own Id: OTP-4390)
-Tags for open types are handled according to
(Own Id: OTP-4395)
-(Aux Id: OTP-4390)
-Now gives the compiler an appropriate error report when exported - undefined types are detected.
-(Own Id: OTP-4129)
-The type
(Own Id: OTP-4161)
-(Aux Id: seq7165)
-In case of per and compact_bit_string the rightmost byte were erroneous - truncated when the rightmost bits of that byte were zeros. This is now - corrected.
-(Own Id: OTP-4200)
-Bad match of return-value from decode_length in skipvalue/3 has now been - fixed.
-(Own Id: OTP-4232)
-Now is decode of ENUMERATED handled correctly, when tagged EXPLICIT.
-(Own Id: OTP-4234)
-The compiler now parses and handles the ValueFromObject construct.
-(Own Id: OTP-4242)
-Now does the compiler handle the case when the object set in simple - table and componentrelation constraints is of a CLASS without a UNIQUE - field. In this case is the octets, which is assumed to be encoded, - encoded as an open type.
-(Own Id: OTP-4248)
-(Aux Id: OTP-4242)
-Compiler handles objects in AdditionalElementSetSpec in ObjectSetSpec, - i.e. the objects that are referred to after the ellipses in an object set.
-(Own Id: OTP-4275)
-Now are values with a component of type CHOICE encoded with indefinite - length correctly decoded.
-(Own Id: OTP-4358)
-The language constructs (from the old 1988 standard)
(Own Id: OTP-2741)
-(Aux Id: seq 1188)
-Now it is checked in run-time if a
(Own Id: OTP-4235)
-The ASN.1 types EXTERNAL,EMBEDDED PDV and CHARACTER STRING now have full support in the compiler.
-(Own Id: OTP-4247)
-A driver in C does the final job (complete) of the PER encoding when
- files are compiled with
(Own Id: OTP-4355)
-Encode and decode of PER encoding has been made faster by moving
- analysis done in run-time to compile-time. These optimizations are
- available by compiling ASN.1 files with options
(Own Id: OTP-4381)
-(Aux Id: OTP-4355)
-Now does the compiler check values (including referenced values), and - formats the value so it is suitable to use as input to encoding - functions.
-(Own Id: OTP-3277)
-(Aux Id: OTP-4103)
-Unnecessary external function calls in generated code are now generated - as internal function calls.
-(Own Id: OTP-4073)
-Now is Information Objects supported in BER encoding.
-(Own Id: OTP-3980)
-(Aux Id: OTP-3979 OTP-3978)
- -PER: A new option
(Own Id: OTP-4094)
- -Support for DER implemented. Used by flag +der when compiling. Include - the full BER encoding plus: sorting of SET components, sorting of - encoded elements in SET OF, full check of default values in SET and - SEQUENCE. See new documentation on DER in user_guide sections 1.3.1; - 1.4.11; 1.4.12; 1.4.14; 1.4.16 and 1.10, in the reference manual for - asn1ct.
-(Own Id: OTP-4103)
- -Do not generate record in .hrl file for SET types
-Own Id: OTP-4025
-Fixed internal error when using BIT STRINGs with Named Number List in combination with
Own Id: OTP-4026
-Aux Id: OTP-3982
-The atom 'com' can now be used in ENUMERATED as an EnumerationItem.
-Own Id: OTP-4037
-Aux Id: Seq 7036
-ber: Now it is possible (again) to encode data format "{Type,Value}" in a SEQUENCE OF RequestParameter, when RequestParameter is of type ENUMERATED. The {Type,Value} - notation is not recommended for use, it is redundant and exist only for very ancient backwards compatibility reasons. The "feature" might be removed in forthcoming versions.
-Own Id: OTP-4057
-Aux Id: Seq 7066
-A bug in the parser, that caused failure on COMPONENTS OF is now removed.
-Own Id: OTP-4058
-The compiler will now check that a value referenced by name - does exist.
-Own Id: OTP-3277
-BER:Decode of a type T ::= SEQUENCE OF C fails if C is encoded with indefinite length. - This is know corrected.
-Own Id: OTP-3811
-Aux Id: seq5040
-The new parser handles imports when one import ends with FROM, a modulename and a reference to a objectidentifier followed by imports from other modules.
-Own Id: OTP-3463
-The compiler did not check that a name mentioned as EXPORTED - actually is defined within the module. - This is now corrected.
-Own Id: OTP-3659
-Removed bug caused by use of nested indefinite length
-Own Id: OTP-3994
-Now supporting most common use of parameterization according to X.683
-(Own Id: OTP-3978)
-PER: Now supporting most common use of Information Objects according to X.681. A new parser has been implemented. The error messages due to syntax errors are slightly different than previous. TableConstraint part of X.682 now also supported.
-Own Id: OTP-3979
-New compiler option added:
Own Id: OTP-3981
-A more compact format of BIT STRING in Erlang is now available by use of the compiler option
Own Id: OTP-3982
-Now possible to merge many ASN.1 input files to one Erlang file by use of a configuration file that lists the ASN.1 files.
-Own Id: OTP-3983
-New documentation in User's Guide in section:
-3.1: New compile-time functions and options are described.
-4.6: New compact format of BIT STRING is described.
-4.8: Additional comments on character strings.
-7: New section describing ASN.1 Information Objects.
-8: New section describing Parameterization.
-Reference Manual/asn1ct New compile options are described.
-Own Id: OTP-3984
-Aux Id: OTP-3978, OTP-3979, OTP-3981, OTP-3982, OTP-3983
-Added the functionality to invoke ASN1Mod:encode (and decode).
-Own Id: OTP-3985
-Performance improvements by removing not necessary use of apply when calling asn1rt:encode. Also other general improvements.
-Own Id: OTP-3988
-The compiler does not check that an exported name actually exists in the ASN.1 module.
-Own Id: OTP-3659
-The compiler does not check that a value referenced by name does exist.
-Own Id: OTP-3277
-BER: The compiler does not take the extensions into account when checking if - the tags are unique in a SEQUENCE or SET.
-Own Id: OTP-3304
-PER: Trailing zeroes in a BIT STRING declared without named bits - should not be removed in the encodings.
-Own Id: OTP-3830
-Same as for 1.2.9.3.
-PER: Constraints are not propagated when types are - referring to each other. Example:
-
-
- TBCD-STRING ::= OCTET STRING
-
- LAI ::= TBCD-STRING (SIZE(3))
- The size constraint is not passed on during encode,decode - resulting in wrong encoding for PER , it is - coded with a length determinant which should not be there - when the length is fixed. For BER this does not matter because the constraints does - not affect the encodings.
-Own Id: OTP-3713
-The generated code gets wrong if there are several ENUMERATED fields in a SEQUENCE or SET, this is now corrected.
-Own Id: OTP-3796
-BER:Decode of a type T ::= SEQUENCE OF C fails if C is encoded with indefinite length. - This is know corrected.
-Own Id: OTP-3811
-The compiler does not check that an exported name actually exists in the ASN.1 module.
-Own Id: OTP-3659
-The compiler does not check that a value referenced by name does exist.
-Own Id: OTP-3277
-BER: The compiler does not take the extensions into account when checking if - the tags are unique in a SEQUENCE or SET.
-Own Id: OTP-3304
-This version supports soft upgrade from versions 1.2.6 1.2.7.
-In an ENUMERATED type like this:
-
-\011\011T ::= ENUMERATED { blue, green}
- The symbols was encoded/decoded with the wrong values, i.e in - reverse order. This is now corrected.
-Own Id: OTP-3700
-PER: OCTET STRING with Size constrained to a single value i.e fixed size - was treated wrong during encode and decode. This is now corrected.
-Own Id: OTP-3701
-There is now a new compiler option
The encode function then produces a - possibly nested list of binaries and integer lists. The decode function does - in this case require a single binary as input instead of a list. - The modules generated with this option require that you have an R7A or later - system, otherwise they will not compile and the runtime module asn1rt_ber_bin - can not be executed.
-The ber_bin option is not officially supported in this version (will be - in a later version) but is provided for those who want to try it. - It should be significantly faster at decode and is slightly faster at encode. - Exactly how performance differs between this binary approach and the - list approach depends highly on the type of input. - Another thing worth noting is that both approaches still have a lot of - solutions in common which can be improved a lot to gain even better - performance.
-BER: Encode/decode of extension components did not work properly. This is now corrected.
-Own Id: OTP-3395
-Aux Id:
-PER:The encode/decode of NULL as an open type has been corrected. An open type must always have a length of at least 1 byte even if the contained - value (e.g NULL) encodes to nothing.
-Own Id: OTP-3496
-Aux Id:
-BER:In the current implementation extension components of a SEQUENCE are required - to be present when they are specified as mandatory. This is an error, all extension - components are "optional" even if they are not specified to have the OPTIONAL or - DEFAULT property. This is now corrected.
-Own Id: OTP-3278
-The ASN.1 language feature
Own Id: OTP-2515
-The encoding and decoding of ENUMERATED and - INTEGER with NamedNumbers is made more efficient and thus - faster in runtime.
-Own Id: OTP-3464
-Aux Id:
-Added support for encode/decode of open type which is - constrained to a specific type. Previously the value of - an open type had to be a list of octets, but now the Erlang - representation of the specific type used in the constraint - is used both as input to encode and as output from decode.
-Own Id: OTP-3569
-Aux Id:
-PER: GeneralString, GraphicalString etc. i.e all strings - that are not so called "known-multiplier character - string types" are now supported by the runtime - encode/decode functions.
-Own Id: OTP-3573
-Aux Id:
-The ASN.1 language feature
Own Id: OTP-2515
-The compiler does not check that a value referenced by name does exist.
-Own Id: OTP-3277
-BER:In the current implementation extension components of a SEQUENCE are required - to be present when they are specified as mandatory. This is an error, all extension - components are "optional" even if they are not specified to have the OPTIONAL or - DEFAULT property.
-Own Id: OTP-3278
-BER: The compiler does not take the extensions into account when checking if - the tags are unique in a SEQUENCE or SET.
-Own Id: OTP-3304
-This version supports soft upgrade from versions 1.1.1, 1.1.5 and 1.1.6.
- Two new runtime modules
BER: SEQUENCEs encoded with indefinite length was not correctly decoded. - This in now corrected.
-Own Id: OTP-3352
-Aux Id: Seq 4100
-The compiler now detects multiple definitions of values and types and reports this as - an error. Previously this was detected when the generated Erlang module was compiled.
-Own Id: OTP-3105
-BER: An error regarding encoding of
Own Id: OTP-3169
-BER: Decoding of
Own Id: OTP-3170
-BER: Encoding and decoding of
Own Id: OTP-3202
-Aux Id: Seq3745
-BER: The primitive/constructed bit in the tag byte of an encoding - is not correct when it comes to user defined tags. - For example in
-
- T ::= [2] SEQUENCE { a BOOLEAN}
- the tag 2 does not get the constructed bit set which it should. - This is now corrected.
-Own Id: OTP-3241
-The decoder can now detect if there are unexpected bytes
- remaining when all components of a sequence are decoded.
- The decoder will then return
Own Id: OTP-3270
-Values of type
Own Id: OTP-3280
-PER:The encode/decode functions could not handle integers with - a range greater than 16#7ffffff. This limit is now removed.
-Own Id: OTP-3287
-PER: The encoding/decoding of the length for a SET OF/SEQUENCE OF - was wrong if there was a size constraint. This is now corrected.
-Own Id: OTP-3291
-PER: Encoding of a constrained INTEGER (range > 16 k) was wrong for - the value 0. This is now corrected.
-Own Id: OTP-3306
-The ASN.1 module name and the filename where the ASN.1 - specification resides must match each other (has always been the - case). This is now checked by the compiler. The check requires that - the names match in a case or case insensitive way depending on the - characteristics for the current system.
-Own Id: OTP-1843
-PER: Encode/decode of an extension value (i.e not within the root set) for
-
Own Id: OTP-2930
-Unnecessary printouts from the compiler are removed. - The compiler version and the compiler options are now - printed to stdout.
-Own Id: OTP-3276
-In order to better suite the use of ASN.1 in embedded systems only
- the modules needed in runtime are now listed in the
Own Id: OTP-3279
-The compiler now supports extensionmarker in constraint specifications. - Example:
-
-INTEGER (0..10, ...)
- In previous version this was reported as a syntax error.
-Own Id: OTP-3281
-A very limited part of ITU-T recommendation X.681 - Abstract Syntax Notation One (ASN.1): Information - object specification is now implemented. Specifically \011 - TYPE IDENTIFIER is recognized by the compiler.
-Own Id: OTP-3325
-Parameterization of ASN.1 specifications (ITU-T X.683) is now - supported to a limited extent.
-Own Id: OTP-3326
-BER Encoding and decoding of
Own Id: OTP-3202
-Aux Id: Seq3745
-The syntactic construct
Own Id: OTP-2515
-Own Id: OTP-2741
-Aux Id: seq 1188
-Multiple definitions of the same Type or Value is not detected - by the compiler. The error occurs when the generated Erlang - module is compiled.
-Own Id: OTP-3105
-The primitive/constructed bit in the tag byte of an encoding - is not correct when it comes to user defined tags. - For example in
-
- T ::= [2] SEQUENCE { a BOOLEAN}
- the tag 2 does not get the constructed bit set which it should. - This is now corrected.
-Own Id: OTP-3241
-The BER decoder failed to decode certain nested data types
- where
Own Id: OTP-2719
-Aux Id: seq 1148
-The handling of types with extension marker "..." is corrected.
- Earlier each SEQUENCE and SET with an extension marker got an
- extra field named
Own Id: OTP-2724
-Aux Id: seq 1148, OTP-2719
-The decoder (both BER and PER) could not handle unnamed
- bits of a
Own Id: OTP-2725
-Aux Id: seq 1148,OTP-2719,OTP-2724
-The functions
Own Id: OTP-2730
-Aux Id: seq 1158
-The compiler did not accept CHOICE types as components - of a SEQUENCE or SET when - the modules tag default was IMPLICIT. - Example:
-
-C ::= CHOICE { ......}
-A ::= SEQUENCE {
-a [1] C, -- This was not accepted
-.....
- This was an error - caused by a misinterpretation of the ASN.1 standard. This - is now corrected.
-Own Id: OTP-2731
-Aux Id: seq 1163
-When decoding a SEQUENCE A which contains an OPTIONAL component - b which is a SEQUENCE with mandatory components, the decoder - does not detect as an error that a mandatory component of b - is missing. The same error could occur also in other cases - with nested types and optional components of SEQUENCE or SET. - This is now corrected.
-Own Id: OTP-2738
-Aux Id: seq 1183
-BER Encoding and decoding of
Own Id: OTP-2951
-Aux Id: Seq 1446 OTP-2929
-The compiler does now accept all valid value notations - for the OBJECT IDENTIFIER type. The generated code for - those values is also corrected.
-Own Id: OTP-3059
-The code generated for BER is significantly enhanced resulting - in less code and around 300% better performance in runtime - for the encoding of complex ASN.1 values. The performance of - decoding is unchanged.
-Own Id: OTP-2806
-The
Own Id: OTP-2640
-The encoding of integers in BER did not comply with the
- standard for all values. The values was not encoded
- in the minimum number of octets as required. This is
- now corrected in the runtime module
Own Id: OTP-2666
-The compiler now generates explicit exports directives for - all generated - functions that should be exported (instead of -compile(export_all)). - This eliminates the warnings from the Erlang compiler when - compiling the - generated file.
-Own Id: OTP-1845
-The decoding of a BER encoded SEQUENCE with optional component - of type SEQUENCE (also with optional components) could result - in an error or wrong result if the tags are equal.
-Own Id: OTP-2226
-The encoding of (PER) SEQUENCE with extensionmark was wrong. - This is now corrected.
-Own Id: OTP-2349
-The asn1 compiler now detects the use of an implicit tag before
Own Id: OTP-1844
-An OPTIONAL CHOICE embedded in SEQUENCE when BER coding - caused an error when generating decode code. This is now - corrected.
-Own Id: OTP-1857
-Aux Id: OTP-1848
-This is the first release of the ASN1 application. This version is - released for beta-testing. Some functionality will be added until the - 1.0 version is released. See the release notes for the latest version - for the exact details about new features. A list of missing features - and restrictions can be found in the chapter below.
- -The encoding rules BER and PER (aligned) is supported. PER (unaligned) IS NOT SUPPORTED.
-NOT SUPPORTED types
NOT SUPPORTED types
NOT SUPPORTED type
The code generation support for value definitions in the ASN.1 notation is very limited - (planned to be enhanced).
-The support for constraints is limited to:
-SizeConstraint SIZE(X)
-SingleValue (1)
-ValueRange (X..Y)
-PermittedAlpabet FROM (but not for BMPString and UniversalString when generating PER).
-Complex expressions in constraints is not supported (planned to be extended).
-The current version of the compiler has very limited error checking:
-Stops at first syntax error.
-Does not stop when a reference to an undefined type is found , - but prints an error message. Compilation of the generated - Erlang module will then fail.
-A whole number of other semantical controls is currently - missing. This means that the compiler will give little - or bad help to detect what's wrong with an ASN.1 - specification, but will mostly work very well when the - ASN.1 specification is correct.
-The maximum INTEGER supported in this version is a - signed 64 bit integer. This limitation is probably quite - reasonable. (Planned to be extended).
-Only AUTOMATIC TAGS supported for PER.
-Only EXPLICIT and IMPLICIT TAGS supported for BER.
-The compiler supports decoding of BER-data with indefinite - length but it is not possible to produce data with indefinite - length with the encoder.
-The Asn1 application - contains modules with compile-time and run-time support for ASN.1.
-There are also release notes for
-