.. pytls13 documentation master file, created by
sphinx-quickstart on Mon Apr 3 09:23:54 2023.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to pytls13's documentation!
===================================
``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:
.. code-block::
$ 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:
.. code-block::
+----------------------------+
| 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:
#. 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.
#. 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.
.. toctree::
:maxdepth: 2
:caption: Contents:
mypages/tls13_client_examples
mypages/lurk-t_tls_client
mypages/developper_notes
modules
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`