Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/segevfiner/sslkeylog
Log SSL/TLS keys for decrypting SSL/TLS connections made in Python
https://github.com/segevfiner/sslkeylog
python ssl sslkeylogfile tls wireshark
Last synced: about 2 months ago
JSON representation
Log SSL/TLS keys for decrypting SSL/TLS connections made in Python
- Host: GitHub
- URL: https://github.com/segevfiner/sslkeylog
- Owner: segevfiner
- License: mit
- Created: 2019-01-24T15:52:32.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2024-02-22T17:56:12.000Z (10 months ago)
- Last Synced: 2024-04-23T15:02:48.470Z (8 months ago)
- Topics: python, ssl, sslkeylogfile, tls, wireshark
- Language: C
- Homepage: https://pypi.org/project/sslkeylog/
- Size: 5.65 MB
- Stars: 41
- Watchers: 5
- Forks: 7
- Open Issues: 3
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- License: LICENSE.txt
Awesome Lists containing this project
README
sslkeylog
=========.. image:: https://img.shields.io/pypi/v/sslkeylog.svg
:target: https://pypi.org/project/sslkeylog/
:alt: PyPI.. image:: https://readthedocs.org/projects/sslkeylog/badge/?version=latest
:target: https://sslkeylog.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status.. image:: https://github.com/segevfiner/sslkeylog/actions/workflows/build-and-test.yml/badge.svg
:target: https://github.com/segevfiner/sslkeylog/actions/workflows/build-and-test.yml
:alt: Build & Test StatusThis is an implementation of the ``SSLKEYLOGFILE`` facility, available in Firefox and
Chromium/Google Chrome, that is supported by Wireshark in order to decrypt SSL/TLS connections
even when you don't have the private key, or when using key exchange methods that will prevent
decryption even if you do (Such as Diffie-Hellman).This is for the standard library ``ssl`` module, it won't work for other ssl modules.
**Note:**
Python 3.8+ includes built-in support for generating an SSL key log file via
``ssl.SSLContext.keylog_filename``, and will also enable it when the ``SSLKEYLOGFILE``
environment variable is set when creating a context via ``ssl.create_default_context``.This package uses the same callback the built-in implementation is using, which will likely cause
both implementations to trample each other, causing the other not to work, or other unintended
consequences. As such, you should probably not enable both at the same time.Quick Start
-----------
.. code-block:: pythonimport os
import sslkeylogsslkeylog.set_keylog(os.environ.get('SSLKEYLOGFILE')) # Or directly specify a path
# Do anything involving SSL (Using the built-in ssl module)
Set the ``SSLKEYLOGFILE`` environment variable if you use it, and set "(Pre)-Master-Secret log
filename" in Wireshark's SSL protocol preferences to the resulting file.Links
-----
* `NSS Key Log Format`_
* `Wireshark - SSL`_.. _NSS Key Log Format: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format
.. _Wireshark - SSL: https://wiki.wireshark.org/SSLLicense
-------
MIT License, except OpenSSL which is licensed under it's own license. See LICENSE.txtThis product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit (http://www.openssl.org/)