16#ifndef NC_CONFIG_SERVER_H_
17#define NC_CONFIG_SERVER_H_
26#include <libyang/libyang.h>
115#ifdef NC_ENABLED_SSH_TLS
131 const char *address, uint16_t port,
struct lyd_node **config);
166 const char *mode,
const char *owner,
const char *group,
struct lyd_node **config);
197 const char *system_user,
const char *netconf_user,
struct lyd_node **config);
209 struct lyd_node **config);
211#ifdef NC_ENABLED_SSH_TLS
228 const char *privkey_path,
const char *pubkey_path,
struct lyd_node **config);
257 const char *cert_path,
struct lyd_node **config);
286 const char *pubkey_path,
struct lyd_node **config);
314 const char *cert_path,
struct lyd_node **config);
326 const char *cert_name,
struct lyd_node **config);
361 const char *endpoint,
const char *username, time_t *last_modified);
392 const char *privkey_path,
const char *pubkey_path,
struct lyd_node **config);
405 const char *hostkey_name,
struct lyd_node **config);
423 const char *keystore_reference,
struct lyd_node **config);
434 struct lyd_node **config);
452 const char *user_name,
const char *pubkey_name,
const char *pubkey_path,
struct lyd_node **config);
465 const char *pubkey_name,
struct lyd_node **config);
483 const char *user_name,
struct lyd_node **config);
509 const char *user_name,
const char *password,
struct lyd_node **config);
520 struct lyd_node **config);
537 const char *user_name,
struct lyd_node **config);
548 struct lyd_node **config);
560 const char *user_name,
struct lyd_node **config);
578 const char *truststore_reference,
struct lyd_node **config);
589 struct lyd_node **config);
607 const char *referenced_endpt,
struct lyd_node **config);
645 const char *pubkey_path,
const char *cert_path,
struct lyd_node **config);
669 const char *cert_ref,
struct lyd_node **config);
696 const char *cert_path,
struct lyd_node **config);
721 const char *cert_bag_ref,
struct lyd_node **config);
756 const char *cert_path,
struct lyd_node **config);
781 const char *cert_bag_ref,
struct lyd_node **config);
808 const char *referenced_endpt,
struct lyd_node **config);
888 NC_TRANSPORT_IMPL transport,
const char *address,
const char *port,
struct lyd_node **config);
941 struct lyd_node **config);
968 const char *anchor_time,
struct lyd_node **config);
993 uint16_t idle_timeout,
struct lyd_node **config);
1020 NC_CH_START_WITH start_with, uint16_t max_wait, uint8_t max_attempts,
struct lyd_node **config);
1037#ifdef NC_ENABLED_SSH_TLS
1066 const char *hostkey_name,
const char *privkey_path,
const char *pubkey_path,
struct lyd_node **config);
1079 const char *hostkey_name,
struct lyd_node **config);
1099 const char *endpt_name,
const char *hostkey_name,
const char *keystore_reference,
struct lyd_node **config);
1111 const char *hostkey_name,
struct lyd_node **config);
1131 const char *user_name,
const char *pubkey_name,
const char *pubkey_path,
struct lyd_node **config);
1145 const char *user_name,
const char *pubkey_name,
struct lyd_node **config);
1165 const char *endpt_name,
const char *user_name,
struct lyd_node **config);
1177 const char *user_name,
struct lyd_node **config);
1195 const char *user_name,
const char *password,
struct lyd_node **config);
1207 const char *user_name,
struct lyd_node **config);
1226 const char *user_name,
struct lyd_node **config);
1238 const char *user_name,
struct lyd_node **config);
1250 const char *user_name,
struct lyd_node **config);
1270 const char *endpt_name,
const char *user_name,
const char *truststore_reference,
struct lyd_node **config);
1282 const char *user_name,
struct lyd_node **config);
1313 const char *privkey_path,
const char *pubkey_path,
const char *cert_path,
struct lyd_node **config);
1324 struct lyd_node **config);
1341 const char *endpt_name,
const char *asym_key_ref,
const char *cert_ref,
struct lyd_node **config);
1352 struct lyd_node **config);
1370 const char *cert_name,
const char *cert_path,
struct lyd_node **config);
1383 const char *cert_name,
struct lyd_node **config);
1399 const char *endpt_name,
const char *cert_bag_ref,
struct lyd_node **config);
1410 struct lyd_node **config);
1428 const char *cert_name,
const char *cert_path,
struct lyd_node **config);
1441 const char *cert_name,
struct lyd_node **config);
1457 const char *endpt_name,
const char *cert_bag_ref,
struct lyd_node **config);
1468 struct lyd_node **config);
1488 uint32_t
id,
const char *fingerprint,
NC_TLS_CTN_MAPTYPE map_type,
const char *name,
struct lyd_node **config);
1501 uint32_t
id,
struct lyd_node **config);
int nc_server_config_add_ch_address_port(const struct ly_ctx *ctx, const char *client_name, const char *endpt_name, NC_TRANSPORT_IMPL transport, const char *address, const char *port, struct lyd_node **config)
Creates new YANG configuration data nodes for a Call Home client's address and port.
int nc_server_config_add_ch_persistent(const struct ly_ctx *ctx, const char *client_name, struct lyd_node **config)
Creates new YANG configuration data nodes for the Call Home persistent connection type.
int nc_server_config_add_ch_anchor_time(const struct ly_ctx *ctx, const char *client_name, const char *anchor_time, struct lyd_node **config)
Creates new YANG configuration data nodes for the anchor time parameter of the Call Home periodic con...
int nc_server_config_add_ch_period(const struct ly_ctx *ctx, const char *client_name, uint16_t period, struct lyd_node **config)
Creates new YANG configuration data nodes for the period parameter of the Call Home periodic connecti...
int nc_server_config_del_ch_idle_timeout(const char *client_name, struct lyd_node **config)
Deletes the Call Home idle timeout parameter of the periodic connection type from the YANG data.
int nc_server_config_del_ch_anchor_time(const char *client_name, struct lyd_node **config)
Deletes the Call Home anchor time parameter of the periodic connection type from the YANG data.
int nc_server_config_del_ch_endpt(const char *client_name, const char *endpt_name, struct lyd_node **config)
Deletes a Call Home endpoint from the YANG data.
int nc_server_config_del_ch_client(const char *client_name, struct lyd_node **config)
Deletes a Call Home client from the YANG data.
int nc_server_config_del_ch_reconnect_strategy(const char *client_name, struct lyd_node **config)
Resets the values of the Call Home reconnect strategy nodes to their defaults.
int nc_server_config_add_ch_reconnect_strategy(const struct ly_ctx *ctx, const char *client_name, NC_CH_START_WITH start_with, uint16_t max_wait, uint8_t max_attempts, struct lyd_node **config)
Creates new YANG configuration data nodes for the Call Home reconnect strategy.
int nc_server_config_del_ch_period(const char *client_name, struct lyd_node **config)
Deletes the Call Home period parameter of the periodic connection type from the YANG data.
int nc_server_config_add_ch_idle_timeout(const struct ly_ctx *ctx, const char *client_name, uint16_t idle_timeout, struct lyd_node **config)
Creates new YANG configuration data nodes for the idle timeout parameter of the Call Home periodic co...
int nc_server_config_add_ch_ssh_truststore_ref(const struct ly_ctx *ctx, const char *client_name, const char *endpt_name, const char *user_name, const char *truststore_reference, struct lyd_node **config)
Creates new YANG data nodes for a reference to a public key bag located in the truststore.
int nc_server_config_del_ch_ssh_truststore_ref(const char *client_name, const char *endpt_name, const char *user_name, struct lyd_node **config)
Deletes a Call Home SSH truststore reference from the YANG data.
int nc_server_config_add_ch_ssh_user_authkey(const struct ly_ctx *ctx, const char *client_name, const char *endpt_name, const char *user_name, struct lyd_node **config)
Creates new YANG configuration data nodes for a Call Home SSH user that will use system's authorized_...
int nc_server_config_del_ch_ssh_user(const char *client_name, const char *endpt_name, const char *user_name, struct lyd_node **config)
Deletes a Call Home SSH user from the YANG data.
int nc_server_config_del_ch_ssh_user_pubkey(const char *client_name, const char *endpt_name, const char *user_name, const char *pubkey_name, struct lyd_node **config)
Deletes a Call Home SSH user's public key from the YANG data.
int nc_server_config_add_ch_ssh_user_password(const struct ly_ctx *ctx, const char *client_name, const char *endpt_name, const char *user_name, const char *password, struct lyd_node **config)
Creates new YANG data nodes for a Call Home SSH user's password authentication method.
int nc_server_config_del_ch_ssh_hostkey(const char *client_name, const char *endpt_name, const char *hostkey_name, struct lyd_node **config)
Deletes a Call Home hostkey from the YANG data.
int nc_server_config_del_ch_ssh_user_interactive(const char *client_name, const char *endpt_name, const char *user_name, struct lyd_node **config)
Deletes a Call Home SSH user's keyboard interactive authentication from the YANG data.
int nc_server_config_del_ch_ssh_user_password(const char *client_name, const char *endpt_name, const char *user_name, struct lyd_node **config)
Deletes a Call Home SSH user's password from the YANG data.
int nc_server_config_add_ch_ssh_user_pubkey(const struct ly_ctx *ctx, const char *client_name, const char *endpt_name, const char *user_name, const char *pubkey_name, const char *pubkey_path, struct lyd_node **config)
Creates new YANG data nodes for a Call Home SSH user's public key authentication method.
int nc_server_config_ch_del_ssh_user_authkey(const char *client_name, const char *endpt_name, const char *user_name, struct lyd_node **config)
Deletes a Call Home SSH user's authorized_keys method from the YANG data.
int nc_server_config_add_ch_ssh_keystore_ref(const struct ly_ctx *ctx, const char *client_name, const char *endpt_name, const char *hostkey_name, const char *keystore_reference, struct lyd_node **config)
Creates new YANG data nodes for a reference to an asymmetric key located in the keystore.
int nc_server_config_del_ch_ssh_keystore_ref(const char *client_name, const char *endpt_name, const char *hostkey_name, struct lyd_node **config)
Deletes a Call Home keystore reference from the YANG data.
int nc_server_config_add_ch_ssh_user_interactive(const struct ly_ctx *ctx, const char *client_name, const char *endpt_name, const char *user_name, struct lyd_node **config)
Creates new YANG configuration data nodes for a Call Home SSH user's keyboard interactive authenticat...
int nc_server_config_add_ch_ssh_hostkey(const struct ly_ctx *ctx, const char *client_name, const char *endpt_name, const char *hostkey_name, const char *privkey_path, const char *pubkey_path, struct lyd_node **config)
Creates new YANG data nodes for a Call Home SSH hostkey.
int nc_server_config_add_ch_tls_ctn(const struct ly_ctx *ctx, const char *client_name, const char *endpt_name, uint32_t id, const char *fingerprint, NC_TLS_CTN_MAPTYPE map_type, const char *name, struct lyd_node **config)
Creates new YANG configuration data nodes for a Call Home cert-to-name entry.
int nc_server_config_add_ch_tls_client_cert(const struct ly_ctx *ctx, const char *client_name, const char *endpt_name, const char *cert_name, const char *cert_path, struct lyd_node **config)
Creates new YANG configuration data nodes for a Call Home client's (end-entity) certificate.
int nc_server_config_del_ch_tls_ctn(const char *client_name, const char *endpt_name, uint32_t id, struct lyd_node **config)
Deletes a Call Home cert-to-name entry from the YANG data.
int nc_server_config_add_ch_tls_ca_cert_truststore_ref(const struct ly_ctx *ctx, const char *client_name, const char *endpt_name, const char *cert_bag_ref, struct lyd_node **config)
Creates new YANG configuration data nodes for a Call Home truststore reference to a set of client cer...
int nc_server_config_add_ch_tls_client_cert_truststore_ref(const struct ly_ctx *ctx, const char *client_name, const char *endpt_name, const char *cert_bag_ref, struct lyd_node **config)
Creates new YANG configuration data nodes for a Call Home truststore reference to a set of client (en...
int nc_server_config_del_ch_tls_server_cert(const char *client_name, const char *endpt_name, struct lyd_node **config)
Deletes a Call Home server certificate from the YANG data.
int nc_server_config_add_ch_tls_server_cert(const struct ly_ctx *ctx, const char *client_name, const char *endpt_name, const char *privkey_path, const char *pubkey_path, const char *cert_path, struct lyd_node **config)
Creates new YANG configuration data nodes for a Call Home server's certificate.
int nc_server_config_del_ch_tls_ca_cert_truststore_ref(const char *client_name, const char *endpt_name, struct lyd_node **config)
Deletes a Call Home client certificate authority (trust-anchor) certificates truststore reference fro...
int nc_server_config_del_ch_tls_ca_cert(const char *client_name, const char *endpt_name, const char *cert_name, struct lyd_node **config)
Deletes a Call Home client certificate authority (trust-anchor) certificate from the YANG data.
int nc_server_config_del_ch_tls_client_cert_truststore_ref(const char *client_name, const char *endpt_name, struct lyd_node **config)
Deletes a Call Home client (end-entity) certificates truststore reference from the YANG data.
int nc_server_config_del_ch_tls_keystore_ref(const char *client_name, const char *endpt_name, struct lyd_node **config)
Deletes a TLS server certificate keystore reference from the YANG data.
int nc_server_config_del_ch_tls_client_cert(const char *client_name, const char *endpt_name, const char *cert_name, struct lyd_node **config)
Deletes a Call Home client (end-entity) certificate from the YANG data.
int nc_server_config_add_ch_tls_ca_cert(const struct ly_ctx *ctx, const char *client_name, const char *endpt_name, const char *cert_name, const char *cert_path, struct lyd_node **config)
Creates new YANG configuration data nodes for a client certificate authority (trust-anchor) certifica...
int nc_server_config_add_ch_tls_keystore_ref(const struct ly_ctx *ctx, const char *client_name, const char *endpt_name, const char *asym_key_ref, const char *cert_ref, struct lyd_node **config)
Creates new YANG configuration data nodes for a keystore reference to the Call Home TLS server's cert...
int nc_server_config_oper_get_supported_tls_algs(const struct ly_ctx *ctx, struct lyd_node **supported_algs)
Gets all the TLS transport cipher suites supported by the server.
int nc_server_config_del_unix_user_mapping(const char *endpt_name, const char *system_user, struct lyd_node **config)
Deletes a UNIX username mapping from the YANG data.
int nc_server_config_add_address_port(const struct ly_ctx *ctx, const char *endpt_name, NC_TRANSPORT_IMPL transport, const char *address, uint16_t port, struct lyd_node **config)
Creates new YANG configuration data nodes for address and port.
int nc_server_config_del_truststore_pubkey(const char *pub_bag_name, const char *pubkey_name, struct lyd_node **config)
Deletes a truststore's public key from the YANG data.
int nc_server_config_del_keystore_asym_key(const char *asym_key_name, struct lyd_node **config)
Deletes a keystore's asymmetric key from the YANG data.
int nc_server_config_load_modules(struct ly_ctx **ctx)
Implements all the required modules and their features in the context. Needs to be called before any ...
int nc_server_config_add_unix_user_mapping(const struct ly_ctx *ctx, const char *endpt_name, const char *system_user, const char *netconf_user, struct lyd_node **config)
Creates new YANG data nodes for a UNIX username mapping.
int nc_server_config_del_endpt(const char *endpt_name, struct lyd_node **config)
Deletes an endpoint from the YANG data.
int nc_server_config_del_keystore_cert(const char *asym_key_name, const char *cert_name, struct lyd_node **config)
Deletes a keystore's certificate from the YANG data.
int nc_server_config_add_unix_socket(const struct ly_ctx *ctx, const char *endpt_name, const char *path, const char *mode, const char *owner, const char *group, struct lyd_node **config)
Creates new YANG data nodes for a UNIX socket endpoint.
int nc_server_config_oper_get_supported_ssh_algs(const struct ly_ctx *ctx, struct lyd_node **supported_algs)
Gets all the SSH transport algorithms supported by the server.
int nc_server_config_setup_diff(const struct lyd_node *diff)
Configure server based on the given diff.
int nc_server_config_add_truststore_cert(const struct ly_ctx *ctx, const char *cert_bag_name, const char *cert_name, const char *cert_path, struct lyd_node **config)
Creates new YANG data nodes for a certificate in the truststore.
int nc_server_config_del_truststore_cert(const char *cert_bag_name, const char *cert_name, struct lyd_node **config)
Deletes a truststore's certificate from the YANG data.
int nc_server_config_add_keystore_cert(const struct ly_ctx *ctx, const char *asym_key_name, const char *cert_name, const char *cert_path, struct lyd_node **config)
Creates new YANG data nodes for a certificate in the keystore.
int nc_server_config_oper_get_user_password_last_modified(const char *ch_client, const char *endpoint, const char *username, time_t *last_modified)
Gets the last modified time of an SSH user's password.
int nc_server_config_setup_data(const struct lyd_node *data)
Configure server based on the given data.
int nc_server_config_add_keystore_asym_key(const struct ly_ctx *ctx, NC_TRANSPORT_IMPL ti, const char *asym_key_name, const char *privkey_path, const char *pubkey_path, struct lyd_node **config)
Creates new YANG data nodes for an asymmetric key in the keystore.
int nc_server_config_setup_path(const struct ly_ctx *ctx, const char *path)
Configure server based on the given data stored in a file.
int nc_server_config_add_truststore_pubkey(const struct ly_ctx *ctx, const char *pub_bag_name, const char *pubkey_name, const char *pubkey_path, struct lyd_node **config)
Creates new YANG data nodes for a public key in the truststore.
int nc_server_config_del_ssh_user(const char *endpt_name, const char *user_name, struct lyd_node **config)
Deletes an SSH user from the YANG data.
int nc_server_config_del_ssh_user_interactive(const char *endpt_name, const char *user_name, struct lyd_node **config)
Deletes an SSH user's keyboard interactive authentication from the YANG data.
int nc_server_config_del_ssh_user_pubkey(const char *endpt_name, const char *user_name, const char *pubkey_name, struct lyd_node **config)
Deletes an SSH user's public key from the YANG data.
int nc_server_config_add_ssh_user_authkey(const struct ly_ctx *ctx, const char *endpt_name, const char *user_name, struct lyd_node **config)
Creates new YANG configuration data nodes for an SSH user that will use system's authorized_keys to a...
int nc_server_config_add_ssh_truststore_ref(const struct ly_ctx *ctx, const char *endpt_name, const char *user_name, const char *truststore_reference, struct lyd_node **config)
Creates new YANG data nodes for a reference to a public key bag located in the truststore.
int nc_server_config_add_ssh_user_pubkey(const struct ly_ctx *ctx, const char *endpt_name, const char *user_name, const char *pubkey_name, const char *pubkey_path, struct lyd_node **config)
Creates new YANG configuration data nodes for an SSH user's public key authentication method.
int nc_server_config_add_ssh_user_password(const struct ly_ctx *ctx, const char *endpt_name, const char *user_name, const char *password, struct lyd_node **config)
Creates new YANG configuration data nodes for an SSH user's password authentication method.
int nc_server_config_del_ssh_hostkey(const struct ly_ctx *ctx, const char *endpt_name, const char *hostkey_name, struct lyd_node **config)
Deletes a hostkey from the YANG data.
int nc_server_config_del_ssh_truststore_ref(const char *endpt_name, const char *user_name, struct lyd_node **config)
Deletes a truststore reference from the YANG data.
int nc_server_config_del_ssh_user_authkey(const char *endpt_name, const char *user_name, struct lyd_node **config)
Deletes an SSH user's authorized_keys method from the YANG data.
int nc_server_config_del_ssh_keystore_ref(const char *endpt_name, const char *hostkey_name, struct lyd_node **config)
Deletes a keystore reference from the YANG data.
int nc_server_config_add_ssh_hostkey(const struct ly_ctx *ctx, const char *endpt_name, const char *hostkey_name, const char *privkey_path, const char *pubkey_path, struct lyd_node **config)
Creates new YANG configuration data nodes for a hostkey.
int nc_server_config_add_ssh_keystore_ref(const struct ly_ctx *ctx, const char *endpt_name, const char *hostkey_name, const char *keystore_reference, struct lyd_node **config)
Creates new YANG data nodes for a reference to an asymmetric key located in the keystore.
int nc_server_config_del_ssh_user_password(const char *endpt_name, const char *user_name, struct lyd_node **config)
Deletes an SSH user's password from the YANG data.
int nc_server_config_add_ssh_user_interactive(const struct ly_ctx *ctx, const char *endpt_name, const char *user_name, struct lyd_node **config)
Creates new YANG configuration data nodes for an SSH user's keyboard interactive authentication metho...
int nc_server_config_del_ssh_endpoint_client_ref(const char *endpt_name, struct lyd_node **config)
Deletes reference to another SSH endpoint's users from the YANG data.
int nc_server_config_add_ssh_endpoint_client_ref(const struct ly_ctx *ctx, const char *endpt_name, const char *referenced_endpt, struct lyd_node **config)
Creates new YANG configuration data nodes, which will be a reference to another SSH endpoint's users.
int nc_server_config_add_tls_server_cert(const struct ly_ctx *ctx, const char *endpt_name, const char *privkey_path, const char *pubkey_path, const char *cert_path, struct lyd_node **config)
Creates new YANG configuration data nodes for a server's certificate.
int nc_server_config_add_tls_ca_cert_truststore_ref(const struct ly_ctx *ctx, const char *endpt_name, const char *cert_bag_ref, struct lyd_node **config)
Creates new YANG configuration data nodes for a truststore reference to a set of client certificate a...
int nc_server_config_add_tls_ctn(const struct ly_ctx *ctx, const char *endpt_name, uint32_t id, const char *fingerprint, NC_TLS_CTN_MAPTYPE map_type, const char *name, struct lyd_node **config)
Creates new YANG configuration data nodes for a cert-to-name entry.
int nc_server_config_del_tls_ca_cert(const char *endpt_name, const char *cert_name, struct lyd_node **config)
Deletes a client certificate authority (trust-anchor) certificate from the YANG data.
int nc_server_config_add_tls_keystore_ref(const struct ly_ctx *ctx, const char *endpt_name, const char *asym_key_ref, const char *cert_ref, struct lyd_node **config)
Creates new YANG configuration data nodes for a keystore reference to the TLS server's certificate.
int nc_server_config_del_tls_keystore_ref(const char *endpt_name, struct lyd_node **config)
Deletes a TLS server certificate keystore reference from the YANG data.
int nc_server_config_del_tls_endpoint_client_ref(const char *endpt_name, struct lyd_node **config)
Deletes reference to another TLS endpoint's users from the YANG data.
int nc_server_config_del_tls_client_cert(const char *endpt_name, const char *cert_name, struct lyd_node **config)
Deletes a client (end-entity) certificate from the YANG data.
int nc_server_config_del_tls_client_cert_truststore_ref(const char *endpt_name, struct lyd_node **config)
Deletes a client (end-entity) certificates truststore reference from the YANG data.
int nc_server_config_del_tls_ctn(const char *endpt_name, uint32_t id, struct lyd_node **config)
Deletes a cert-to-name entry from the YANG data.
int nc_server_config_del_tls_server_cert(const char *endpt_name, struct lyd_node **config)
Deletes the server's certificate from the YANG data.
int nc_server_config_del_tls_ca_cert_truststore_ref(const char *endpt_name, struct lyd_node **config)
Deletes a client certificate authority (trust-anchor) certificates truststore reference from the YANG...
int nc_server_config_add_tls_ca_cert(const struct ly_ctx *ctx, const char *endpt_name, const char *cert_name, const char *cert_path, struct lyd_node **config)
Creates new YANG configuration data nodes for a client certificate authority (trust-anchor) certifica...
int nc_server_config_add_tls_endpoint_client_ref(const struct ly_ctx *ctx, const char *endpt_name, const char *referenced_endpt, struct lyd_node **config)
Creates new YANG configuration data nodes, which will be a reference to another TLS endpoint's certif...
int nc_server_config_add_tls_client_cert_truststore_ref(const struct ly_ctx *ctx, const char *endpt_name, const char *cert_bag_ref, struct lyd_node **config)
Creates new YANG configuration data nodes for a truststore reference to a set of client (end-entity) ...
int nc_server_config_add_tls_client_cert(const struct ly_ctx *ctx, const char *endpt_name, const char *cert_name, const char *cert_path, struct lyd_node **config)
Creates new YANG configuration data nodes for a client's (end-entity) certificate.
libnetconf2 session manipulation
NC_TLS_CTN_MAPTYPE
Enumeration of cert-to-name mapping types.
NC_CH_START_WITH
Enumeration of Call Home client priority policy.
NC_TRANSPORT_IMPL
Enumeration of transport implementations (ways how libnetconf implements NETCONF transport protocol).