#include <nng/nng.h>
#include <nng/supplemental/tls/tls.h>
typedef enum nng_tls_mode {
NNG_TLS_MODE_CLIENT,
NNG_TLS_MODE_SERVER
} nng_tls_mode;
int nng_tls_config_alloc(nng_tls_config **cfgp, nng_tls_mode mode);
This documentation is for the TIP (development tree) of NNG and may represent unreleased changes or functionality that is experimental, and is subject to change before release. The latest released version is v1.8.0. See the documentation for v1.8.0 for the most up-to-date information. |
nng_tls_config_alloc(3tls)
NAME
nng_tls_config_alloc - allocate TLS configuration object
SYNOPSIS
DESCRIPTION
The nng_tls_config_alloc()
function creates a newly initialized
Transport Layer Security)
configuration object, and stores a pointer to it in the value pointed
to by cfgp.
This object is initialized for use when acting as either a
client (NNG_TLS_MODE_CLIENT
) or as a server (NNG_TLS_MODE_SERVER
),
depending on the value of mode.
A TLS object can be further modified by functions that set the security keys used, peer certificates, protocol policies, and so forth.
A single TLS configuration object can be used with multiple TLS streams or services. The underlying system uses reference counting to ensure that object is not inadvertently freed while in use.
A configuration object created with nng_tls_config_alloc()
starts
with a reference count of one.
The reference count may be incremented using
nng_tls_config_hold()
and may be
decremented with
nng_tls_config_free()
.
Also note that a TLS configuration object becomes read-only after it
is first used with a service.
After this points, attempts to apply
further changes to the configuration will result in NNG_EBUSY
.
RETURN VALUES
This function returns 0 on success, and non-zero otherwise.
ERRORS
NNG_ENOMEM
|
Insufficient memory is available. |
NNG_EINVAL
|
An invalid mode was specified. |