
0.9.7:	2004-Oct-03

	* Fixed unber limits controlling logic.
	* Removed C99'izm from the x509dump, now understood by older compilers.
	* Enhanced UTF8String constraint validation, now it checks
	  for the minimal encoding length; API of UTF8String_length() changed.
	* Finished CANONICAL-XER implementation by adding SET and SET OF
	  canonical ordering support.

0.9.6:	2004-Sep-29

	* Added several security firewalls: decoder's stack usage control
	  and the stricter checking of the TLV length.
	* Implemented BASIC-XER encoding support (X.693).
	* Implemented unber(1) and enber(1) for BER<->XML translation.
	* Implemented CGI for online ASN.1 compilation (asn1c/webcgi).
	* Implemented the sample X.509 decoder (./examples/sample.source.PKIX1).
	* NamedType is now supported for SET OF/SEQUENCE OF type.
	* Added -fno-constraints option to asn1c, which disabled generation of
	  ASN.1 subtype constraints checking code.
	* Added ASN1C_ENVIRONMENT_VERSION and get_asn1c_environment_version().
	* Fixed ANY type decoding (Severity: high, Secruity impact: low).
	* Fixed BER decoder restartability problem with certain primitive
	  types (BOOLEAN, INTEGER, and REAL). The problem occured when the
	  encoding of such type is split between several bytes.
	  (Severity: high, Security impact: low)
	* Support for cross-referencing type definitions (updated ./tests/43-*).
	* Fixed pretty-printing of the REAL type. Added lots of test cases.
	* Renamed asn1_* into asn_* in function and type names.
	* Updated documentation.

