nng_tls_config_key(3)
=====================
:doctype: manpage
:manmanual: nng
:mansource: nng
:manvolnum: 3
:icons: font
:source-highlighter: pygments
:copyright: Copyright 2018 Staysail Systems, Inc. <info@staysail.tech> \
            Copyright 2018 Capitar IT Group BV <info@capitar.com> \
            This software 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_config_key - configure certificate authority certificate chain

SYNOPSIS
--------

[source, c]
-----------
#include <nng/nng.h>

int nng_tls_config_key(nni_tls_config *cfg, const uint8_t *key, size_t size)
-----------

DESCRIPTION
-----------

The `nng_tls_config_key()` function configures a private  'key' to be used
along with a certificate established with
<<nng_tls_config_cert#,nng_tls_config_cert(3)>>, for the given configuration
'cfg'.

This function should be called immediately after `nng_tls_config_cert()`,
with the appropriate private key.

The 'key' may be in either https://tools.ietf.org/html/rfc7468[PEM] or DER
format.  When the 'chain' is
in PEM format, the key will be ASCII encoded. A certificate may be present
as well.  The value of 'size' corresponds to the PEM encoding, not including
any terminating NUL byte.

When using DER encoding, the 'size' will be the total number of bytes, after
encoding.

The key material may be encrypted with a password, which can be supplied
using the <<nng_tls_config_pass#,nng_tls_config_pass(3)>> function.

RETURN VALUES
-------------

This function returns 0 on success, and non-zero otherwise.

ERRORS
------

`NNG_ENOMEM`:: Insufficient memory is available.
`NNG_EBUSY`:: The configuration 'cfg' is already in use, and cannot be modified.
`NNG_EINVAL`:: An invalid 'key' or 'size' was supplied.

SEE ALSO
--------

<<nng_strerror#,nng_strerror(3)>>,
<<nng_tls_config_alloc#,nng_tls_config_alloc(3)>>,
<<nng_tls_config_cert#,nng_tls_config_cert(3)>>,
<<nng_tls_config_pass#,nng_tls_config_pass(3)>>,
<<nng#,nng(7)>>


COPYRIGHT
---------

Copyright 2018 mailto:info@staysail.tech[Staysail Systems, Inc.] +
Copyright 2018 mailto:info@capitar.com[Capitar IT Group BV]

This document is supplied under the terms of the
https://opensource.org/licenses/MIT[MIT License].
