asn1


Nameasn1 JSON
Version 2.7.1 PyPI version JSON
download
home_pagehttps://github.com/andrivet/python-asn1
SummaryPython-ASN1 is a simple ASN.1 encoder and decoder for Python 2.7+ and 3.5+.
upload_time2024-09-07 12:50:46
maintainerNone
docs_urlNone
authorSebastien Andrivet
requires_pythonNone
licenseBSD
keywords
VCS
bugtrack_url
requirements future enum-compat
Travis-CI No Travis.
coveralls test coverage
            

========
Overview
========

Python-ASN1 is a simple ASN.1 encoder and decoder for Python 2.7 and 3.5+.

Features
========

- Support BER (parser) and DER (parser and generator) encoding (except indefinite lengths)
- 100% python, compatible with version 2.7, 3.5 and higher
- Can be integrated by just including a file into your project


Dependencies
==============

Python-ASN1 relies on `Python-Future <https://python-future.org>`_ for Python 2 and 3 compatibility. To install Python-Future:

.. code-block:: sh

  pip install future


How to install Python-asn1
==========================

Install from PyPi with the following:

.. code-block:: sh

  pip install asn1

or download the repository from `GitHub <https://github.com/andrivet/python-asn1>`_ and install with the following:

.. code-block:: sh

  python setup.py install

You can also simply include ``asn1.py`` into your project.


How to use Python-asn1
======================

.. note:: You can find more detailed documentation on the `Usage`_ page.

.. _Usage: usage.rst

Encoding
--------

If you want to encode data and retrieve its DER-encoded representation, use code such as:

.. code-block:: python

  import asn1

  encoder = asn1.Encoder()
  encoder.start()
  encoder.write('1.2.3', asn1.Numbers.ObjectIdentifier)
  encoded_bytes = encoder.output()


Decoding
--------

If you want to decode ASN.1 from DER or BER encoded bytes, use code such as:

.. code-block:: python

  import asn1

  decoder = asn1.Decoder()
  decoder.start(encoded_bytes)
  tag, value = decoder.read()


Documentation
=============

The complete documentation is available on Read The Docs:

`python-asn1.readthedocs.io <https://python-asn1.readthedocs.io/en/latest/>`_


License
=======

Python-ASN1 is free software that is made available under the MIT license.
Consult the file LICENSE that is distributed together with this library for
the exact licensing terms.

Copyright
=========

The following people have contributed to Python-ASN1. Collectively they own the copyright of this software.

* Geert Jansen (geert@boskant.nl): `original implementation <https://github.com/geertj/python-asn1>`_.
* Sebastien Andrivet (sebastien@andrivet.com)

Changelog
=========

