Skip to content

TLS_WOLFSSL module

This module implements TLS operations using the wolfSSL library. It provides the primitives required by the tls_mgm module in order to expose a higher-level API used by TLS-based protocol modules like proto_tls or proto_wss.

The wolfSSL library is statically-linked and bundled with this module so no installation or external dependency is required.

The following packages must be installed before compiling this module:

  • autoconf.
  • automake.
  • libtool.

The following modules must be loaded before this module:

  • None.

The following libraries or applications must be installed before running OpenSIPS with this module loaded:

  • None.

All these parameters can be used from the opensips.cfg file, to configure the behavior of OpenSIPS-TLS.

Try to use KTLS for RX and TX ( dependent on Kernel support and loaded modules https://docs.kernel.org/networking/tls-offload.htm ) If kernel support is not found, or if the cypher attempted to be used is not supported ( only AES-GCM for now ), then SSL operations will continue to be done in user-space. IF NIC supports SSL offloading, that can also be enabled without any changes needed to the module https://docs.nvidia.com/doca/sdk/ktls-offloads/index.html

Default value is 0.

Set try_use_ktls variable
...
modparam("tls_wolfssl", "try_use_ktls", 1)
...

Q: Why do I get the following error when compiling the module?

If you obtained the OpenSIPS sources by cloning the repository from Github, without using the —recursive option for the git clone command, you did not properly fetch the wolfSSL library code, which is included as a git submodule pointing to the official wolfSSL repository.

In order to fetch the wolfSSL library code you can run:

Terminal window
git submodule update --init

Top contributors by DevScore(1), authored commits(2) and lines added/removed(3)

#NameDevScoreCommitsLines++Lines—
1.Vlad Patrascu (@rvlad-patrascu)51242847130
2.Razvan Crainea (@razvancrainea)3725406480
3.Stefan Darius (@dariusstefan)8512321
4.Vlad Paiu (@vladpaiu)613943
5.Maksym Sobolyev (@sobomax)4222
6.Dragos Oancea411287
7.Ivan Poddubny313424
8.Ross Henderson3196
9.James Stanley3161
10.Bogdan-Andrei Iancu (@bogdan-iancu)3133

All remaining contributors: Liviu Chircu (@liviuchircu), Bence Szigeti, Alexey Vasilyev (@vasilevalex), vladpaiu.

(1) DevScore = author_commits + author_lines_added / (project_lines_added / project_commits) + author_lines_deleted / (project_lines_deleted / project_commits)

(2) including any documentation-related commits, excluding merge commits

(3) ignoring whitespace edits, renamed files and auto-generated files

#NameCommit Activity
1.Razvan Crainea (@razvancrainea)Aug 2023 - Nov 2026
2.Dragos OanceaNov 2026 - Nov 2026
3.Ivan PoddubnyJul 2026 - Jul 2026
4.Stefan Darius (@dariusstefan)Jun 2026 - Jul 2026
5.Ross HendersonFeb 2026 - Feb 2026
6.Vlad Paiu (@vladpaiu)Dec 2025 - Dec 2025
7.vladpaiuJun 2025 - Jun 2025
8.James StanleyFeb 2024 - Feb 2024
9.Liviu Chircu (@liviuchircu)Oct 2023 - Oct 2023
10.Bence SzigetiOct 2023 - Oct 2023

All remaining contributors: Bogdan-Andrei Iancu (@bogdan-iancu), Vlad Patrascu (@rvlad-patrascu), Maksym Sobolyev (@sobomax), Alexey Vasilyev (@vasilevalex).

(1) including any documentation-related commits, excluding merge commits

Last edited by: Razvan Crainea (@razvancrainea), Vlad Paiu (@vladpaiu), Vlad Patrascu (@rvlad-patrascu).

All documentation files (i.e. .md extension) are licensed under the Creative Common License 4.0