---
name: "nng_tls_config_ca_chain"
section: "3tls"
platform: "linux"
package: "libnng-dev"
version: "1.10.1-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/nng_tls_config_ca_chain"
---

# nng\_tls\_config\_ca\_chain(3tls)

configure certificate authority certificate chain

## NAME

nng\_tls\_config\_ca\_chain - configure certificate authority certificate chain

## SYNOPSIS

```
#include <nng/nng.h>
#include <nng/supplemental/tls/tls.h>
int nng_tls_config_ca_chain(nng_tls_config *cfg, const char *chain, const char *crl);
```

## DESCRIPTION

The `nng_tls_config_ca_chain()` function configures a certificate or certificate chain to be used when validating peers 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.

The certificates located in *chain* must be a zero-terminated C string in *PEM* \<https://tools.ietf.org/html/rfc7468\> format. Multiple certificates may appear concatenated together, with the leaf certificate listed first.

The *crl* may be `NULL`, or may also be a C string containing a PEM format certificate revocation list for the associated authority.

## 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 *chain* or *crl* was supplied.

## SEE ALSO

[nng\_strerror(3)](/nng_strerror/3.md), nng\_tls\_config\_alloc(.3tls), nng\_tls\_config\_auth\_mode(.3tls), nng\_tls\_config\_ca\_file(.3tls), [nng(7)](/nng/7.md)
