# wolfSSL TLS Module

## Admin Guide

### Overview

This module implements the TLS transport for &kamailio; using the wolfSSL library (https://www.wolfssl.com). To enable the &kamailio; TLS support this module must be loaded and enable_tls=yes core setting must be added to the Kamailio config file.

This module is derived from the tls module and adapted to wolfSSL using the OpenSSL-compatibility layer. Credit goes to the authors of the tls module.

This module is based on wolfSSL 5.2.0 and 5.3.0 and is not fully compatible with the tls module (protocol versions < 1.1 not supported it the Debian package for example.

This user is referred to the documentation of the tls module for configuration and other information. Not all configuration keys are implemented (e.g., protocol versions — defaults to 1.2+ and cipher suites).

### Quick Start

The default &kamailioconfig; file has basic TLS support included, it has to be enabled with "#!define WITH_TLS" directive.

#### Quick Start Basic Config

    #...
    loadmodule "sl.so"
    loadmodule "tls_wolfssl.so"
    #... refer to Quick Start of tls module
    #... for further configuration

### Important Notes

The wolfSSL TLS module is intended to be compiled with a recent version of wolfSSL (5.2.0+).

Default compilations of the library will not work with Kamailio's own memory allocation. See https://github.com/wolfSSL/wolfssl/issues/5264 for more details.

### Compiling the wolfSSL TLS Module

The development package for wolfSSL is required (libwolfssl-dev or equivalent).

In most case compiling the wolfSSL TLS module is as simple as:

    make -C modules/tls_wolfssl

or

    make modules modules=modules/tls_wolfssl

or (compiling whole Kamailio and the tls module)

    make all include_modules=tls_wolfssl

.

### Parameters

Important differences to the tls module

#### `crl`

The value is a folder containing PEM CRL files with extension `.pem`.