Features
========
-* BER/CER/DER decoding, DER encoding
+* BER/CER/DER decoding, strict DER validation, DER/CER encoding
* Basic ASN.1 data types (X.208): BOOLEAN, INTEGER, BIT STRING, OCTET
STRING, NULL, OBJECT IDENTIFIER, ENUMERATED, all strings, UTCTime,
GeneralizedTime, CHOICE, ANY, SEQUENCE (OF), SET (OF)
(un)marshall them
* Python 2.7/3.5/3.6 compatibility
* Aimed to be complaint with `X.690-201508 <https://www.itu.int/rec/T-REC-X.690-201508-I/en>`__
+* Streaming decoding and encoding capabilities, allowing working with
+ very small memory footprint
Why yet another library? `pyasn1 <http://snmplabs.com/pyasn1/>`__
had all of this a long time ago. PyDERASN resembles it in many ways. In
structures allow BER encoding for the whole message, except for
``SignedAttributes`` -- you can easily verify your CMS satisfies that
requirement
+* Ability to use mmap-ed files, memoryviews, iterators and CER encoder
+ dealing with the writer, giving ability to create huge ASN.1 encoded
+ files without storing all the data in the memory first
+* Ability to decode files in event generation mode, without the need to
+ keep all the data and decoded structures (that takes huge quantity of
+ memory in all known ASN.1 libraries) in the memory
+* ``__slots__``, ``copy.copy()`` friendliness
+* Workability with ``pickle``
+* `Cython <https://cython.org/>`__ compatibility
* Extensive and comprehensive
`hypothesis <https://hypothesis.readthedocs.io/en/master/>`__
driven tests coverage. It also has been fuzzed with
automatically set required tags)
* Descriptive errors, like ``pyderasn.DecodeError: UTCTime
(tbsCertificate:validity:notAfter:utcTime) (at 328) invalid UTCTime format``
-* ``__slots__``, ``copy.copy()`` friendliness
-* Workability with ``pickle``
-* `Cython <https://cython.org/>`__ compatibility
* Could be significantly :ref:`faster <performance>` and have lower memory usage
* :ref:`Pretty printer <pprinting>` and
:ref:`command-line decoder <cmdline>`, that could