16 #ifndef NC_CONFIG_SERVER_H_
17 #define NC_CONFIG_SERVER_H_
26 #include <libyang/libyang.h>
109 #ifdef NC_ENABLED_SSH_TLS
125 const char *address, uint16_t port,
struct lyd_node **config);
139 #ifdef NC_ENABLED_SSH_TLS
156 const char *privkey_path,
const char *pubkey_path,
struct lyd_node **config);
185 const char *cert_path,
struct lyd_node **config);
214 const char *pubkey_path,
struct lyd_node **config);
242 const char *cert_path,
struct lyd_node **config);
254 const char *cert_name,
struct lyd_node **config);
321 const char *privkey_path,
const char *pubkey_path,
struct lyd_node **config);
334 const char *hostkey_name,
struct lyd_node **config);
352 const char *keystore_reference,
struct lyd_node **config);
363 struct lyd_node **config);
381 const char *user_name,
const char *pubkey_name,
const char *pubkey_path,
struct lyd_node **config);
394 const char *pubkey_name,
struct lyd_node **config);
412 const char *user_name,
struct lyd_node **config);
438 const char *user_name,
const char *password,
struct lyd_node **config);
449 struct lyd_node **config);
466 const char *user_name,
struct lyd_node **config);
477 struct lyd_node **config);
489 const char *user_name,
struct lyd_node **config);
507 const char *truststore_reference,
struct lyd_node **config);
518 struct lyd_node **config);
536 const char *referenced_endpt,
struct lyd_node **config);
574 const char *pubkey_path,
const char *cert_path,
struct lyd_node **config);
598 const char *cert_ref,
struct lyd_node **config);
625 const char *cert_path,
struct lyd_node **config);
650 const char *cert_bag_ref,
struct lyd_node **config);
685 const char *cert_path,
struct lyd_node **config);
710 const char *cert_bag_ref,
struct lyd_node **config);
737 const char *referenced_endpt,
struct lyd_node **config);
817 NC_TRANSPORT_IMPL transport,
const char *address,
const char *port,
struct lyd_node **config);
870 struct lyd_node **config);
897 const char *anchor_time,
struct lyd_node **config);
922 uint16_t idle_timeout,
struct lyd_node **config);
949 NC_CH_START_WITH start_with, uint16_t max_wait, uint8_t max_attempts,
struct lyd_node **config);
966 #ifdef NC_ENABLED_SSH_TLS
995 const char *hostkey_name,
const char *privkey_path,
const char *pubkey_path,
struct lyd_node **config);
1008 const char *hostkey_name,
struct lyd_node **config);
1028 const char *endpt_name,
const char *hostkey_name,
const char *keystore_reference,
struct lyd_node **config);
1040 const char *hostkey_name,
struct lyd_node **config);
1060 const char *user_name,
const char *pubkey_name,
const char *pubkey_path,
struct lyd_node **config);
1074 const char *user_name,
const char *pubkey_name,
struct lyd_node **config);
1094 const char *endpt_name,
const char *user_name,
struct lyd_node **config);
1106 const char *user_name,
struct lyd_node **config);
1124 const char *user_name,
const char *password,
struct lyd_node **config);
1136 const char *user_name,
struct lyd_node **config);
1155 const char *user_name,
struct lyd_node **config);
1167 const char *user_name,
struct lyd_node **config);
1179 const char *user_name,
struct lyd_node **config);
1199 const char *endpt_name,
const char *user_name,
const char *truststore_reference,
struct lyd_node **config);
1211 const char *user_name,
struct lyd_node **config);
1242 const char *privkey_path,
const char *pubkey_path,
const char *cert_path,
struct lyd_node **config);
1253 struct lyd_node **config);
1270 const char *endpt_name,
const char *asym_key_ref,
const char *cert_ref,
struct lyd_node **config);
1281 struct lyd_node **config);
1299 const char *cert_name,
const char *cert_path,
struct lyd_node **config);
1312 const char *cert_name,
struct lyd_node **config);
1328 const char *endpt_name,
const char *cert_bag_ref,
struct lyd_node **config);
1339 struct lyd_node **config);
1357 const char *cert_name,
const char *cert_path,
struct lyd_node **config);
1370 const char *cert_name,
struct lyd_node **config);
1386 const char *endpt_name,
const char *cert_bag_ref,
struct lyd_node **config);
1397 struct lyd_node **config);
1417 uint32_t
id,
const char *fingerprint,
NC_TLS_CTN_MAPTYPE map_type,
const char *name,
struct lyd_node **config);
1430 uint32_t
id,
struct lyd_node **config);
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_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_oper_get_mac_algs(const struct ly_ctx *ctx, struct lyd_node **mac_algs)
Gets the MAC algorithms supported by the server from the 'iana-ssh-mac-algs' YANG module...
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_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_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_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_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_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_setup_data(const struct lyd_node *data)
Configure server based on the given 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_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_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_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_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_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...
libnetconf2 session manipulation
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_setup_diff(const struct lyd_node *diff)
Configure server based on the given diff.
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_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_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_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.
NC_TRANSPORT_IMPL
Enumeration of transport implementations (ways how libnetconf implements NETCONF transport protocol) ...
int nc_server_config_oper_get_kex_algs(const struct ly_ctx *ctx, struct lyd_node **kex_algs)
Gets the key exchange algorithms supported by the server from the 'iana-ssh-key-exchange-algs' YANG m...
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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_oper_get_hostkey_algs(const struct ly_ctx *ctx, struct lyd_node **hostkey_algs)
Gets the hostkey algorithms supported by the server from the 'iana-ssh-public-key-algs' YANG module...
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_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_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_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_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_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_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_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.
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_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_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_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_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_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_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_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_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_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_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_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_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_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_ch_client(const char *client_name, struct lyd_node **config)
Deletes a Call Home client from the YANG data.
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_oper_get_encryption_algs(const struct ly_ctx *ctx, struct lyd_node **encryption_algs)
Gets the encryption algorithms supported by the server from the 'iana-ssh-encryption-algs' YANG modul...
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_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_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_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_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_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_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.
NC_TLS_CTN_MAPTYPE
Enumeration of cert-to-name mapping types.
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.
NC_CH_START_WITH
Enumeration of Call Home client priority policy.
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_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_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_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_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_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_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_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_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_del_endpt(const char *endpt_name, struct lyd_node **config)
Deletes an endpoint from the YANG data.