]> Cypherpunks.ru repositories - pyderasn.git/blobdiff - doc/features.rst
Field names in SEQUENCE's repr
[pyderasn.git] / doc / features.rst
index d2d1734eb779b6545132b698bf65344d281f66d9..463586ef80336f5b9a0de5e48b135bb328beb219 100644 (file)
@@ -1,6 +1,7 @@
 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)
@@ -25,25 +26,26 @@ practice it should be relatively easy to convert ``pyasn1``'s code to
   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:
 
     :``python -m pyderasn revoke.crl``:
-     ~2 min
+     ~2 min (``pyderasn == 1.0``)
     :``python -m pyderasn --schema path.to.CertificateList revoke.crl``:
-     ~38 sec
+     ~38 sec (``pyderasn == 1.0``)
     :``pyasn1.decode(asn1Spec=pyasn1.CertificateList())``:
      ~22 min (``pyasn1 == 0.2.3``)
 
 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'))