Liblinphone 5.0.0

Typedefs | Functions
Authentication

Managing authentication: userid and passwords. More...

## Typedefs
typedef struct _LinphoneAuthInfo | LinphoneAuthInfo
| Object holding authentication information. More...

## Functions
void | linphone_core_add_auth_info (LinphoneCore *core, const LinphoneAuthInfo *info)
| Adds authentication information to the LinphoneCore. More...
void | linphone_core_remove_auth_info (LinphoneCore *core, const LinphoneAuthInfo *info)
| Removes an authentication information object. More...
const bctbx_list_t * | linphone_core_get_auth_info_list (const LinphoneCore *core)
| Returns an unmodifiable list of currently entered LinphoneAuthInfo. More...
const LinphoneAuthInfo * | linphone_core_find_auth_info (LinphoneCore *core, const char *realm, const char *username, const char *sip_domain)
| Find authentication info matching realm, username, domain criteria. More...
void | linphone_core_clear_all_auth_info (LinphoneCore *core)
| Clear all authentication information. More...
MS2_DEPRECATED LinphoneAuthInfo * | linphone_core_create_auth_info (LinphoneCore *core, const char *username, const char *userid, const char *passwd, const char *ha1, const char *realm, const char *domain)
| Create an authentication information with default values from Linphone core. More...
LinphoneAuthInfo * | linphone_auth_info_new (const char *username, const char *userid, const char *passwd, const char *ha1, const char *realm, const char *domain)
| Safely cast a belle_sip_object_t into LinphoneAuthInfo.
LinphoneAuthInfo * | linphone_auth_info_new_for_algorithm (const char *username, const char *userid, const char *passwd, const char *ha1, const char *realm, const char *domain, const char *algorithm)
LinphoneAuthInfo * | linphone_auth_info_clone (const LinphoneAuthInfo *auth_info)
| Instantiates a new auth info with values from source. More...
LinphoneAuthInfo * | linphone_auth_info_ref (LinphoneAuthInfo *auth_info)
| Take a reference on a LinphoneAuthInfo. More...
void | linphone_auth_info_unref (LinphoneAuthInfo *auth_info)
| Release a LinphoneAuthInfo. More...
void | linphone_auth_info_set_password (LinphoneAuthInfo *auth_info, const char *password)
| Sets the password. More...
void | linphone_auth_info_set_username (LinphoneAuthInfo *auth_info, const char *username)
| Sets the username. More...
void | linphone_auth_info_set_algorithm (LinphoneAuthInfo *auth_info, const char *algorithm)
| Sets the algorithm to use. More...
void | linphone_auth_info_set_available_algorithms (LinphoneAuthInfo *auth_info, const bctbx_list_t *algorithms)
| Sets the available algorithms list without testing unicity. More...
void | linphone_auth_info_add_available_algorithm (LinphoneAuthInfo *auth_info, const char *algorithm)
| Add an unique algorithm in the the available algorithms list : Algorithms that already exist will not be added. More...
void | linphone_auth_info_set_userid (LinphoneAuthInfo *auth_info, const char *user_id)
| Sets the user ID. More...
void | linphone_auth_info_set_realm (LinphoneAuthInfo *auth_info, const char *realm)
| Sets the realm. More...
void | linphone_auth_info_set_domain (LinphoneAuthInfo *auth_info, const char *domain)
| Sets the domain for which this authentication is valid. More...
void | linphone_auth_info_set_ha1 (LinphoneAuthInfo *auth_info, const char *ha1)
| Sets the ha1. More...
void | linphone_auth_info_set_tls_cert (LinphoneAuthInfo *auth_info, const char *tls_cert)
| Sets the TLS certificate. More...
void | linphone_auth_info_set_tls_key (LinphoneAuthInfo *auth_info, const char *tls_key)
| Sets the TLS key. More...
void | linphone_auth_info_set_tls_cert_path (LinphoneAuthInfo *auth_info, const char *tls_cert_path)
| Sets the TLS certificate path. More...
void | linphone_auth_info_set_tls_key_path (LinphoneAuthInfo *auth_info, const char *tls_key_path)
| Sets the TLS key path. More...
void | linphone_auth_info_clear_available_algorithms (LinphoneAuthInfo *auth_info)
| Remove all algorithms from the available algorithms list. More...
void | linphone_auth_info_set_tls_key_password (LinphoneAuthInfo *auth_info, const char *tls_key_password)
const char * | linphone_auth_info_get_username (const LinphoneAuthInfo *auth_info)
| Gets the username. More...
const char * | linphone_auth_info_get_algorithm (const LinphoneAuthInfo *auth_info)
| Gets the algorithm. More...
bctbx_list_t * | linphone_auth_info_get_available_algorithms (const LinphoneAuthInfo *auth_info)
| Gets all available algorithms. More...
const char * | linphone_auth_info_get_password (const LinphoneAuthInfo *auth_info)
| Gets the password. More...
const char * | linphone_auth_info_get_userid (const LinphoneAuthInfo *auth_info)
| Gets the user id. More...
const char * | linphone_auth_info_get_realm (const LinphoneAuthInfo *auth_info)
| Gets the realm. More...
const char * | linphone_auth_info_get_domain (const LinphoneAuthInfo *auth_info)
| Gets the domain. More...
const char * | linphone_auth_info_get_ha1 (const LinphoneAuthInfo *auth_info)
| Gets the ha1. More...
const char * | linphone_auth_info_get_tls_cert (const LinphoneAuthInfo *auth_info)
| Gets the TLS certificate. More...
const char * | linphone_auth_info_get_tls_key (const LinphoneAuthInfo *auth_info)
| Gets the TLS key. More...
const char * | linphone_auth_info_get_tls_cert_path (const LinphoneAuthInfo *auth_info)
| Gets the TLS certificate path. More...
const char * | linphone_auth_info_get_tls_key_path (const LinphoneAuthInfo *auth_info)
| Gets the TLS key path. More...
const char * | linphone_auth_info_get_tls_key_password (const LinphoneAuthInfo *auth_info)
bool_t | linphone_auth_info_is_equal_but_algorithms (const LinphoneAuthInfo *auth_info_1, const LinphoneAuthInfo *auth_info_2)
| Check if Authinfos are the same without taking account algorithms. More...
MS2_DEPRECATED void | linphone_auth_info_destroy (LinphoneAuthInfo *auth_info)
| Destroys the auth info. More...
void | linphone_auth_info_write_config (LinphoneConfig *config, LinphoneAuthInfo *auth_info, int pos)
LinphoneAuthInfo * | linphone_auth_info_new_from_config_file (LinphoneConfig *config, int pos)
MS2_DEPRECATED void | linphone_auth_info_set_passwd (LinphoneAuthInfo *auth_info, const char *passwd)
| Sets the password. More...
MS2_DEPRECATED const char * | linphone_auth_info_get_passwd (const LinphoneAuthInfo *auth_info)
| Gets the password. More...