0.9.5:	2004-Sep-17

	* Fixed CER (common BER) decoder code. See check-25.c/VisibleString
	  case for details. X.690 specifies that inner structures in BER
	  encoding must be tagged by stripping off the outer tag for each
	  subsequent containment level. See also X.690: 8.21.5.4 and
	  the "Spouse" case in A.3.
	  (Severity: medium, Security impact: low)
	* Added converters between any generic type and the ANY type.
	* Parser fixed: Information Object Class fields may be taged.
	* Parser fixed: tagged types inside SEQUENCE OF/SET OF support.
	* Improved DEFAULT Value parsing and pretty-printing.
	* Condition on distinct tags checker was incorrectly dealing with
	  tagged CHOICE types. Fixed. Modified tests/37-indirect-choice-OK.asn1
	* Improved type name generation code ("struct foo" vs "foo_t").
	* Fixed constraint checking code incorrectly dealing with imported
	  types with constraint values defined in other modules.
	* Real REAL support! (Haven't tested denormals support yet!)
	  See skeletons/tests/check-REAL.c

0.9.4:	2004-Sep-10

	* More support for recursive type definitions.
	* Explicit support for ANY type decoding.
	* Refactored tags processing code.
	* Fixed constraints checking code: non-exploitable buffer overflow.
	  (Severity: medium, Security impact: low)

0.9.3:	2004-Sep-07

	* Extended constraints support in parametrized types.
	* Better support for parametrization and constraints handling.
	* Better handling of recursive type definitions.
	* Added support for ANY type.

0.9.2:	2004-Aug-24

	* More flexible subtype constraints handling, with relaxed
	  PER visibility rules for actual constraints checking code generator.
	* Indirect references in constraints resolver code fixed.
	* Avoided compilation warning on gcc 3.3.3 systems.
	* Better ValueSet printing.

0.9.1:	2004-Aug-23

	* Documentation updated: doc/asn1c-usage.pdf
	* Fixed OBJECT IDENTIFIER human-readable printing.
	  Reported by <siden@ul-gsm.ru>.

0.9:	2004-Aug-23

	* Reworked subtype constraints handling, aiming at PER-applicability.
	* BOOLEAN and NULL are now implemented in terms of native int type.
	* Compiler now links in only necessary skeleton files.
	* -t option added to asn1c to ease manual BER/CER/DER decoding.
	* Added support COMPONENTS OF construct.
	* Numerous parser fixes and enhancements.
	* Better constraint failure reporting.

0.8.19:	2004-Aug-18

	* Fixed BER encoder (problem encoding large tag values)
	  (Severity: medium, Security impact: low)

0.8.18:	2004-Aug-12

	* Parser: fixed multiple IMPORTS problem (incorrect assertion).
	* Parser: constraints extensibility parsing fix.

0.8.17:	2004-Aug-11

	* Improved compiler output: duplicate #includes eliminated.
	* Win32 portability fixes.
	* More compatibility with C++ or non-GCC compilers.

0.8.16:	2004-Jul-22

	* Fixed application-level problem in SET OF/SEQUENCE OF array cleanup.
	  (Severity: medium, Security impact: low)
	* Improved asn_GT2time() and added asn_time2{GT,UT}() functions.
	* BIT STRING pretty-printing.

0.8.15:	2004-Jul-20

	* Fixed parser: memory leak in free_struct code for SET OF/SEQUENCE OF.
	  (Severity: high, Security impact: medium)
	* Fixed parser: invalid memory reference in code constructing tags.
	  (Test case 48) (Severity: high, Security impact: medium)
	  When encoding data for certain ASN.1 specifications containing
	  explicit tags, the tag is always written incorrectly due to
	  incorrect memory reference. The encoding will almost always produce
	  unparseable data and might well reference unmapped region so program
	  would produce segmentation violation. Fortunately, memory is
	  read, not written, so remote exploits cannot execute arbitrary
	  code and triggering unmapped memory reference is highly unlikely
	  even it attacker knows the code (basically, the compiler should place
	  asn1_DEF_... right before the end of the mapped memory region, which
	  is extremely rare).
	* Improved INTEGER type printing.

0.8.14:	2004-Jun-30

	* Fixed compiler: extensibility of CHOICE and SET type has not been
	  taken into account during table construction.
	  (Test case 47) (Severity: high, Security impact: low)

0.8.13:	2004-Jun-29

	* Fixed compiler: the skip values for IMPLICIT tagging were broken
	  in some complex cases where one type is defined using another.
	  (Test case 46) (Severity: medium, Security impact: low).
	* Added -fknown-extern-type command line parameter to asn1c.
	* Removed -N command line flag and underlying functionality
	  to honor KISS principle.

0.8.12:	2004-Jun-17

	* RELATIVE-OID and OBJECT IDENTIFIER encoders/decoders are not bound
	  anymore to an integer type of specific size (unsigned long). The
	  size of an integer must be provided explicitly.
	  See {OBJECT_IDENTIFIER|RELATIVE_OID}_{get|set}_arcs().
	* SEQUENCE BER decoder fixed again for complex CHOICE case
	  (Test case 44) (Severity: medium, Security impact: low).

0.8.11:	2004-Jun-05

	* Enforced stricter conformance with C standards.
	* SEQUENCE BER decoder is now equipped with the sorted map
	  in case of complex CHOICE descendants. Test case 44 created.

0.8.10:	2004-Jun-02

	* Added const qualifier where necessary.
	* Changed position of outmost_tag fetcher within asn1_TYPE_descriptor_t
	  structure.

0.8.9:	2004-May-26

	* Added *_{get|set}_arcs_*() functions for OBJECT IDENTIFIER
	  and RELATIVE-OID, together with test cases.

0.8.8:	2004-May-09

	* Introduced subtype constraints support (incomplete!).
	* Fixed compiler. If the last member of the SEQUENCE is OPTIONAL
	  and absent in the encoding, and the type is extensible (...) or
	  EXTENSIBILITY IMPLIED flag is set, then the structure could not
	  be correctly decoded. (Severity: high, Security impact: low).
	* Compiler: fixed recursive ASN.1 types inclusion (Severity: low,
	  Security impact: none).
	* Parser: IMPORTS/FROM fixes, now allowing multiple sections.
	* Code compiled and checked on PowerPC (@MacOS X). No major portability
	  issues experienced.

0.8.7:	2004-Apr-11	T-version-0-8-7

	* Fixed SEQUENCE BER decoder: if the last member of the SEQUENCE is
	  OPTIONAL and absent in the encoding, RC_FAIL was returned instead
	  of RC_OK (Severity: high, Security impact: low).
	* Added test case to check the above problem.
	* Added test case to check -fnative-integers mode.

0.8.6:	2004-Apr-03	T-version-0-8-6

	* Fixed compiler output for embedded ASN.1 structures.

0.8.5:	2004-Mar-28	T-version-0-8-5

	* Fixed ber_tlv_length() computation problem (Severity: blocker,
	  Security impact: none).
	  Reported by <vss@high.net.ru>

0.8.4:	2004-Mar-22

	* Removed RC_ITAG enumeration element from BER decoder.
	  This return code did not have much practical value.

0.8.3:	2004-Mar-14	T-version-0-8-3

	* Fixed SET::BER decoder: restart after reaching a buffer boundary
	  weas broken (Severity: blocker, Security impact: low).
	* Fixed OCTET STRING::BER decoder: restart after reaching a buffer
	  boundary was broken (Severity: blocker, Security impact: low).
	  Reported by <vss@high.net.ru>
	* Added test cases to check decoders restartability.
	* Slightly more general INTEGER2long decoder.
	* Allowed nested /* C-type */ comments, as per X.680:2002.

0.8.2:	2004-Mar-01	T-version-0-8-2

	* Fixed SEQUENCE BER decoder: an OPTIONAL element was required, where
	  should not have been (Severity: major; Security impact: low).
	* Fixed print_struct pointer inheritance.
	* Added -fno-c99 and -funnamed-unions

0.8.1:	2004-Feb-22

	* -R switch to asn1c: Omit support code, compile only the tables.
	* Introduced NativeInteger pseudotype.
	* Corrected the informal print_struct()'s output format.

0.8.0:	2004-Feb-03	T-version-0-8-0

	* Some documentation is created (a .pdf and a short manual page).
	* Last touches to the code.

0.7.9:	2004-Feb-01	T-version-0-7-9

	* Human readable printing support.
	* Support for implicit (standard) constraints.

0.7.8:	2004-Jan-31

	* SET now rejects duplicate fields in the data stream.

0.7.7:	2004-Jan-25

	* Added types: GeneralizedTime and UTCTime.

0.7.6:	2004-Jan-24	T-version-0-7-6

	* DER encoding of a SET OF now involves dynamic sorting.

0.7.5:	2004-Jan-24	T-version-0-7-5

	* DER encoding of a SET with untagged CHOICE
	  now involves dynamic sorting.

0.7.0:	2004-Jan-19	T-version-0-7-0

	* A bunch of DER encoders is implemented.

0.6.6:	2004-Jan-11

	* Implemented CHOICE decoder.
	* Implemented destructors support.

0.6.5:	2004-Jan-03

	* Implemented SET decoder.
	* Implemented SET OF and SEQUENCE OF decoders.

0.6.4:	2003-Dec-31

	* Implemented BOOLEAN, NULL, ENUMERATED decoders.
	* Implemented OCTET STRING decoder.
	* Implemented BIT STRING decoder.

0.6:	2003-Dec-30

	* First decoding of a BER-encoded structure!

0.5:	2003-Dec-28

	* Framework and most of the compiler backbone coding done.

0.1:	2003-Nov-28

	* Programming started.
