PEM file parsing in Python.
Project description
pem: PEM file parsing for Python
pem is a Python module for parsing and splitting of PEM files, i.e. Base64-encoded DER keys and certificates.
It 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 Diffie–Hellman 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:
>>> 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.
Project Information
- License: MIT
- PyPI
- Source Code
- Documentation
- Changelog
Credits
pem is written and maintained by Hynek Schlawack.
The development is kindly supported by my employer Variomedia AG and all my amazing GitHub Sponsors.
pem for Enterprise
Available as part of the Tidelift Subscription.
The maintainers of pem and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use. Learn more.
Release Information
Removed
- Support for Python 2.7, 3.5, and 3.6 has been dropped.
Added
- Support for RFC 4880 OpenPGP private & public keys:
pem.OpenPGPPublicKey
andpem.OpenPGPPrivateKey
. #72 - Support for intra-payload headers like the ones used in OpenPGP keys using the
meta_headers
property. #75 pem.parse_file()
now accepts alsopathlib.Path
objects.pem.parse()
now also acceptsstr
.- Added
text_payload
,bytes_payload
anddecoded_payload
properties to all PEM objects that allow to directly access the payload without the envelope and possible headers. #74
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pem-23.1.0.tar.gz
.
File metadata
- Download URL: pem-23.1.0.tar.gz
- Upload date:
- Size: 43.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06503ff2441a111f853ce4e8b9eb9d5fedb488ebdbf560115d3dd53a1b4afc73 |
|
MD5 | f7fbd42398f637ef410bf8f8b7b81bde |
|
BLAKE2b-256 | 058616c0b6789816f8d53f2f208b5a090c9197da8a6dae4d490554bb1bedbb09 |
File details
Details for the file pem-23.1.0-py3-none-any.whl
.
File metadata
- Download URL: pem-23.1.0-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78bbb1e75b737891350cb9499cbba31da5d59545f360f44163c0bc751cad55d3 |
|
MD5 | f5f5965294c436ea18d4dc5b6bcf5136 |
|
BLAKE2b-256 | c9978299a481ae6c08494b5d53511e6a4746775d8a354c685c69d8796b2ed482 |