## Detailed Description

Managing authentication: userid and passwords.

## Typedef Documentation

## ◆ LinphoneAuthInfo

typedef struct _LinphoneAuthInfo LinphoneAuthInfo

Object holding authentication information.

In most case, authentication information consists of a username and password. If realm isn't set, it will be deduced automatically from the first authentication challenge as for the hash algorithm. Sometimes, a userid is required by the proxy and then domain can be useful to discriminate different credentials. You can also use this object if you need to use a client certificate.

Once created and filled, a LinphoneAuthInfo must be added to the LinphoneCore in order to become known and used automatically when needed. Use linphone_core_add_auth_info() for that purpose.

The LinphoneCore object can take the initiative to request authentication information when needed to the application through the authentication_requested() callback of it's LinphoneCoreCbs.

The application can respond to this information request later using linphone_core_add_auth_info(). This will unblock all pending authentication transactions and retry them with authentication headers.

## Function Documentation

## ◆ linphone_auth_info_add_available_algorithm()

void linphone_auth_info_add_available_algorithm | ( | LinphoneAuthInfo * | auth_info,
|  | const char * | algorithm
| ) |  |

Add an unique algorithm in the the available algorithms list : Algorithms that already exist will not be added.

Parameters

  auth_info | The LinphoneAuthInfo object.
  algorithm | The algorithm to add.

## ◆ linphone_auth_info_clear_available_algorithms()

void linphone_auth_info_clear_available_algorithms | ( | LinphoneAuthInfo * | auth_info | ) |

Remove all algorithms from the available algorithms list.

Parameters

  auth_info | The LinphoneAuthInfo object.

## ◆ linphone_auth_info_clone()

