From: Sergey Matveev Date: Sun, 16 Feb 2020 18:41:01 +0000 (+0300) Subject: README update and CER/BER mentioning X-Git-Tag: 7.1^0 X-Git-Url: http://www.git.cypherpunks.ru/?p=pyderasn.git;a=commitdiff_plain;h=42198ee69940c96930d81533ecf9cec87d34b27b README update and CER/BER mentioning --- diff --git a/README b/README index a8e2cc9..150779f 100644 --- a/README +++ b/README @@ -1,23 +1,35 @@ -PyDERASN -- strict and fast ASN.1 DER/BER library for Python +PyDERASN -- strict and fast ASN.1 DER/CER/BER library for Python I'm going to build my own ASN.1 library with slots and blobs! (C) PyDERASN's author -* 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) * Size constraints checking * Working with sequences as high level data objects with ability to (un)marshall them +* Aimed to be complaint with X.690-201508 +* Streaming decoding and encoding capabilities, allowing working with + very small memory footprint * Python 2.7/3.5/3.6 compatibility * Automatic decoding of DEFINED BY fields * Ability to know exact decoded objects offset and lengths in the binary -* Pretty printer and command-line decoder, that could conveniently - replace utilities like either dumpasn1 or openssl asn1parse +* Ability to allow BER-encoded data with knowing if any of specified + field has either DER or BER encoding (or possibly indefinite-length + encoding) +* 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 in the memory * __slots__, copy.copy() friendliness * Workability with pickle * Cython compatibility +* Descriptive errors, with decode paths +* Pretty printer and command-line decoder, that could conveniently + replace utilities like either dumpasn1 or openssl asn1parse pyderasn is free software: see the file COPYING.LESSER for copying conditions. diff --git a/VERSION b/VERSION index 4fedf1d..0f0fefa 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -7.0 +7.1 diff --git a/doc/index.rst b/doc/index.rst index 2aaa144..17dcef0 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -1,6 +1,6 @@ -============================================================ -PyDERASN -- strict and fast ASN.1 DER/BER library for Python -============================================================ +================================================================ +PyDERASN -- strict and fast ASN.1 DER/CER/BER library for Python +================================================================ .. diff --git a/doc/install.rst b/doc/install.rst index a14ebc5..54e7dfa 100644 --- a/doc/install.rst +++ b/doc/install.rst @@ -4,11 +4,11 @@ Install Preferable way is to :ref:`download ` tarball with the signature from `official website `__:: - $ [fetch|wget] http://pyderasn.cypherpunks.ru/pyderasn-7.0.tar.xz - $ [fetch|wget] http://pyderasn.cypherpunks.ru/pyderasn-7.0.tar.xz.sig - $ gpg --verify pyderasn-7.0.tar.xz.sig pyderasn-7.0.tar.xz - $ xz --decompress --stdout pyderasn-7.0.tar.xz | tar xf - - $ cd pyderasn-7.0 + $ [fetch|wget] http://pyderasn.cypherpunks.ru/pyderasn-7.1.tar.xz + $ [fetch|wget] http://pyderasn.cypherpunks.ru/pyderasn-7.1.tar.xz.sig + $ gpg --verify pyderasn-7.1.tar.xz.sig pyderasn-7.1.tar.xz + $ xz --decompress --stdout pyderasn-7.1.tar.xz | tar xf - + $ cd pyderasn-7.1 $ python setup.py install # or copy pyderasn.py (+six.py, possibly termcolor.py) to your PYTHONPATH @@ -19,7 +19,7 @@ You can also find it mirrored on :ref:`download ` page. You could use pip (**no** OpenPGP authentication is performed!) with PyPI:: $ cat > requirements.txt < # # This program is free software: you can redistribute it and/or modify @@ -1124,7 +1124,7 @@ except ImportError: # pragma: no cover def colored(what, *args, **kwargs): return what -__version__ = "7.0" +__version__ = "7.1" __all__ = ( "agg_octet_string", @@ -7104,7 +7104,7 @@ def generic_decoder(): # pragma: no cover def main(): # pragma: no cover import argparse - parser = argparse.ArgumentParser(description="PyDERASN ASN.1 BER/DER decoder") + parser = argparse.ArgumentParser(description="PyDERASN ASN.1 BER/CER/DER decoder") parser.add_argument( "--skip", type=int, diff --git a/setup.py b/setup.py index 54b056c..b2d641d 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ version = open("VERSION", "rb").read().strip().decode("ascii") setup( name="pyderasn", version=version, - description="Python ASN.1 DER/BER codec with abstract structures", + description="Python ASN.1 DER/CER/BER codec with abstract structures", long_description=open("README", "rb").read().decode("utf-8"), author="Sergey Matveev", author_email="stargrave@stargrave.org", diff --git a/tests/test_cms.py b/tests/test_cms.py index 86756f4..ac9726f 100644 --- a/tests/test_cms.py +++ b/tests/test_cms.py @@ -1,5 +1,5 @@ # coding: utf-8 -# PyDERASN -- Python ASN.1 DER codec with abstract structures +# PyDERASN -- Python ASN.1 DER/CER/BER codec with abstract structures # Copyright (C) 2017-2020 Sergey Matveev # # This program is free software: you can redistribute it and/or modify diff --git a/tests/test_crl.py b/tests/test_crl.py index a5c7183..fcfcb9e 100644 --- a/tests/test_crl.py +++ b/tests/test_crl.py @@ -1,5 +1,5 @@ # coding: utf-8 -# PyDERASN -- Python ASN.1 DER codec with abstract structures +# PyDERASN -- Python ASN.1 DER/CER/BER codec with abstract structures # Copyright (C) 2017-2020 Sergey Matveev # # This program is free software: you can redistribute it and/or modify diff --git a/tests/test_crts.py b/tests/test_crts.py index 3f753e0..e31470f 100644 --- a/tests/test_crts.py +++ b/tests/test_crts.py @@ -1,5 +1,5 @@ # coding: utf-8 -# PyDERASN -- Python ASN.1 DER codec with abstract structures +# PyDERASN -- Python ASN.1 DER/CER/BER codec with abstract structures # Copyright (C) 2017-2020 Sergey Matveev # # This program is free software: you can redistribute it and/or modify diff --git a/tests/test_pyderasn.py b/tests/test_pyderasn.py index 3a9e303..9fae13e 100644 --- a/tests/test_pyderasn.py +++ b/tests/test_pyderasn.py @@ -1,5 +1,5 @@ # coding: utf-8 -# PyDERASN -- Python ASN.1 DER/BER codec with abstract structures +# PyDERASN -- Python ASN.1 DER/CER/BER codec with abstract structures # Copyright (C) 2017-2020 Sergey Matveev # # This program is free software: you can redistribute it and/or modify