X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=doc%2Ffeatures.rst;h=9da0659103fc081a033085760f4fffd38a3cb969;hb=d18fe82928445b631b831cf72affa0d9f3707208;hp=d23729f12096bede25e86d07bb520b570257397b;hpb=2d45a224943c79e95cbd4913b44420788bc6c17d;p=pyderasn.git diff --git a/doc/features.rst b/doc/features.rst index d23729f..9da0659 100644 --- a/doc/features.rst +++ b/doc/features.rst @@ -8,9 +8,9 @@ Features * Size :ref:`constraints ` checking * Working with sequences as high level data objects with ability to (un)marshall them -* Python 2.7/3.5 compatibility +* Python 2.7/3.5/3.6 compatibility -Why yet another library? `pyasn1 `__ +Why yet another library? `pyasn1 `__ had all of this a long time ago. PyDERASN resembles it in many ways. In practice it should be relatively easy to convert ``pyasn1``'s code to ``pyderasn``'s one. But additionally it offers: @@ -26,6 +26,8 @@ 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: @@ -43,7 +45,7 @@ There are drawbacks: * 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'))