# README

Please add optional dependencies in this folder

## TLS Support

At the moment there are two different options for TLS support.

* mbedtls 2.28 supports TLS version 1.2, 1.1 and older versions of TLS
* mbedtls 3.6 supports TLS versions 1.2 and 1.3

### mbedtls 2.28

For TLS support with mbedtls 2.28 download the source tarball of version 2.28.x and extract here in the subfolder (Version 2.28.10 https://github.com/Mbed-TLS/mbedtls/releases/download/mbedtls-2.28.10/mbedtls-2.28.10.tar.bz2)

On a Linux command line enter the following commands in this directory:

    wget https://github.com/Mbed-TLS/mbedtls/releases/download/mbedtls-2.28.10/mbedtls-2.28.10.tar.bz2
    tar xfj mbedtls-2.28.10.tar.bz2

To allow session resumption within an ongoing TLS connection (required by IEC 62351-3:2023) a patch (mbedtls_2.28_ssl_srv.c.patch) has to be applied to the mbedtls source code: 

    patch mbedtls-2.28.10/library/ssl_srv.c mbedtls_2.28_ssl_srv.c.patch

When running cmake the build system will automatically find the mbedtls source code and includes it into the library build.

When using make the make command has to be invoked with the WITH_MBEDTLS=1 parameter

    make WITH_MBEDTLS=1

### mbedtls 3.6

For TLS support with mbedtls 3.6 download the source tarball of version 3.6.x and extract here in the subfolder (Version 3.6.2 https://github.com/Mbed-TLS/mbedtls/releases/download/mbedtls-3.6.2/mbedtls-3.6.2.tar.bz2)

On a Linux command line enter the following commands in this directory:

    wget https://github.com/Mbed-TLS/mbedtls/releases/download/mbedtls-3.6.2/mbedtls-3.6.2.tar.bz2
    tar xfj mbedtls-3.6.2.tar.bz2

When running cmake the build system will automatically find the mbedtls source code and includes it into the library build.

When using make the make command has to be invoked with the WITH_MBEDTLS3=1 parameter

    make WITH_MBEDTLS3=1