LinphoneAuthInfo * linphone_auth_info_clone | ( | const LinphoneAuthInfo * | auth_info | ) |

Instantiates a new auth info with values from source.

Parameters

  auth_info | The LinphoneAuthInfo object to be cloned.

Returns
  The newly created LinphoneAuthInfo object.

## ◆ linphone_auth_info_destroy()

MS2_DEPRECATED void linphone_auth_info_destroy | ( | LinphoneAuthInfo * | auth_info | ) |

Destroys the auth info.

Parameters

  auth_info | The LinphoneAuthInfo object.

Deprecated:
  13/10/2017 use linphone_auth_info_unref() instead

## ◆ linphone_auth_info_get_algorithm()

const char * linphone_auth_info_get_algorithm | ( | const LinphoneAuthInfo * | auth_info | ) |

Gets the algorithm.

Parameters

  auth_info | The LinphoneAuthInfo object.

Returns
  The algorithm.

## ◆ linphone_auth_info_get_available_algorithms()

bctbx_list_t * linphone_auth_info_get_available_algorithms | ( | const LinphoneAuthInfo * | auth_info | ) |

Gets all available algorithms.

Parameters

  auth_info | The LinphoneAuthInfo object.

Returns
  A list of available algorithms.

## ◆ linphone_auth_info_get_domain()

const char * linphone_auth_info_get_domain | ( | const LinphoneAuthInfo * | auth_info | ) |

Gets the domain.

Parameters

  auth_info | The LinphoneAuthInfo object.

Returns
  The domain.

## ◆ linphone_auth_info_get_ha1()

const char * linphone_auth_info_get_ha1 | ( | const LinphoneAuthInfo * | auth_info | ) |

Gets the ha1.

Parameters

  auth_info | The LinphoneAuthInfo object.

Returns
  The ha1.

## ◆ linphone_auth_info_get_passwd()

MS2_DEPRECATED const char * linphone_auth_info_get_passwd | ( | const LinphoneAuthInfo * | auth_info | ) |

Gets the password.

Parameters

  auth_info | The LinphoneAuthInfo object.

Returns
  The password.

Deprecated:
  13/10/2017 use linphone_auth_info_get_password instead

## ◆ linphone_auth_info_get_password()

const char * linphone_auth_info_get_password | ( | const LinphoneAuthInfo * | auth_info | ) |

Gets the password.

Parameters

  auth_info | The LinphoneAuthInfo object.

Returns
  The password.

## ◆ linphone_auth_info_get_realm()

const char * linphone_auth_info_get_realm | ( | const LinphoneAuthInfo * | auth_info | ) |

Gets the realm.

Parameters

  auth_info | The LinphoneAuthInfo object.

Returns
  The realm.

## ◆ linphone_auth_info_get_tls_cert()

const char * linphone_auth_info_get_tls_cert | ( | const LinphoneAuthInfo * | auth_info | ) |

Gets the TLS certificate.

Parameters

  auth_info | The LinphoneAuthInfo object.

Returns
  The TLS certificate.

## ◆ linphone_auth_info_get_tls_cert_path()

const char * linphone_auth_info_get_tls_cert_path | ( | const LinphoneAuthInfo * | auth_info | ) |

Gets the TLS certificate path.

Parameters

  auth_info | The LinphoneAuthInfo object.

Returns
  The TLS certificate path.

## ◆ linphone_auth_info_get_tls_key()

const char * linphone_auth_info_get_tls_key | ( | const LinphoneAuthInfo * | auth_info | ) |

Gets the TLS key.

Parameters

  auth_info | The LinphoneAuthInfo object.

Returns
  The TLS key.

## ◆ linphone_auth_info_get_tls_key_path()

const char * linphone_auth_info_get_tls_key_path | ( | const LinphoneAuthInfo * | auth_info | ) |

Gets the TLS key path.

Parameters

  auth_info | The LinphoneAuthInfo object.

Returns
  The TLS key path.

## ◆ linphone_auth_info_get_userid()

const char * linphone_auth_info_get_userid | ( | const LinphoneAuthInfo * | auth_info | ) |

Gets the user id.

Parameters

  auth_info | The LinphoneAuthInfo object.

Returns
  The user id.

## ◆ linphone_auth_info_get_username()

const char * linphone_auth_info_get_username | ( | const LinphoneAuthInfo * | auth_info | ) |

Gets the username.

