]> Cypherpunks.ru repositories - pyderasn.git/blobdiff - doc/news.rst
Raise copyright years
[pyderasn.git] / doc / news.rst
index e39ef706ed87602699803f660ee241f796ca275c..92f0646d26c713c171976bcf27607b3f11faa949 100644 (file)
@@ -1,9 +1,261 @@
 News
 ====
 
-.. _release4.8:
+.. _release9.3:
 
-4.8
+9.3
+---
+* CommonString's ``.memoryview()`` raises ValueError now for
+  friendliness with linters
+
+.. _release9.2:
+
+9.2
+---
+* ``keep_memoryview`` context option appeared, respected by OctetString
+  and Any objects during DER decoding. If set, then their internal
+  values will keep memoryview reference instead of full bytes copy
+* Correspondingly OctetString and Any have ``.memoryview()`` method
+
+.. _release9.1:
+
+9.1
+---
+* ``.totzdatetime()`` appeared in UTCTime and GeneralizedTime,
+  explicitly setting UTC timezone information.
+  Optional ``dateutils.tz`` library is required for that
+
+.. _release9.0:
+
+9.0
+---
+* Drop Python 2.7 support. No ``six`` dependency anymore
+
+.. _release8.4:
+
+8.4
+---
+* Fix previous release's style breaking in ASN.1 browser
+
+.. _release8.3:
+
+8.3
+---
+* Append offsets to tree elements in ASN.1 browser for ease of navigation
+
+.. _release8.2:
+
+8.2
+---
+* Trivial documentation fixes
+
+.. _release8.1:
+
+8.1
+---
+* Workability under Microsoft Windows OS should be restored: it has
+  different ``mmap`` constants and implementation, preventing
+  ``pyderasn`` importing
+
+.. _release8.0:
+
+8.0
+---
+* **Incompatible** change: explicitly check that only naive datetime
+  objects are used for UTCTime and GeneralizedTime, raise an error
+  otherwise. Previously they silently ignored ``tzinfo``
+
+.. _release7.7:
+
+7.7
+---
+* Strictly check that tag's long encoded form does not contain leading zero
+  (X.690 8.1.2.4.2 (c))
+* Strictly check that tag's long form is used in expected way for small values
+  (X.690 8.1.2.2)
+
+.. _release7.6:
+
+7.6
+---
+* Proper strict alphabet validation of VisibleString
+* VisibleString and IA5String also have ``allowable_chars`` property
+* Fixed TeletexString, T61String use ``iso-8859-1`` encoding (instead of
+  ``ascii``), because they are 8-bit encodings
+
+.. _release7.5:
+
+7.5
+---
+* Also print full TLVlen in ASN.1 browser
+
+.. _release7.4:
+
+7.4
+---
+
+* Fix DEFINED BY pprinting when invoking as __main__ module
+* Integer has ``tohex()`` for getting hexadecimal representation of its value
+* ``hexdump()`` (``hexdump -C`` like output) and ``ascii_visualize()``
+  (visualize ASCII printable characters, like in ``hexdump -C``) pretty
+  printing functions appeared
+* Experimental ASN.1 interactive terminal browser (``--browse`` and
+  ``pyderasn.browse``).
+  You will need `urwid package <http://urwid.org/>`__ to use it
+
+.. _release7.3:
+
+7.3
+---
+
+* SEQUENCE/SET fully performs default value existence validation in
+  evgen mode, by the cost of DEFAULTed value full decoding. That should
+  not be the problem, as DEFAULTs are relatively small in practice. Now
+  evgen mode has the same DER validation strictness as an ordinary one
+
+.. _release7.2:
+
+7.2
+---
+
+* Restored workability of some command line options
+* 2-pass DER encoding mode with very little memory footprint
+
+.. _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:
+
+6.0
+---
+* ``.copy()`` method removed: ``copy.copy()`` is preferred way to copy
+  objects now
+* 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``
+  properties
+* ``.hexencode()``, ``.hexdecode()`` and ``.hexdecod()`` methods
+  appeared, working with hexadecimal encoded data
+
+.. _release5.6:
+
+5.6
+---
+* Convenient ``.decod()`` method, that raises if tail is not empty
+* 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
+
+.. _release5.5:
+
+5.5
+---
+* PEP-396 compatible module's ``__version__``
+
+.. _release5.4:
+
+5.4
+---
+* Do not shadow underlying DecodeError during decoding of optional
+  sequence's field
+
+.. _release5.3:
+
+5.3
+---
+* Forbid any later GNU GPL version autousage (project's licence now is
+  GNU LGPLv3 only)
+* Fix ``defines_by_path`` context option usage example
+
+.. _release5.2:
+
+5.2
+---
+* Fix fallbacked ``colored()`` function workability,
+  if no ``termcolor`` is installed
+
+.. _release5.1:
+
+5.1
+---
+* Fix empty ``--oids`` workability
+
+.. _release5.0:
+
+5.0
+---
+* Ability to specify multiple OID mappings for pprinted output
+  (``oids`` keyword argument is renamed to ``oid_maps``)
+
+.. _release4.9:
+
+4.9
 ---
 * Minor decode speed improvements
 * Much faster UTCTime/GeneralizedTime decoders
@@ -248,7 +500,7 @@ utility.
 
 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