hynek / Pem
Programming Languages
Labels
Projects that are alternatives of or similar to Pem
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&hostname=irc.freenode.net&port=6697&ssl=1 :target: https://www.irccloud.com/invite?channel=%23cryptography-dev&hostname=irc.freenode.net&port=6697&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