Parameters

  auth_info | The LinphoneAuthInfo object.

Returns
  The username.

## ◆ linphone_auth_info_is_equal_but_algorithms()

bool_t linphone_auth_info_is_equal_but_algorithms | ( | const LinphoneAuthInfo * | auth_info_1,
|  | const LinphoneAuthInfo * | auth_info_2
| ) |  |

Check if Authinfos are the same without taking account algorithms.

Parameters

  auth_info_1 | The first LinphoneAuthInfo object.
  auth_info_2 | The second LinphoneAuthInfo object.

Returns
  TRUE if all fields (Username, UserId, Realm, Domain) are the same.

## ◆ linphone_auth_info_ref()

LinphoneAuthInfo * linphone_auth_info_ref | ( | LinphoneAuthInfo * | auth_info | ) |

Take a reference on a LinphoneAuthInfo.

Parameters

  auth_info | The LinphoneAuthInfo object.

Returns
  the same LinphoneAuthInfo object.

## ◆ linphone_auth_info_set_algorithm()

void linphone_auth_info_set_algorithm | ( | LinphoneAuthInfo * | auth_info,
|  | const char * | algorithm
| ) |  |

Sets the algorithm to use.

Parameters

  auth_info | The LinphoneAuthInfo object.
  algorithm | The algorithm.

## ◆ linphone_auth_info_set_available_algorithms()

void linphone_auth_info_set_available_algorithms | ( | LinphoneAuthInfo * | auth_info,
|  | const bctbx_list_t * | algorithms
| ) |  |

Sets the available algorithms list without testing unicity.

Parameters

  auth_info | The LinphoneAuthInfo object.
  algorithms | The available algorithms list.

## ◆ linphone_auth_info_set_domain()

void linphone_auth_info_set_domain | ( | LinphoneAuthInfo * | auth_info,
|  | const char * | domain
| ) |  |

Sets the domain for which this authentication is valid.

Parameters

  auth_info | The LinphoneAuthInfo object.
  domain | The domain. This should not be necessary because realm is supposed to be unique and sufficient. However, many SIP servers don't set realm correctly, then domain has to be used to distinguish between several SIP account bearing the same username.

## ◆ linphone_auth_info_set_ha1()

void linphone_auth_info_set_ha1 | ( | LinphoneAuthInfo * | auth_info,
|  | const char * | ha1
| ) |  |

Sets the ha1.

Parameters

  auth_info | The LinphoneAuthInfo object.
  ha1 | The ha1.

## ◆ linphone_auth_info_set_passwd()

MS2_DEPRECATED void linphone_auth_info_set_passwd | ( | LinphoneAuthInfo * | auth_info,
|  | const char * | passwd
| ) |  |

Sets the password.

Parameters

  auth_info | The LinphoneAuthInfo object.
  passwd | The password.

Deprecated:
  13/10/2017 use linphone_auth_info_set_password instead

## ◆ linphone_auth_info_set_password()

void linphone_auth_info_set_password | ( | LinphoneAuthInfo * | auth_info,
|  | const char * | password
| ) |  |

Sets the password.

Parameters

  auth_info | The LinphoneAuthInfo object.
  password | The password.

## ◆ linphone_auth_info_set_realm()

void linphone_auth_info_set_realm | ( | LinphoneAuthInfo * | auth_info,
|  | const char * | realm
| ) |  |

Sets the realm.

Parameters

  auth_info | The LinphoneAuthInfo object.
  realm | The realm.

## ◆ linphone_auth_info_set_tls_cert()

void linphone_auth_info_set_tls_cert | ( | LinphoneAuthInfo * | auth_info,
|  | const char * | tls_cert
| ) |  |

Sets the TLS certificate.

Parameters

  auth_info | The LinphoneAuthInfo object.
  tls_cert | The TLS certificate.

## ◆ linphone_auth_info_set_tls_cert_path()

void linphone_auth_info_set_tls_cert_path | ( | LinphoneAuthInfo * | auth_info,
|  | const char * | tls_cert_path
| ) |  |

Sets the TLS certificate path.

Parameters

  auth_info | The LinphoneAuthInfo object.
  tls_cert_path | The TLS certificate path.

## ◆ linphone_auth_info_set_tls_key()

void linphone_auth_info_set_tls_key | ( | LinphoneAuthInfo * | auth_info,
|  | const char * | tls_key
| ) |  |

