
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.
