Features
========
+* BER/CER/DER decoding, DER 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)
settable values, even when they are inherited
* However they do not require tags matching: IMPLICIT/EXPLICIT tags will
be set automatically in the given sequence
+* Descriptive errors, like ``pyderasn.DecodeError: UTCTime
+ (tbsCertificate.validity.notAfter.utcTime) (at 328) invalid UTCTime format``
* ``__slots__`` friendliness
* Could be significantly faster. For example parsing of CACert.org's CRL
under Python 3.5.2:
There are drawbacks:
* No old Python versions support
-* No BER/CER support
* PyDERASN does **not** have object recreation capable ``repr``-s::
pyderasn>>> repr(algo_id)
- AlgorithmIdentifier SEQUENCE[OBJECT IDENTIFIER 1.3.14.3.2.26, [UNIV 5] ANY 0500 OPTIONAL]
+ AlgorithmIdentifier SEQUENCE[algorithm: OBJECT IDENTIFIER 1.3.14.3.2.26; parameters: [UNIV 5] ANY 0500 OPTIONAL]
pyasn1>>> repr(algo_id)
AlgorithmIdentifier().setComponents(ObjectIdentifier('1.3.14.3.2.26'), Any(hexValue='0500'))