Skip to content

Latest commit

 

History

History
60 lines (41 loc) · 1.79 KB

BUILD_TLS.adoc

File metadata and controls

60 lines (41 loc) · 1.79 KB

Building for TLSv1.2 Support

If you want to include support for Transport Layer Security (tls+tcp:// and wss:// URLs) you should follow these directions.

At this time, TLS support depends on the mbedTLS library. See https://tls.mbed.org/ for details.

mbedTLS is licensed under different terms than NNG. You are responsible for reading those license terms, and ensuring that your use conforms to them.

On many distributions you may be able to install a pre-packaged version of mbedTLS. We recommend doing so if this is an option for you. For example, Ubuntu users can install the libmbedtls-dev package.

You can also build mbedTLS from source; if you choose to do so, please make sure you also install it somewhere (even a temporary staging directory).

Configuring NNG with mbedTLS

TLS support is not enabled by default, but can be enabled by configuring with the CMake option NNG_ENABLE_TLS=ON.

By default NNG searches for an installed copy of mbedTLS in /usr/local, as well as the normal installation directories for libraries on your system.

If you have installed mbedTLS elsewhere, you can direct the NNG configuration to it by setting the MBEDTLS_ROOT_DIR CMake variable.

Example

The following example would work on either Linux or macOS, and assumes that we have checked out github source trees into $HOME/work. It also assumes that mbedTLS is already installed in /usr/local or a standard search path.

$ export NNGDIR=$HOME/work/nng
$ mkdir build
$ cd build

$ cmake -DNNG_ENABLE_TLS=ON ..

   ... (lots of lines of output from cmake...)

$ make

   ... (lots of lines of output from make...)

$ ./tests/tls
ok      ./tests/tls                                            1.503s