Metadata-Version: 2.1
Name: pem
Version: 21.2.0
Summary: Easy PEM file parsing in Python.
Home-page: https://pem.readthedocs.io/
Author: Hynek Schlawack
Author-email: hs@ox.cx
Maintainer: Hynek Schlawack
Maintainer-email: hs@ox.cx
License: MIT
Project-URL: Bug Tracker, https://github.com/hynek/pem/issues
Project-URL: Documentation, https://pem.readthedocs.io/
Project-URL: Funding, https://github.com/sponsors/hynek
Project-URL: Ko-fi, https://ko-fi.com/the_hynek
Project-URL: Source Code, https://github.com/hynek/pem
Description: pem: Easy PEM file parsing
        ==========================
        
        .. image:: https://readthedocs.org/projects/pem/badge/?version=stable
           :target: https://pem.readthedocs.io/en/stable/?badge=stable
           :alt: Documentation Status
        
        .. image:: https://github.com/hynek/pem/workflows/CI/badge.svg?branch=main
           :target: https://github.com/hynek/pem/actions
           :alt: CI Status
        
        .. image:: https://codecov.io/gh/hynek/pem/branch/main/graph/badge.svg
           :target: https://codecov.io/github/hynek/pem
           :alt: Coverage
        
        .. image:: http://www.mypy-lang.org/static/mypy_badge.svg
           :target: http://mypy-lang.org
           :alt: Checked with mypy
        
        .. image:: https://www.irccloud.com/invite-svg?channel=%23cryptography-dev&amp;hostname=irc.freenode.net&amp;port=6697&amp;ssl=1
           :target: https://www.irccloud.com/invite?channel=%23cryptography-dev&amp;hostname=irc.freenode.net&amp;port=6697&amp;ssl=1
        
        .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
           :target: https://github.com/psf/black
           :alt: Code style: black
        
        .. teaser-begin
        
        *pem* is an MIT_-licensed Python module for parsing and splitting of `PEM files`_, i.e. Base64-encoded DER keys and certificates.
        
        It runs on Python 2.7, and 3.5+, has no dependencies, and does not attempt to interpret the certificate data in any way.
        
        It’s born from the need to load keys, certificates, trust chains, and DH parameters from various certificate deployments: some servers (like Apache_) expect them to be a separate file, others (like nginx_) expect them concatenated to the server certificate and finally some (like HAProxy_) expect key, certificate, and chain to be in one file.
        With *pem*, your Python application can cope with all of those scenarios:
        
        .. code-block:: pycon
        
           >>> import pem
           >>> certs = pem.parse_file("chain.pem")
           >>> certs
           [<Certificate(PEM string with SHA-1 digest '...')>, <Certificate(PEM string with SHA-1 digest '...')>]
           >>> str(certs[0])
           '-----BEGIN CERTIFICATE-----\n...'
        
        Additionally to the vanilla parsing code, *pem* also contains helpers for Twisted_ that save a lot of boilerplate code.
        
        *pem* is available from `PyPI <https://pypi.org/project/pem/>`_, its documentation lives at `Read the Docs <https://pem.readthedocs.io/>`_, the code on `GitHub <https://github.com/hynek/pem>`_.
        
        
        .. _MIT: https://choosealicense.com/licenses/mit/
        .. _`PEM files`: https://en.wikipedia.org/wiki/X.509#Certificate_filename_extensions
        .. _Apache: https://httpd.apache.org/
        .. _nginx: https://nginx.org/
        .. _HAProxy: https://www.haproxy.org/
        .. _Twisted: https://twistedmatrix.com/documents/current/api/twisted.internet.ssl.Certificate.html#loadPEM
        
        
        Release Information
        ===================
        
        21.2.0 (2021-04-07)
        -------------------
        
        Backward-incompatible changes:
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        
        *none*
        
        
        Deprecations:
        ^^^^^^^^^^^^^
        
        *none*
        
        
        Changes:
        ^^^^^^^^
        
        - Added support for ``pem.OpenSSLTrustedCertificate`` (``-----BEGIN TRUSTED CERTIFICATE-----``), as defined in `openssl x509 manual <https://www.openssl.org/docs/man1.1.1/man1/x509.html>`_.
          `#28 <https://github.com/hynek/pem/issues/28>`_
        
        `Full changelog <https://pem.readthedocs.io/en/stable/changelog.html>`_.
        
        Credits
        =======
        
        *pem* is written and maintained by Hynek Schlawack.
        
        The development is kindly supported by `Variomedia AG <https://www.variomedia.de/>`_.
        
        A full list of contributors can be found on GitHub’s `overview <https://github.com/hynek/pem/graphs/contributors>`_.
        
Keywords: pyopenssl,ssl,tls,pem,cryptography,twisted
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/x-rst
Provides-Extra: docs
Provides-Extra: tests
Provides-Extra: dev
