Asn1 Release Notes

Asn1 1.1.1

Known problems

The syntactic construct COMPONENTS OF is not
implemented.
Own Id: OTP-2515

ANY and ANY DEFINED BY are currently not
supported.
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

Asn1 1.1

Fixed errors and malfunctions

The BER decoder failed to decode certain nested data types
where IMPLICIT tags where involved.
This is now corrected.
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 asn1_EXT in the generated record.
This was a mistake and that field is now removed (conserns
both BER and BER).
Own Id: OTP-2724
Aux Id: seq 1148, OTP-2719

The decoder (both BER and PER) could not handle unnamed
bits of a BIT STRING if the type had any
named bits declared. This is now corrected and the unnamed
bits are returned as {bit,Pos} where Pos is the bit
position. The {bit,Pos} can be used as input to the
encoder too.
Own Id: OTP-2725
Aux Id: seq 1148,OTP-2719,OTP-2724

The functions asn1rt:decode and asn1ct:decode
did not always return {ok,Result} or
{error,Reason} as documented. This is now corrected.
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 ENUMERATED
with extensionmark
"..." did not work (crashed with a runtime error). This
has now been corrected. If an unknown enumerated value is
decoded (for an extensible enumerated type)
it is returned as {asn1_enum,Value} where
Value is an integer. Enumerated values in this format
are also accepted by the encoder.
ASN.1 modules containing
ENUMERATED with extensionmark should be
recompiled with the corrected
version of the compiler. The BER runtime functions are also
corrected.
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

Improvements and new features

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