News
====
+.. _release7.1:
+
+7.1
+---
+
+* README updating
+
+.. _release7.0:
+
+7.0
+---
+* Fixed invalid behaviour where SET OF allowed multiple objects with the
+ same tag to be successfully decoded
+* Fixed possibly invalid SET DER encoding where objects were not sorted
+ by tag, but by encoded representation
+* ``Any`` does not allow empty data value now. Now it checks if it has
+ valid ASN.1 tag
+* ``SetOf`` is not treated as ready, if no value was set and minimum
+ bounds are greater than zero
+* ``Any`` allows an ordinary ``Obj`` storing, without its forceful
+ encoded representation storage. That is required for CER encoding
+ mode, where we do not know in advance what encoding will be used
+* ``ObjectIdentifier`` stores values as C unsigned long integer,
+ forbidding storage of huge integers, that must not be a problem in
+ practice
+* Initial support for so called ``evgen_mode``: event generation mode,
+ where no in-memory objects storing happens, giving ability to process
+ ASN.1 data without fully parsing it first. ``python -m pyderasn`` has
+ ``--evgen`` mode switcher
+* Useful ``agg_octet_string`` that is able to streamingly decode string
+ from events of ``evgen_mode``, allowing strings retrieving without
+ copying them to memory first
+* Initial experimental CER encoding mode, allowing streaming encoding of
+ the data directly to some writeable object
+* Ability to use mmap-ed memoryviews to skip files loading to memory
+* Ability to use memoryview as an input for \*Strings. If they are
+ mmap-ed, then you can encode any quantities of data streamingly
+ without copying to memory
+
+.. _release6.3:
+
+6.3
+---
+* Fixed workability under Python 3.5. Previously only 2.7 and 3.6
+ versions were tested
+
+.. _release6.2:
+
+6.2
+---
+* Python ``int()``'s accepts even more various non-decimal characters
+ than expected. Make validation fully strict in UTCTime and
+ GeneralizedTime, without relying on ``int()``
+
.. _release6.1:
6.1
---
* UTCTime and GeneralizedTime allowed values to have plus sign in them,
passing int() check successfully. Prohibit that incorrect behaviour
+* UTCTime and GeneralizedTime BER decoding support
+* Faster UTCTime and GeneralizedTime decoding, and slightly better
+ overall performance
+* Workability under Cython
* Explicitly Check that all ObjectIdentifier arcs are non-negative
.. _release6.0:
* Copies made previously with ``.copy()`` lacked ``.defined`` field,
now they are not
* All objects are friendly to ``pickle`` libraries
-* ``PrintableString`` has ``allow_asterisk`` and ``allow_ampersand``
+* PrintableString has ``allow_asterisk`` and ``allow_ampersand``
properties
* ``.hexencode()``, ``.hexdecode()`` and ``.hexdecod()`` methods
appeared, working with hexadecimal encoded data
* Control characters (like newlines) of text fields in pprinted output
are escaped
* Ability to allow asterisk and ampersand characters
- (``allow_asterisk``, ``allow_ampersand`` kwargs) in
- ``PrintableString``, that unfortunately could be met
- in X.509 certificates
+ (``allow_asterisk``, ``allow_ampersand`` kwargs) in PrintableString,
+ that unfortunately could be met in X.509 certificates
.. _release5.5:
5.4
---
-* Do not shadow underlying ``DecodeError`` during decoding of optional
+* Do not shadow underlying DecodeError during decoding of optional
sequence's field
.. _release5.3:
1.5
---
-* Generic decoder's scheme and pretty printer
+* Generic decoder's schema and pretty printer
(:py:func:`pyderasn.generic_decoder`) can be used in libraries
* Ability to specify :ref:`defines_by_path <defines_by_path_ctx>`
during command line invocation