Skip to main content

"Python Immplementation of TLS 1.3"

Project description

Welcome to pytls13 !

pytls13 implements a TLS 1.3 client and relies on pylurk for all cryptographic operations related to the client authentication.

pytl13 can be used as follows:

$ cd examples/cli/
$ ./tls_client --connectivity 'lib_cs' https://www.google.com

pytls13 leverages the Limited Use of Remote Keys (LURK) framework as well as it extension for TLS 1.3. draft-mglt-lurk-lurk draft-mglt-lurk-tls13. LURK is a generic protocol whose purpose is to support specific interactions with a given cryptographic material, which is also known as Cryptographic Service (CS). In our case pytls13 implements the TLS Engine (E) while pylurk implements the CS as depicted below:

+----------------------------+
|       TLS Engine (E)       |
+------------^---------------+
             | (LURK/TLS 1.3)
+------------v---------------+
| Cryptographic Service (CS) |
| private_keys               |
+----------------------------+

TLS being split into a CS and an Engine

pytls13 documentation provides Examples of TLS 1.3 client and Using pytls13 and pylurk sections with detailed examples on how to combine the TLS engine (E) and the Crypto Service (CS) with. The LURK-T TLS 1.3 client section providing a complete example where the CS runs into a Trusted Execution Enclave (TEE) - SGX in our case.

Installation

Currently the cli scripts are not installed via pip3 package, so one need to install it manually from the git repo.

The simple installation is as follows:

  1. Install pytls13 and pylurk from the git repo.
 `git clone https://github.com/mglt/pytls13.git`
 `git clone https://github.com/mglt/pylurk.git tls13`. Note that for a very limited usage pip3 pylurk maybe sufficient. 
3. Update in `tls_client`, in pytls13.git/example/cli`
* `CS_GRAMINE_DIR`: the location of the `pylurk.git/example/cli` directory
* `GRAMINE_DIR` the directory of the Gramine directory
* The path of the `pylurk` and `pytls13` modules indicated by the `sys.path.insert` directive.

For a more advamce usage - that is the CS please follow the `pylurk` installation steps.

For a more advance us involving to use of TEE please install Gramine.

## TODO:

* Include the cli in the pip3 package.
* Implement a tls server
* Re-organize classes and move TLS generic classes from tls_client_handler to tls_hanlder. 
* Implement the post handshake authentication as well as 0-rtt
* Provide more standard TLS client API / server.  

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

pytls13-0.0.1.tar.gz (2.4 kB view details)

Uploaded Source

Built Distribution

pytls13-0.0.1-py3-none-any.whl (2.3 kB view details)

Uploaded Python 3

File details

Details for the file pytls13-0.0.1.tar.gz.

File metadata

  • Download URL: pytls13-0.0.1.tar.gz
  • Upload date:
  • Size: 2.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for pytls13-0.0.1.tar.gz
Algorithm Hash digest
SHA256 5940f9370f53acb3f2a04ea854b0779254b92e66353845fbfcd0a2b57f7f8e12
MD5 7dc4093e709ad487b803aaf9102bedfd
BLAKE2b-256 09e7048795a386b4a7a68169d3ac58647b6ba64186fb28a04ebb36734e7698eb

See more details on using hashes here.

File details

Details for the file pytls13-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: pytls13-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 2.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for pytls13-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5a58d6008dea27643b741c74e197f3671974e8131981eb7e2d90e84ea36a729a
MD5 d008bd5fd382ac965ead8df2e5a24938
BLAKE2b-256 673a4cdd1a59770356c7f8b3e3d143b7927ebfdf9e50c2e80d074e7f3c81a2be

See more details on using hashes here.

Supported by

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