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.2a0.tar.gz (133.3 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.2a0-py3-none-any.whl (142.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for siotls-0.0.2a0.tar.gz
Algorithm Hash digest
SHA256 27a03ecb1f2039b2975b2fbce512f2e41a0150f4e1fd64ec6cfbdef5eb01e5c8
MD5 eec956f2446878c7918294dcb1b2f465
BLAKE2b-256 55c9278b7b6bebcd0ae3561849e6a413556de43e25fee79ebfa1f7f2eb892c83

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for siotls-0.0.2a0-py3-none-any.whl
Algorithm Hash digest
SHA256 d501015808e71c199a0d276189926379cb574684790364aed53e630f265a9aa5
MD5 30d863c81a09b09b9acb3b4da2f4b248
BLAKE2b-256 a253147501037c2a9dbdc694f36ccd2b92fb3880a51822ee81108095f2f0286b

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