SYNOPSIS
#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(nni_tls_config **cfgp, nng_tls_mode mode);
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, peeer 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.
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.