libnetconf2  3.5.4
NETCONF server and client library in C.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Client-side Call Home on SSH

SSH settings for the Call Home functionality. More...

Collaboration diagram for Client-side Call Home on SSH:

Functions

int nc_client_ssh_ch_add_bind_listen (const char *address, uint16_t port)
 Add a new client bind and start listening on it for SSH Call Home connections. More...
 
int nc_client_ssh_ch_add_keypair (const char *pub_key, const char *priv_key)
 Add an SSH public and private key pair to be used for Call Home client authentication. More...
 
int nc_client_ssh_ch_del_bind (const char *address, uint16_t port)
 Remove an SSH listening client bind. More...
 
int nc_client_ssh_ch_del_keypair (int idx)
 Remove an SSH public and private key pair that was used for Call Home client authentication. More...
 
void nc_client_ssh_ch_get_auth_interactive_clb (char *(**auth_interactive)(const char *auth_name, const char *instruction, const char *prompt, int echo, void *priv), void **priv)
 Get currently set SSH Call Home interactive authentication callback and its private data previously set by nc_client_ssh_ch_set_auth_interactive_clb(). More...
 
void nc_client_ssh_ch_get_auth_password_clb (char *(**auth_password)(const char *username, const char *hostname, void *priv), void **priv)
 Get currently set SSH Call Home password authentication callback and its private data previously set by nc_client_ssh_ch_set_auth_password_clb(). More...
 
int16_t nc_client_ssh_ch_get_auth_pref (NC_SSH_AUTH_TYPE auth_type)
 Get SSH Call Home authentication method preference. More...
 
void nc_client_ssh_ch_get_auth_privkey_passphrase_clb (char *(**auth_privkey_passphrase)(const char *privkey_path, void *priv), void **priv)
 Get currently set SSH Call Home publickey authentication encrypted private key passphrase callback and its private data previously set by nc_client_ssh_ch_set_auth_privkey_passphrase_clb(). More...
 
int nc_client_ssh_ch_get_keypair (int idx, const char **pub_key, const char **priv_key)
 Get a specific keypair set to be used for Call Home client authentication. More...
 
int nc_client_ssh_ch_get_keypair_count (void)
 Get the number of public an private key pairs set to be used for Call Home client authentication. More...
 
const char * nc_client_ssh_ch_get_username (void)
 Get client Call Home SSH username used for authentication. More...
 
void nc_client_ssh_ch_set_auth_interactive_clb (char *(*auth_interactive)(const char *auth_name, const char *instruction, const char *prompt, int echo, void *priv), void *priv)
 Set SSH Call Home interactive authentication callback. More...
 
void nc_client_ssh_ch_set_auth_password_clb (char *(*auth_password)(const char *username, const char *hostname, void *priv), void *priv)
 Set SSH Call Home password authentication callback. More...
 
void nc_client_ssh_ch_set_auth_pref (NC_SSH_AUTH_TYPE auth_type, int16_t pref)
 Set SSH Call Home authentication method preference. More...
 
void nc_client_ssh_ch_set_auth_privkey_passphrase_clb (char *(*auth_privkey_passphrase)(const char *privkey_path, void *priv), void *priv)
 Set SSH Call Home publickey authentication encrypted private key passphrase callback. More...
 
void nc_client_ssh_ch_set_knownhosts_mode (NC_SSH_KNOWNHOSTS_MODE mode)
 Set SSH Call Home behaviour of checking the host key and adding/reading entries to/from the known_hosts file. More...
 
int nc_client_ssh_ch_set_knownhosts_path (const char *path)
 Set SSH Call Home path to the known_hosts file for connections. More...
 
int nc_client_ssh_ch_set_username (const char *username)
 Set client Call Home SSH username used for authentication. More...
 

Detailed Description

SSH settings for the Call Home functionality.

Function Documentation

void nc_client_ssh_ch_set_knownhosts_mode ( NC_SSH_KNOWNHOSTS_MODE  mode)

Set SSH Call Home behaviour of checking the host key and adding/reading entries to/from the known_hosts file.

The default mode is NC_SSH_KNOWNHOSTS_ASK.

Parameters
[in]modeServer host key checking mode.
int nc_client_ssh_ch_set_knownhosts_path ( const char *  path)

Set SSH Call Home path to the known_hosts file for connections.

Repetetive calling replaces the value. If the given file doesn't exist and the process has sufficient rights, it gets created whenever the file is needed, otherwise an error occurs. If NULL is passed or the path isn't set, the default known_hosts file will be used.

Parameters
[in]pathPath to the known_hosts file.
Returns
0 on success, 1 on error.
void nc_client_ssh_ch_set_auth_password_clb ( char *(*)(const char *username, const char *hostname, void *priv)  auth_password,
void *  priv 
)

Set SSH Call Home password authentication callback.

Repetitive calling causes replacing of the previous callback and its private data. Caller is responsible for freeing the private data when necessary (the private data can be obtained by nc_client_ssh_ch_get_auth_password_clb()).

Parameters
[in]auth_passwordFunction to call, returns the password for username@hostname. If NULL, the default callback is set.
[in]privOptional private data to be passed to the callback function.
void nc_client_ssh_ch_get_auth_password_clb ( char *(**)(const char *username, const char *hostname, void *priv)  auth_password,
void **  priv 
)

