-
Notifications
You must be signed in to change notification settings - Fork 42
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Also, converted to Markdown, and provided revised information about test. Signed-off-by: jaylin <[email protected]>
- Loading branch information
Showing
2 changed files
with
80 additions
and
72 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
# Building for TLS Support | ||
|
||
If you want to include support for Transport Layer Security | ||
(`tls+tcp://` and `wss://` URLs) you should follow these directions. | ||
|
||
TLS support in NNG depends on either the [Mbed TLS](https://tls.mbed.org/) | ||
or [WolfSSL](https://www.wolfssl.com/) library (your choice). | ||
|
||
> [!IMPORTANT] | ||
> These libraries are licensed under different terms than NNG. | ||
> You are responsible for reading those license terms, and ensuring | ||
> that your use conforms to them. | ||
> [!TIP] | ||
> This project receives no compensation or support in any other form | ||
> from either ARM (owners of the Mbed TLS project) or WolfSSL. | ||
> Thus, as a special request, if you're paying for commercial licenses for | ||
> either Mbed TLS or WolfSSL for use with NNG, please consider also sponsoring | ||
> this project or obtaining a commercial support contract from | ||
> [Staysail Systems, Inc.](https://www.staysail.tech/) | ||
> You can enquire about support contracts at [email protected]. | ||
> Sponsorship information is available on our | ||
> [GitHub page](https://github.com/nanomsg/nng). Thank you! | ||
On many distributions you may be able to install a pre-packaged version | ||
of either library. 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 these from source; if you choose to do so, | ||
please make sure you also _install_ it somewhere (even a temporary | ||
staging directory). | ||
|
||
## Configuring NNG with TLS | ||
|
||
TLS support is not enabled by default, but can be enabled by configuring | ||
with the CMake option `NNG_ENABLE_TLS=ON`. | ||
|
||
You can select which library to use by using `NNG_TLS_ENGINE=mbed` or | ||
`NNG_TLS_ENGINE=wolf`. If you specify neither, then Mbed TLS will be assumed | ||
by default. | ||
|
||
By default NNG searches for an installed components in `/usr/local`, | ||
as well as the normal installation directories for libraries on your system. | ||
|
||
If you have installed Mbed TLS elsewhere, you can direct the NNG configuration | ||
to it by setting the `MBEDTLS_ROOT_DIR` or `WOLFSSL_ROOT_DIR` CMake variable | ||
as appropriate. | ||
|
||
## 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 Mbed TLS is already installed in `/usr/local` or | ||
a standard search path. | ||
|
||
``` | ||
$ export NNGDIR=$HOME/work/nng | ||
$ mkdir build | ||
$ cd build | ||
$ cmake -G Ninja -DNNG_ENABLE_TLS=ON .. | ||
... (lots of lines of output from cmake...) | ||
$ ninja build | ||
... (lots of lines of output from ninja...) | ||
$ ./src/supplemental/tls/tls_test -v | ||
... (lots of lines of output from the test ...) | ||
Summary: | ||
Count of all unit tests: 9 | ||
Count of run unit tests: 9 | ||
Count of failed unit tests: 0 | ||
Count of skipped unit tests: 0 | ||
SUCCESS: All unit tests have passed. | ||
``` |