= nng_tls_config_ca_file(3)
:doctype: manpage
:manmanual: nng
:mansource: nng
:manvolnum: 3
:copyright: Copyright 2018 mailto:info@staysail.tech[Staysail Systems, Inc.] + \
            Copyright 2018 mailto:info@capitar.com[Capitar IT Group BV] + \
            {blank} + \
            This document is supplied under the terms of the \
            https://opensource.org/licenses/MIT[MIT License].

== NAME

nng_tls_config_ca_file - load certificate authority from file

== SYNOPSIS

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

int nng_tls_config_ca_file(nni_tls_config *cfg, const char *path);
-----------

== DESCRIPTION

The `nng_tls_config_ca_file()` function configures the certificate authority
certificate chain and optional revocation list by loading the certificates
(and revocation list if present) from a single named file. The file must
at least one X.509 certificate in https://tools.ietf.org/html/rfc7468[PEM]
format, and may contain multiple such certificates, as well as zero or
more PEM CRL objects.  This information is used to validate certificates
that are presented by peers, when using the configuration 'cfg'.

NOTE: Certificates *must* be configured when using the authentication mode
`NNG_TLS_AUTH_MODE_REQUIRED`.

TIP: This function may be called multiple times, to add additional chains
to a configuration, without affecting those added previously.

== 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`:: The contents of 'path' are invalid or did not contain a valid PEM certificate.
`NNG_ENOENT`:: The file 'path' does not exist.
`NNG_EPERM`:: The file 'path' is not readable.

== SEE ALSO

<<nng_strerror#,nng_strerror(3)>>,
<<nng_tls_config_alloc#,nng_tls_config_alloc(3)>>,
<<nng_tls_config_auth_mode#,nng_tls_config_auth_mode(3)>>,
<<nng_tls_config_ca_chain#,nng_tls_config_ca_chain(3)>>,
<<nng#,nng(7)>>

== COPYRIGHT

{copyright}