Sets the TLS key.

Parameters

  auth_info | The LinphoneAuthInfo object.
  tls_key | The TLS key.

## ◆ linphone_auth_info_set_tls_key_path()

void linphone_auth_info_set_tls_key_path | ( | LinphoneAuthInfo * | auth_info,
|  | const char * | tls_key_path
| ) |  |

Sets the TLS key path.

Parameters

  auth_info | The LinphoneAuthInfo object.
  tls_key_path | The TLS key path.

## ◆ linphone_auth_info_set_userid()

void linphone_auth_info_set_userid | ( | LinphoneAuthInfo * | auth_info,
|  | const char * | user_id
| ) |  |

Sets the user ID.

Parameters

  auth_info | The LinphoneAuthInfo object.
  user_id | The userid.

## ◆ linphone_auth_info_set_username()

void linphone_auth_info_set_username | ( | LinphoneAuthInfo * | auth_info,
|  | const char * | username
| ) |  |

Sets the username.

Parameters

  auth_info | The LinphoneAuthInfo object.
  username | The username.

## ◆ linphone_auth_info_unref()

void linphone_auth_info_unref | ( | LinphoneAuthInfo * | auth_info | ) |

Release a LinphoneAuthInfo.

Parameters

  auth_info | The LinphoneAuthInfo object.

## ◆ linphone_core_add_auth_info()

void linphone_core_add_auth_info | ( | LinphoneCore * | core,
|  | const LinphoneAuthInfo * | info
| ) |  |

Adds authentication information to the LinphoneCore.

That piece of information will be used during all SIP transactions that require authentication.

Parameters

  core | The LinphoneCore.
  info | The LinphoneAuthInfo to add.

## ◆ linphone_core_clear_all_auth_info()

void linphone_core_clear_all_auth_info | ( | LinphoneCore * | core | ) |

Clear all authentication information.

Parameters

  core | the LinphoneCore

## ◆ linphone_core_create_auth_info()

MS2_DEPRECATED LinphoneAuthInfo * linphone_core_create_auth_info | ( | LinphoneCore * | core,
|  | const char * | username,
|  | const char * | userid,
|  | const char * | passwd,
|  | const char * | ha1,
|  | const char * | realm,
|  | const char * | domain
| ) |  |

Create an authentication information with default values from Linphone core.

Parameters

  core | LinphoneCore object
  username | String containing the username part of the authentication credentials
  userid | String containing the username to use to calculate the authentication digest (optional)
  passwd | String containing the password of the authentication credentials (optional, either passwd or ha1 must be set)
  ha1 | String containing a ha1 hash of the password (optional, either passwd or ha1 must be set)
  realm | String used to discriminate different SIP authentication domains (optional)
  domain | String containing the SIP domain for which this authentication information is valid, if it has to be restricted for a single SIP domain.

Returns
  LinphoneAuthInfo with default values set

Deprecated:
  13/02/2019 use linphone_factory_create_auth_info() instead.

## ◆ linphone_core_find_auth_info()

const LinphoneAuthInfo * linphone_core_find_auth_info | ( | LinphoneCore * | core,
|  | const char * | realm,
|  | const char * | username,
|  | const char * | sip_domain
| ) |  |

Find authentication info matching realm, username, domain criteria.

First of all, (realm,username) pair are searched. If multiple results (which should not happen because realm are supposed to be unique), then domain is added to the search.

Parameters

  core | the LinphoneCore
  realm | the authentication 'realm' (optional)
  username | the SIP username to be authenticated (mandatory)
  sip_domain | the SIP domain name (optional)

Returns
  a LinphoneAuthInfo if found.

## ◆ linphone_core_get_auth_info_list()

const bctbx_list_t * linphone_core_get_auth_info_list | ( | const LinphoneCore * | core | ) |

Returns an unmodifiable list of currently entered LinphoneAuthInfo.

Parameters

  core | The LinphoneCore object.

Returns
  A list of LinphoneAuthInfo.

## ◆ linphone_core_remove_auth_info()

void linphone_core_remove_auth_info | ( | LinphoneCore * | core,
|  | const LinphoneAuthInfo * | info
| ) |  |

Removes an authentication information object.

Parameters

  core | The LinphoneCore from which the LinphoneAuthInfo will be removed.
  info | The LinphoneAuthInfo to remove.