2.7.1 (2024-08-07
-----------------

* Fix OID encoding/decoding for the first octet according to ITU-T X.690 (thanks to Ian Neal)

2.7.0 (2023-01-17)
------------------

* Add context manager support (thanks to Mastermind-U)

2.6.0 (2022-07-15)
------------------

* Add support for GeneralizedTime (thanks to vollkorntomate)

2.5.0 (2022-03-03)
------------------

* Fixes to BitString decoding and encoding of IA5String and UTCTime (thanks to 0xbf00)

2.4.2 (2021-10-29)
------------------

* Fix a minor mistake in the dump.py example
* Add Python 3.9 and 3.10

2.4.1 (2020-07-16)
------------------

* Fix #89 - Replace explicit references to enum34 by enum-compat

2.4.0 (2020-06-23)
------------------

* Fix #21 - Invalid decoding in non-Universal classes
* Fix #57 - Invalid encoding of non-Universal classes

2.3.1 (2020-04-06)
------------------

* No change in code, only in packaging and in texts (README, ...)

2.3.0 (2020-04-05)
------------------

* Tests: Replace nose by pytest
* Add Python 3.8, remove Python 3.4 support
* PR#26 (from rumbah): Add test for default (implicit) encoding types
* PR#25 (from thomwiggers): Attempt to support BIT STRING
* Fix wrong example code, see #27
* (from jcrowgey) Makes the package usable with pip install
* Remove support of Python 3.3 (some dependencies do not support 3.3)
* PR#15 (from ThePlasmaRailgun) Fix parsing of object identifier
* PR#10 (from robinleander): Allow user to determine decoding tagtype


2.2.0 (2017-10-30)
------------------

* Use "true" enums instead of classes. Use enun34 backport for old Python versions.

2.1.1 (2017-10-30)
------------------

* Fix a bug (#9): two's complement corner case with values such as -32769. Add new test cases to test them.

2.1.0 (2016-12-18)
------------------

* Add more documentation
* Use (simulated) enumerations
* Add Python 2.6 in automated checks and tests
* Add type hints (for static checking) and fix some code

2.0.0 (2016-12-16)
------------------

* First public release by Sebastien Andrivet
* Support both python 2 and 3 (with Python-Future)
* All strings are now in unicode
* Add more ASN.1 tags (like PrintableString)
* Fix errors in the example (dump.py)
* Code reorganization

0.9 (2011-05-18)
----------------

* Initial public release by Geert Jansen

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/andrivet/python-asn1",
    "name": "asn1",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "Sebastien Andrivet",
    "author_email": "sebastien@andrivet.com",
    "download_url": "https://files.pythonhosted.org/packages/33/4e/75335477a1fcd4f2d86d672afebaadee25e672c4f1f319434184f3d3f556/asn1-2.7.1.tar.gz",
    "platform": null,
    "description": "\n\n========\nOverview\n========\n\nPython-ASN1 is a simple ASN.1 encoder and decoder for Python 2.7 and 3.5+.\n\nFeatures\n========\n\n- Support BER (parser) and DER (parser and generator) encoding (except indefinite lengths)\n- 100% python, compatible with version 2.7, 3.5 and higher\n- Can be integrated by just including a file into your project\n\n\nDependencies\n==============\n\nPython-ASN1 relies on `Python-Future <https://python-future.org>`_ for Python 2 and 3 compatibility. To install Python-Future:\n\n.. code-block:: sh\n\n  pip install future\n\n\nHow to install Python-asn1\n==========================\n\nInstall from PyPi with the following:\n\n.. code-block:: sh\n\n  pip install asn1\n\nor download the repository from `GitHub <https://github.com/andrivet/python-asn1>`_ and install with the following:\n\n.. code-block:: sh\n\n  python setup.py install\n\nYou can also simply include ``asn1.py`` into your project.\n\n\nHow to use Python-asn1\n======================\n\n.. note:: You can find more detailed documentation on the `Usage`_ page.\n\n.. _Usage: usage.rst\n\nEncoding\n--------\n\nIf you want to encode data and retrieve its DER-encoded representation, use code such as:\n\n.. code-block:: python\n\n  import asn1\n\n  encoder = asn1.Encoder()\n  encoder.start()\n  encoder.write('1.2.3', asn1.Numbers.ObjectIdentifier)\n  encoded_bytes = encoder.output()\n\n\nDecoding\n--------\n\nIf you want to decode ASN.1 from DER or BER encoded bytes, use code such as:\n\n.. code-block:: python\n\n  import asn1\n\n  decoder = asn1.Decoder()\n  decoder.start(encoded_bytes)\n  tag, value = decoder.read()\n\n\nDocumentation\n=============\n\nThe complete documentation is available on Read The Docs:\n\n`python-asn1.readthedocs.io <https://python-asn1.readthedocs.io/en/latest/>`_\n\n\nLicense\n=======\n\nPython-ASN1 is free software that is made available under the MIT license.\nConsult the file LICENSE that is distributed together with this library for\nthe exact licensing terms.\n\nCopyright\n=========\n\nThe following people have contributed to Python-ASN1. Collectively they own the copyright of this software.\n\n* Geert Jansen (geert@boskant.nl): `original implementation <https://github.com/geertj/python-asn1>`_.\n* Sebastien Andrivet (sebastien@andrivet.com)\n\nChangelog\n=========\n\n2.7.1 (2024-08-07\n-----------------\n\n* Fix OID encoding/decoding for the first octet according to ITU-T X.690 (thanks to Ian Neal)\n\n2.7.0 (2023-01-17)\n------------------\n\n* Add context manager support (thanks to Mastermind-U)\n\n2.6.0 (2022-07-15)\n------------------\n\n* Add support for GeneralizedTime (thanks to vollkorntomate)\n\n2.5.0 (2022-03-03)\n------------------\n\n* Fixes to BitString decoding and encoding of IA5String and UTCTime (thanks to 0xbf00)\n\n2.4.2 (2021-10-29)\n------------------\n\n* Fix a minor mistake in the dump.py example\n* Add Python 3.9 and 3.10\n\n2.4.1 (2020-07-16)\n------------------\n\n* Fix #89 - Replace explicit references to enum34 by enum-compat\n\n2.4.0 (2020-06-23)\n------------------\n\n* Fix #21 - Invalid decoding in non-Universal classes\n* Fix #57 - Invalid encoding of non-Universal classes\n\n2.3.1 (2020-04-06)\n------------------\n\n* No change in code, only in packaging and in texts (README, ...)\n\n2.3.0 (2020-04-05)\n------------------\n\n* Tests: Replace nose by pytest\n* Add Python 3.8, remove Python 3.4 support\n* PR#26 (from rumbah): Add test for default (implicit) encoding types\n* PR#25 (from thomwiggers): Attempt to support BIT STRING\n* Fix wrong example code, see #27\n* (from jcrowgey) Makes the package usable with pip install\n* Remove support of Python 3.3 (some dependencies do not support 3.3)\n* PR#15 (from ThePlasmaRailgun) Fix parsing of object identifier\n* PR#10 (from robinleander): Allow user to determine decoding tagtype\n\n\n2.2.0 (2017-10-30)\n------------------\n\n* Use \"true\" enums instead of classes. Use enun34 backport for old Python versions.\n\n2.1.1 (2017-10-30)\n------------------\n\n* Fix a bug (#9): two's complement corner case with values such as -32769. Add new test cases to test them.\n\n2.1.0 (2016-12-18)\n------------------\n\n* Add more documentation\n* Use (simulated) enumerations\n* Add Python 2.6 in automated checks and tests\n* Add type hints (for static checking) and fix some code\n\n2.0.0 (2016-12-16)\n------------------\n\n* First public release by Sebastien Andrivet\n* Support both python 2 and 3 (with Python-Future)\n* All strings are now in unicode\n* Add more ASN.1 tags (like PrintableString)\n* Fix errors in the example (dump.py)\n* Code reorganization\n\n0.9 (2011-05-18)\n----------------\n\n* Initial public release by Geert Jansen\n",
    "bugtrack_url": null,
    "license": "BSD",
    "summary": "Python-ASN1 is a simple ASN.1 encoder and decoder for Python 2.7+ and 3.5+.",
    "version": "2.7.1",
    "project_urls": {
        "Homepage": "https://github.com/andrivet/python-asn1"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c8d9fa5e5ad08ce362f722e06508195749828890f33ba5562ebe1f2c1f9a7981",
                "md5": "558082c966c82bdfaac54d7ea57fb7cb",
                "sha256": "92785400ca4c7d00e255ccbae9b50b6b7bfcc44ed7c41c87ba69893dfc47ab62"
            },
            "downloads": -1,
            "filename": "asn1-2.7.1-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "558082c966c82bdfaac54d7ea57fb7cb",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": null,
            "size": 10090,
            "upload_time": "2024-09-07T12:50:41",
            "upload_time_iso_8601": "2024-09-07T12:50:41.764360Z",
            "url": "https://files.pythonhosted.org/packages/c8/d9/fa5e5ad08ce362f722e06508195749828890f33ba5562ebe1f2c1f9a7981/asn1-2.7.1-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "334e75335477a1fcd4f2d86d672afebaadee25e672c4f1f319434184f3d3f556",
                "md5": "cc6ff84382a508a272d48073d28d990e",
                "sha256": "c00e37a58d25912dc7c7536770490644ab8e0305f5adc28cf7eebee32e2703c2"
            },
            "downloads": -1,
            "filename": "asn1-2.7.1.tar.gz",
            "has_sig": false,
            "md5_digest": "cc6ff84382a508a272d48073d28d990e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 29117,
            "upload_time": "2024-09-07T12:50:46",
            "upload_time_iso_8601": "2024-09-07T12:50:46.148815Z",
            "url": "https://files.pythonhosted.org/packages/33/4e/75335477a1fcd4f2d86d672afebaadee25e672c4f1f319434184f3d3f556/asn1-2.7.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-07 12:50:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "andrivet",
    "github_project": "python-asn1",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [
        {
            "name": "future",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "enum-compat",
            "specs": [
                [
                    "==",
                    "0.0.3"
                ]
            ]
        }
    ],
    "tox": true,
    "lcname": "asn1"
}
        
Elapsed time: 0.34667s