= nng_tls(5) // // Copyright 2019 Staysail Systems, Inc. // Copyright 2018 Capitar IT Group BV // Copyright 2019 Devolutions // // This document is supplied under the terms of the MIT License, a // copy of which should be located in the distribution where this // file was obtained (LICENSE.txt). A copy of the license may also be // found online at https://opensource.org/licenses/MIT. // == NAME nng_tls - TLS over TCP connection == SYNOPSIS [source, c] ---- #include #include typedef struct nng_tls_s nng_tls; ---- == DESCRIPTION An `nng_tls` (((TLS connection))) represents a connected stream. TLS stream objects can be used to send or receive data, and provide transport level security via cryptography over a TCP connected stream. NOTE: The `nng_tls` object is used for raw TLS connections, and should not be confused with a pipe object created using the xref:nng_tls.7.adoc[nng_tls(7)] transport. TIP: Most NNG applications should not use this, but instead use the xref:nng_tls.7.adoc[nng_tls(7)] transport instead. These objects are created either establishing an outgoing connection with xref:nng_tls_dialer_dial.3tls.adoc[`nng_tls_dialer_dial()`] or by accepting in incoming connection with xref:nng_tls_listener_accept.3tls.adoc[`nng_tls_listener_accept()`]. TLS connections are byte streams, and are "`reliable`" in that data will not be delivered out of order, or with portions missing. Data can be sent using xref:nng_tls_send.3tls.adoc[`nng_tls_send()`] or received with xref:nng_tls_recv.3tls.adoc[`nng_tls_recv()`]. When the connection is no longer needed, it should be freed with xref:nng_tls_free.3tls.adoc[`nng_tls_free()`]. TIP: It is possible to close the connection, without freeing it, by using xref:nng_tls_close.3tls.adoc[`nng_tls_close()`]. === Options The following options are applicable to TLS connections, and may be accessed using the xref:nng_tls_getopt.3tls.adoc[`nng_tls_getopt()`] and xref:nng_tls_setopt.3tls.adoc[`nng_tls_setopt()`] functions. * xref:nng_options.5.adoc#NNG_OPT_LOCADDR[`NNG_OPT_LOCADDR`] * xref:nng_options.5.adoc#NNG_OPT_REMADDR[`NNG_OPT_REMADDR`] * xref:nng_tcp_options.5.adoc#NNG_OPT_TCP_KEEPALIVE[`NNG_OPT_TCP_KEEPALIVE`] * xref:nng_tcp_options.5.adoc#NNG_OPT_TCP_NO_DELAY[`NNG_OPT_TCP_NODELAY`] * xref:nng_tls_options.5.adoc#NNG_OPT_TLS_VERIFIED[`NNG_OPT_TLS_VERIFIED`] Other platform specific options may be available as well. == SEE ALSO [.text-left] xref:libnng.3.adoc[libnng(3)], xref:nng_tls_close.3tls.adoc[nng_tls_close(3tls)], xref:nng_tls_dialer_dial.3tls.adoc[nng_tls_dialer_dial(3tls)], xref:nng_tls_free.3tls.adoc[nng_tls_free(3tls)], xref:nng_tls_getopt.3tls.adoc[nng_tls_getopt(3tls)], xref:nng_tls_listener_accept.3tls.adoc[nng_tls_listener_accept(3tls)], xref:nng_tls_recv.3tls.adoc[nng_tls_recv(3tls)], xref:nng_tls_send.3tls.adoc[nng_tls_send(3tls)], xref:nng_tls_setopt.3tls.adoc[nng_tls_setopt(3tls)], xref:nng_options.5.adoc[nng_options(5)], xref:nng_tls_options.5.adoc[nng_tls_options(5)], xref:nng.7.adoc[nng(7)]