Get currently set SSH Call Home password authentication callback and its private data previously set by nc_client_ssh_ch_set_auth_password_clb().

Parameters
[out]auth_passwordCurrently set callback, NULL in case of the default callback.
[out]privCurrently set (optional) private data to be passed to the callback function.
void nc_client_ssh_ch_set_auth_interactive_clb ( char *(*)(const char *auth_name, const char *instruction, const char *prompt, int echo, void *priv)  auth_interactive,
void *  priv 
)

Set SSH Call Home interactive authentication callback.

Repetitive calling causes replacing of the previous callback and its private data. Caller is responsible for freeing the private data when necessary (the private data can be obtained by nc_client_ssh_ch_get_auth_interactive_clb()).

Parameters
[in]auth_interactiveFunction to call for every question, returns the answer for authentication name with instruction and echoing prompt. If NULL, the default callback is set.
[in]privOptional private data to be passed to the callback function.
void nc_client_ssh_ch_get_auth_interactive_clb ( char *(**)(const char *auth_name, const char *instruction, const char *prompt, int echo, void *priv)  auth_interactive,
void **  priv 
)

Get currently set SSH Call Home interactive authentication callback and its private data previously set by nc_client_ssh_ch_set_auth_interactive_clb().

Parameters
[out]auth_interactiveCurrently set callback, NULL in case of the default callback.
[out]privCurrently set (optional) private data to be passed to the callback function.
void nc_client_ssh_ch_set_auth_privkey_passphrase_clb ( char *(*)(const char *privkey_path, void *priv)  auth_privkey_passphrase,
void *  priv 
)

Set SSH Call Home publickey authentication encrypted private key passphrase callback.

Repetitive calling causes replacing of the previous callback and its private data. Caller is responsible for freeing the private data when necessary (the private data can be obtained by nc_client_ssh_ch_get_auth_privkey_passphrase_clb()).

Parameters
[in]auth_privkey_passphraseFunction to call for every question, returns the passphrase for the specific private key.
[in]privOptional private data to be passed to the callback function.
void nc_client_ssh_ch_get_auth_privkey_passphrase_clb ( char *(**)(const char *privkey_path, void *priv)  auth_privkey_passphrase,
void **  priv 
)

Get currently set SSH Call Home publickey authentication encrypted private key passphrase callback and its private data previously set by nc_client_ssh_ch_set_auth_privkey_passphrase_clb().

Parameters
[out]auth_privkey_passphraseCurrently set callback, NULL in case of the default callback.
[out]privCurrently set (optional) private data to be passed to the callback function.
int nc_client_ssh_ch_add_bind_listen ( const char *  address,
uint16_t  port 
)

Add a new client bind and start listening on it for SSH Call Home connections.

Parameters
[in]addressIP address to bind to.
[in]portPort to bind to.
Returns
0 on success, -1 on error.
int nc_client_ssh_ch_del_bind ( const char *  address,
uint16_t  port 
)

Remove an SSH listening client bind.

Parameters
[in]addressIP address the socket was bound to. NULL matches all.
[in]portPort the socket was bound to. 0 matches all.
Returns
0 on success, -1 on not found.
int nc_client_ssh_ch_add_keypair ( const char *  pub_key,
const char *  priv_key 
)

Add an SSH public and private key pair to be used for Call Home client authentication.

Private key can be encrypted, the passphrase will be asked for before using it.

Parameters
[in]pub_keyPath to the public key.
[in]priv_keyPath to the private key.
Returns
0 on success, -1 on error.
int nc_client_ssh_ch_del_keypair ( int  idx)

Remove an SSH public and private key pair that was used for Call Home client authentication.

Parameters
[in]idxIndex of the keypair starting with 0.
Returns
0 on success, -1 on error.
int nc_client_ssh_ch_get_keypair_count ( void  )

Get the number of public an private key pairs set to be used for Call Home client authentication.

Returns
Keypair count.
int nc_client_ssh_ch_get_keypair ( int  idx,
const char **  pub_key,
const char **  priv_key 
)

Get a specific keypair set to be used for Call Home client authentication.

Parameters
[in]idxIndex of the specific keypair.
[out]pub_keyPath to the public key.
[out]priv_keyPath to the private key.
Returns
0 on success, -1 on error.
void nc_client_ssh_ch_set_auth_pref ( NC_SSH_AUTH_TYPE  auth_type,
int16_t  pref 
)

Set SSH Call Home authentication method preference.

The default preference is as follows:

  • public key authentication (3)
  • password authentication (2)
  • interactive authentication (1)
Parameters
[in]auth_typeAuthentication method to modify the preference of.
[in]prefPreference of auth_type. Higher number increases priority, negative values disable the method.
int16_t nc_client_ssh_ch_get_auth_pref ( NC_SSH_AUTH_TYPE  auth_type)

Get SSH Call Home authentication method preference.

Parameters
[in]auth_typeAuthentication method to retrieve the prefrence of.
Returns
Preference of the auth_type.
int nc_client_ssh_ch_set_username ( const char *  username)

Set client Call Home SSH username used for authentication.

Parameters
[in]usernameUsername to use.
Returns
0 on success, -1 on error.
const char* nc_client_ssh_ch_get_username ( void  )

Get client Call Home SSH username used for authentication.

Returns
Username used.