Skip to main content

Sans-IO Python implementation of the TLS 1.3 (RFC 8446) protocol stack

Project description

pypi version badge coverage badge tests badge

siotls

Sans-IO Python implementation of the TLS 1.3 (RFC 8446) protocol stack.

Disclaimer

This project has not yet been reviewed by any security expert or cryptographer; it is sure to be full of "landmines, dragons, and dinosaurs with laser guns," to cite the people at cryptography. In case you are one, please come and get in touch with us!

While TLS 1.3 is excellent at giving guidance on how to set up and use the many cryptography primitives in a safe way, there are still some important questions that are left open. Questions such as "how many messages can we encrypt using AES-CCM-8."

To help us navigate the rich world of secure communication, in addition to RFC8446 (TLS 1.3) and the documents it references, we also studied:

On certificate revocation:

Installation

The package has not yet been published on PyPI, please download the source code from main and build it using build. build creates artifacts under the /dist folder, the artifacts (.whl, .tar.gz or .zip) can then be installed using pip.

Contributing

Best it to start by opening an issue to discuss the things you wanna change or improve. You can also just open a PR and write down everything in the PR message.

Installation

Clone the repository using git and place yourself inside the project root directory. Create a new virtual environment and install the project in dev mode inside.

$ git clone https://github.com/Julien00859/siotls
$ cd siotls
$ python3 -m venv .env
$ .env/bin/pip install -e .[dev]

Once all the dependencies downloaded and the project installed, you should be able to run the unittests.

$ .env/bin/python -m unittest

coverage was installed as part of the dev dependencies. It is a tool to compute the test coverage and make sure that there is no blind spot. You run its run command once so it gathers the information and then you print it out using its html command.

$ .env/bin/coverage run --source src/ --branch -m unittest
$ .env/bin/coverage html

Help us achieve a nice coverage!

Tooling

For now we are only using ruff and isort. Don't loose too much time with those, the maintainers are responsable for the housekeeping duty.

$ ruff check src/ tests/
$ isort --profile black -m 3 --ca src/ tests/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

siotls-0.0.3a0.tar.gz (130.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

siotls-0.0.3a0-py3-none-any.whl (129.9 kB view details)

Uploaded Python 3

File details

Details for the file siotls-0.0.3a0.tar.gz.

File metadata

  • Download URL: siotls-0.0.3a0.tar.gz
  • Upload date:
  • Size: 130.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.8

File hashes

Hashes for siotls-0.0.3a0.tar.gz
Algorithm Hash digest
SHA256 84692933aa759e5bee6f514aeeda16905804ba161c7f513bd8542d09a540b72d
MD5 7f636a1f106f25e65cb212b7384a2b8e
BLAKE2b-256 91ea1cbf0622d974a55e57d8d1c8cb3eb5c5cc2988a7573aac060ca61462c227

See more details on using hashes here.

File details

Details for the file siotls-0.0.3a0-py3-none-any.whl.

File metadata

  • Download URL: siotls-0.0.3a0-py3-none-any.whl
  • Upload date:
  • Size: 129.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.8

File hashes

Hashes for siotls-0.0.3a0-py3-none-any.whl
Algorithm Hash digest
SHA256 d0e99591a23332313f46ef43fc58b66108b3fc2d7df507d01c2608dc235136e0
MD5 9604bf2dcc5e75c68c6aa1a3986ff08f
BLAKE2b-256 87169a0e440049f7eb61751ac2d7fdfed69e60436e951dc4e0bb6fed60dc82ef

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page