Liblinphone  5.4.0
Typedefs | Functions
Authentication

Managing authentication: userid and passwords. More...

Typedefs

typedef struct _LinphoneAuthInfo LinphoneAuthInfo
 Object holding authentication information. More...
 
typedef struct _LinphoneBearerToken LinphoneBearerToken
 Object that represents a bearer token (eg OAUTH). 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 LinphoneAuthInfolinphone_core_find_auth_info (LinphoneCore *core, const char *realm, const char *username, const char *sip_domain)
 Finds authentication info matching realm, username, domain criteria. More...
 
void linphone_core_abort_authentication (LinphoneCore *core, const LinphoneAuthInfo *info)
 This method is used to abort a user authentication request initiated by LinphoneCore from the authentication_requested callback of LinphoneCoreCbs. More...
 
void linphone_core_clear_all_auth_info (LinphoneCore *core)
 Clears all authentication information. More...
 
void linphone_core_set_digest_authentication_policy (LinphoneCore *core, LinphoneDigestAuthenticationPolicy *policy)
 Setup a new digest authentication policy applicable for SIP and HTTP. More...
 
const LinphoneDigestAuthenticationPolicylinphone_core_get_digest_authentication_policy (const LinphoneCore *core)
 Get the current digest authentication policy applicable for SIP and HTTP. More...
 
MS2_DEPRECATED LinphoneAuthInfolinphone_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...
 
LinphoneAuthInfolinphone_auth_info_new (const char *username, const char *userid, const char *passwd, const char *ha1, const char *realm, const char *domain)
 
LinphoneAuthInfolinphone_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)
 
LinphoneAuthInfolinphone_auth_info_clone (const LinphoneAuthInfo *auth_info)
 Instantiates a new auth info with values from source. More...
 
LinphoneAuthInfolinphone_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...
 
const LinphoneBearerTokenlinphone_auth_info_get_access_token (const LinphoneAuthInfo *auth_info)
 Return a previously set access token. More...
 
const LinphoneBearerTokenlinphone_auth_info_get_refresh_token (const LinphoneAuthInfo *auth_info)
 Return a previously set refresh token. More...
 
void linphone_auth_info_set_access_token (LinphoneAuthInfo *auth_info, LinphoneBearerToken *token)
 Set an access token to authenticate, to be used when the server supports the "bearer" authentication method. More...
 
void linphone_auth_info_set_refresh_token (LinphoneAuthInfo *auth_info, LinphoneBearerToken *token)
 Set a refresh token to use when the access token set with linphone_auth_info_set_access_token() expires. More...
 
void linphone_auth_info_set_authorization_server (LinphoneAuthInfo *auth_info, const char *uri)
 Set the authorization server uri. More...
 
const char * linphone_auth_info_get_authorization_server (const LinphoneAuthInfo *auth_info)
 Get the previously set authorization server uri. More...
 
const char * linphone_auth_info_get_token_endpoint_uri (const LinphoneAuthInfo *auth_info)
 Get the previously set token endpoint https uri (OAUTH2). More...
 
void linphone_auth_info_set_token_endpoint_uri (LinphoneAuthInfo *auth_info, const char *uri)
 Set the token endpoint https uri (OAUTH2). More...
 
const char * linphone_auth_info_get_client_id (const LinphoneAuthInfo *auth_info)
 Get the previously set OAUTH2 client_id. More...
 
void linphone_auth_info_set_client_id (LinphoneAuthInfo *auth_info, const char *client_id)
 Set the OAUTH2 client_id. More...
 
const char * linphone_auth_info_get_client_secret (const LinphoneAuthInfo *auth_info)
 Get the previously set OAUTH2 client_secret. More...
 
void linphone_auth_info_set_client_secret (LinphoneAuthInfo *auth_info, const char *client_secret)
 Set the OAUTH2 client_secret. More...
 
time_t linphone_auth_info_get_expires (const LinphoneAuthInfo *auth_info)
 Get the expiration time for the current authentication information. More...
 
void linphone_auth_info_set_expires (LinphoneAuthInfo *auth_info, time_t expires)
 Set the expiration time for the current authentication information. More...
 
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...
 
MS2_DEPRECATED void linphone_auth_info_destroy (LinphoneAuthInfo *auth_info)
 Destroys the auth info. More...
 
LinphoneDigestAuthenticationPolicylinphone_digest_authentication_policy_ref (LinphoneDigestAuthenticationPolicy *policy)
 Acquire a reference. More...
 
void linphone_digest_authentication_policy_unref (LinphoneDigestAuthenticationPolicy *policy)
 Release reference. More...
 
void linphone_digest_authentication_policy_set_allow_md5 (LinphoneDigestAuthenticationPolicy *policy, bool_t value)
 Set whether MD5 hash algorithm is allowed. More...
 
bool_t linphone_digest_authentication_policy_get_allow_md5 (const LinphoneDigestAuthenticationPolicy *policy)
 Get whether MD5 hash algorithm is allowed. More...
 
void linphone_digest_authentication_policy_set_allow_no_qop (LinphoneDigestAuthenticationPolicy *policy, bool_t value)
 Set whether digest authentication without 'qop=auth' mode is allowed. More...
 
bool_t linphone_digest_authentication_policy_get_allow_no_qop (const LinphoneDigestAuthenticationPolicy *policy)
 Get whether digest authentication without 'qop=auth' mode is allowed. More...
 
void * linphone_digest_authentication_policy_get_user_data (const LinphoneDigestAuthenticationPolicy *policy)
 Retrieve the user pointer associated with the LinphoneDigestAuthenticationPolicy object. More...
 
void linphone_digest_authentication_policy_set_user_data (LinphoneDigestAuthenticationPolicy *policy, void *user_data)
 Assign a user pointer to the LinphoneDigestAuthenticationPolicy object. More...
 
const char * linphone_bearer_token_get_token (const LinphoneBearerToken *obj)
 Get the token as a string. More...
 
time_t linphone_bearer_token_get_expiration_time (const LinphoneBearerToken *obj)
 Get the token exiration time, as a number of seconds since EPOCH. More...
 
LinphoneBearerTokenlinphone_bearer_token_ref (LinphoneBearerToken *obj)
 Increment the reference count of the token object. More...
 
void linphone_bearer_token_unref (LinphoneBearerToken *obj)
 Decrement the reference count of the token object, which may free it. 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.

◆ LinphoneBearerToken

typedef struct _LinphoneBearerToken LinphoneBearerToken

Object that represents a bearer token (eg OAUTH).

SIP servers may support "bearer" kind of authentication, in which case an authentication token needs to be supplied in order to authenticate to the SIP service. Applications are responsible to obtain the token from an authentication server. In order to pass it to liblinphone for usage, the token needs to be encapsulated into a LinphoneBearerToken, together with its expiration time and target server name for which it is intended to use, then passed into a LinphoneAuthInfo object. Both access and refresh tokens may be represented. If both are provided to the LinphoneAuthInfo, then liblinphone automatically uses the refresh token to obtain a new access token when the latter is expired.

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_infoThe LinphoneAuthInfo object.
algorithmThe 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_infoThe 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_infoThe 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_infoThe LinphoneAuthInfo object.
Deprecated:
13/10/2017 use linphone_auth_info_unref() instead

◆ linphone_auth_info_get_access_token()

const LinphoneBearerToken* linphone_auth_info_get_access_token ( const LinphoneAuthInfo auth_info)

Return a previously set access token.

Parameters
auth_infoThe LinphoneAuthInfo object.
Returns
the access token, as a LinphoneBearerToken object

◆ linphone_auth_info_get_algorithm()

const char* linphone_auth_info_get_algorithm ( const LinphoneAuthInfo auth_info)

Gets the algorithm.

Parameters
auth_infoThe LinphoneAuthInfo object.
Returns
The algorithm.

◆ linphone_auth_info_get_authorization_server()

const char* linphone_auth_info_get_authorization_server ( const LinphoneAuthInfo auth_info)

Get the previously set authorization server uri.

Parameters
auth_infoThe LinphoneAuthInfo object.
Returns
the authorization server uri.

◆ 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_infoThe LinphoneAuthInfo object.
Returns
A list of available algorithms.

◆ linphone_auth_info_get_client_id()

const char* linphone_auth_info_get_client_id ( const LinphoneAuthInfo auth_info)

Get the previously set OAUTH2 client_id.

Parameters
auth_infoThe LinphoneAuthInfo object.
Returns
the client_id.

◆ linphone_auth_info_get_client_secret()

const char* linphone_auth_info_get_client_secret ( const LinphoneAuthInfo auth_info)

Get the previously set OAUTH2 client_secret.

Parameters
auth_infoThe LinphoneAuthInfo object.
Returns
the client_secret.

◆ linphone_auth_info_get_domain()

const char* linphone_auth_info_get_domain ( const LinphoneAuthInfo auth_info)

Gets the domain.

Parameters
auth_infoThe LinphoneAuthInfo object.
Returns
The domain.

◆ linphone_auth_info_get_expires()

time_t linphone_auth_info_get_expires ( const LinphoneAuthInfo auth_info)

Get the expiration time for the current authentication information.

Parameters
auth_infoThe LinphoneAuthInfo object.
Returns
The expiration time as a number of seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC)

◆ linphone_auth_info_get_ha1()

const char* linphone_auth_info_get_ha1 ( const LinphoneAuthInfo auth_info)

Gets the ha1.

Parameters
auth_infoThe 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_infoThe 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_infoThe 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_infoThe LinphoneAuthInfo object.
Returns
The realm.

◆ linphone_auth_info_get_refresh_token()

const LinphoneBearerToken* linphone_auth_info_get_refresh_token ( const LinphoneAuthInfo auth_info)

Return a previously set refresh token.

Parameters
auth_infoThe LinphoneAuthInfo object.
Returns
the refresh token, as a LinphoneBearerToken object.

◆ linphone_auth_info_get_tls_cert()

const char* linphone_auth_info_get_tls_cert ( const LinphoneAuthInfo auth_info)

Gets the TLS certificate.

Parameters
auth_infoThe 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_infoThe 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_infoThe 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_infoThe LinphoneAuthInfo object.
Returns
The TLS key path.

◆ linphone_auth_info_get_token_endpoint_uri()

const char* linphone_auth_info_get_token_endpoint_uri ( const LinphoneAuthInfo auth_info)

Get the previously set token endpoint https uri (OAUTH2).

Parameters
auth_infoThe LinphoneAuthInfo object.
Returns
the token endpoint uri.

◆ linphone_auth_info_get_userid()

const char* linphone_auth_info_get_userid ( const LinphoneAuthInfo auth_info)

Gets the user id.

Parameters
auth_infoThe 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_infoThe 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_1The first LinphoneAuthInfo object.
auth_info_2The 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_infoThe LinphoneAuthInfo object.
Returns
the same LinphoneAuthInfo object.

◆ linphone_auth_info_set_access_token()

void linphone_auth_info_set_access_token ( LinphoneAuthInfo auth_info,
LinphoneBearerToken token 
)

Set an access token to authenticate, to be used when the server supports the "bearer" authentication method.

The LinphoneAuthInfo takes a reference to the supplied token, it is not making any copy.

Parameters
auth_infoThe LinphoneAuthInfo object
tokenThe LinphoneBearerToken object representing the access token.

◆ linphone_auth_info_set_algorithm()

void linphone_auth_info_set_algorithm ( LinphoneAuthInfo auth_info,
const char *  algorithm 
)

Sets the algorithm to use.

Parameters
auth_infoThe LinphoneAuthInfo object.
algorithmThe algorithm.

◆ linphone_auth_info_set_authorization_server()

void linphone_auth_info_set_authorization_server ( LinphoneAuthInfo auth_info,
const char *  uri 
)

Set the authorization server uri.

Parameters
auth_infoThe LinphoneAuthInfo object.
urithe authorization server uri.

◆ 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_infoThe LinphoneAuthInfo object.
algorithmsThe available algorithms list.

◆ linphone_auth_info_set_client_id()

void linphone_auth_info_set_client_id ( LinphoneAuthInfo auth_info,
const char *  client_id 
)

Set the OAUTH2 client_id.

The client_id may be used to renew access token from refresh token. If a client_secret is required, it has to be set through linphone_auth_info_set_client_secret().

See also
linphone_auth_info_set_refresh_token()
Parameters
auth_infoThe LinphoneAuthInfo object.
client_idthe client_id.

◆ linphone_auth_info_set_client_secret()

void linphone_auth_info_set_client_secret ( LinphoneAuthInfo auth_info,
const char *  client_secret 
)

Set the OAUTH2 client_secret.

The client_secret may be used to renew access token from refresh token.

See also
linphone_auth_info_set_refresh_token()
Parameters
auth_infoThe LinphoneAuthInfo object.
client_secretthe client_secret.

◆ 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_infoThe LinphoneAuthInfo object.
domainThe 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_expires()

void linphone_auth_info_set_expires ( LinphoneAuthInfo auth_info,
time_t  expires 
)

Set the expiration time for the current authentication information.

Parameters
auth_infoThe LinphoneAuthInfo object.
expiresThe new expiration time in seconds. Use 0 to indicate no expiration.

◆ linphone_auth_info_set_ha1()

void linphone_auth_info_set_ha1 ( LinphoneAuthInfo auth_info,
const char *  ha1 
)

Sets the ha1.

Parameters
auth_infoThe LinphoneAuthInfo object.
ha1The 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_infoThe LinphoneAuthInfo object.
passwdThe 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_infoThe LinphoneAuthInfo object.
passwordThe password.

◆ linphone_auth_info_set_realm()

void linphone_auth_info_set_realm ( LinphoneAuthInfo auth_info,
const char *  realm 
)

Sets the realm.

Parameters
auth_infoThe LinphoneAuthInfo object.
realmThe realm.

◆ linphone_auth_info_set_refresh_token()

void linphone_auth_info_set_refresh_token ( LinphoneAuthInfo auth_info,
LinphoneBearerToken token 
)

Set a refresh token to use when the access token set with linphone_auth_info_set_access_token() expires.

The LinphoneAuthInfo takes a reference to the supplied token, it is not making any copy. Provided that the token endpoint uri was assigned with linphone_auth_info_set_token_endpoint_uri(), once the LinphoneAuthInfo is pushed in the LinphoneCore, LinphoneAuthInfo object automatically obtains new access token when needed, from the supplied refresh token.

Parameters
auth_infoThe LinphoneAuthInfo object
tokenThe LinphoneBearerToken object representing the refresh token.

◆ 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_infoThe LinphoneAuthInfo object.
tls_certThe 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_infoThe LinphoneAuthInfo object.
tls_cert_pathThe 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_infoThe LinphoneAuthInfo object.
tls_keyThe 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_infoThe LinphoneAuthInfo object.
tls_key_pathThe TLS key path.

◆ linphone_auth_info_set_token_endpoint_uri()

void linphone_auth_info_set_token_endpoint_uri ( LinphoneAuthInfo auth_info,
const char *  uri 
)

Set the token endpoint https uri (OAUTH2).

The token endpoint uri is used to renew access token from refresh token.

See also
linphone_auth_info_set_refresh_token()
Parameters
auth_infoThe LinphoneAuthInfo object.
urithe token endpoint uri.

◆ linphone_auth_info_set_userid()

void linphone_auth_info_set_userid ( LinphoneAuthInfo auth_info,
const char *  user_id 
)

Sets the user ID.

Parameters
auth_infoThe LinphoneAuthInfo object.
user_idThe userid.

◆ linphone_auth_info_set_username()

void linphone_auth_info_set_username ( LinphoneAuthInfo auth_info,
const char *  username 
)

Sets the username.

Parameters
auth_infoThe LinphoneAuthInfo object.
usernameThe username.

◆ linphone_auth_info_unref()

void linphone_auth_info_unref ( LinphoneAuthInfo auth_info)

Release a LinphoneAuthInfo.

Parameters
auth_infoThe LinphoneAuthInfo object.

◆ linphone_bearer_token_get_expiration_time()

time_t linphone_bearer_token_get_expiration_time ( const LinphoneBearerToken obj)

Get the token exiration time, as a number of seconds since EPOCH.

Parameters
objthe LinphoneBearerToken
Returns
the expiration time

◆ linphone_bearer_token_get_token()

const char* linphone_bearer_token_get_token ( const LinphoneBearerToken obj)

Get the token as a string.

Parameters
objthe LinphoneBearerToken
Returns
the token.

◆ linphone_bearer_token_ref()

LinphoneBearerToken* linphone_bearer_token_ref ( LinphoneBearerToken obj)

Increment the reference count of the token object.

Parameters
objthe LinphoneBearerToken
Returns
the same LinphoneBearerToken

◆ linphone_bearer_token_unref()

void linphone_bearer_token_unref ( LinphoneBearerToken obj)

Decrement the reference count of the token object, which may free it.

Parameters
objthe LinphoneBearerToken

◆ linphone_core_abort_authentication()

void linphone_core_abort_authentication ( LinphoneCore core,
const LinphoneAuthInfo info 
)

This method is used to abort a user authentication request initiated by LinphoneCore from the authentication_requested callback of LinphoneCoreCbs.

Note
this function currently does not take into account the 'info' parameter. All pending authentication requests are aborted.
Parameters
corethe LinphoneCore
infothe LinphoneAuthInfo for which to abort authentication

◆ linphone_core_add_auth_info()

void linphone_core_add_auth_info ( LinphoneCore core,
const LinphoneAuthInfo info 
)

Adds authentication information to the LinphoneCore.

These nformation will be used during all SIP or HTTP transactions that require authentication.

Parameters
coreThe LinphoneCore.
infoThe LinphoneAuthInfo to add.

◆ linphone_core_clear_all_auth_info()

void linphone_core_clear_all_auth_info ( LinphoneCore core)

Clears all authentication information.

Parameters
corethe 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
coreLinphoneCore object
usernameString containing the username part of the authentication credentials
useridString containing the username to use to calculate the authentication digest (optional)
passwdString containing the password of the authentication credentials (optional, either passwd or ha1 must be set)
ha1String containing a ha1 hash of the password (optional, either passwd or ha1 must be set)
realmString used to discriminate different SIP authentication domains (optional)
domainString 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 
)

Finds 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
corethe LinphoneCore
realmthe authentication 'realm' (optional)
usernamethe SIP username to be authenticated (mandatory)
sip_domainthe 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
coreThe LinphoneCore object.
Returns
A list of LinphoneAuthInfo.

◆ linphone_core_get_digest_authentication_policy()

const LinphoneDigestAuthenticationPolicy* linphone_core_get_digest_authentication_policy ( const LinphoneCore core)

Get the current digest authentication policy applicable for SIP and HTTP.

Parameters
corethe LinphoneCore
Returns
The current digest authentication policy.

◆ linphone_core_remove_auth_info()

void linphone_core_remove_auth_info ( LinphoneCore core,
const LinphoneAuthInfo info 
)

Removes an authentication information object.

Parameters
coreThe LinphoneCore from which the LinphoneAuthInfo will be removed.
infoThe LinphoneAuthInfo to remove.

◆ linphone_core_set_digest_authentication_policy()

void linphone_core_set_digest_authentication_policy ( LinphoneCore core,
LinphoneDigestAuthenticationPolicy policy 
)

Setup a new digest authentication policy applicable for SIP and HTTP.

Parameters
corethe LinphoneCore
policya LinphoneDigestAuthenticationPolicy
See also
linphone_factory_create_digest_authentication_policy()

◆ linphone_digest_authentication_policy_get_allow_md5()

bool_t linphone_digest_authentication_policy_get_allow_md5 ( const LinphoneDigestAuthenticationPolicy policy)

Get whether MD5 hash algorithm is allowed.

The default value is TRUE, in order to maximize interoperability. MD5 is considered as a weak algorithm, some might want to disable it, in which case SHA-256 will be required to perform digest authentication.

Parameters
policyThe LinphoneDigestAuthenticationPolicy object.
Returns
a boolean value

◆ linphone_digest_authentication_policy_get_allow_no_qop()

bool_t linphone_digest_authentication_policy_get_allow_no_qop ( const LinphoneDigestAuthenticationPolicy policy)

Get whether digest authentication without 'qop=auth' mode is allowed.

The default value is TRUE, in order to maximize interoperability. 'qop=auth' mode enforces security thanks to the use of a client nonce, which makes password brute forcing more difficult. When set to FALSE, linphone will refuse to authenticate to servers that are not implementing the qop=auth mode.

Parameters
policyThe LinphoneDigestAuthenticationPolicy object.
Returns
a boolean value

◆ linphone_digest_authentication_policy_get_user_data()

void* linphone_digest_authentication_policy_get_user_data ( const LinphoneDigestAuthenticationPolicy policy)

Retrieve the user pointer associated with the LinphoneDigestAuthenticationPolicy object.

Parameters
policyThe LinphoneDigestAuthenticationPolicy object.
Returns
The user pointer.

◆ linphone_digest_authentication_policy_ref()

LinphoneDigestAuthenticationPolicy* linphone_digest_authentication_policy_ref ( LinphoneDigestAuthenticationPolicy policy)

Acquire a reference.

Parameters
policyThe LinphoneDigestAuthenticationPolicy object.
Returns
The same object.

◆ linphone_digest_authentication_policy_set_allow_md5()

void linphone_digest_authentication_policy_set_allow_md5 ( LinphoneDigestAuthenticationPolicy policy,
bool_t  value 
)

Set whether MD5 hash algorithm is allowed.

The default value is TRUE, in order to maximize interoperability. MD5 is considered as a weak algorithm, some might want to disable it, in which case SHA-256 will be required to perform digest authentication.

Parameters
policyThe LinphoneDigestAuthenticationPolicy object.
valuea boolean value.

◆ linphone_digest_authentication_policy_set_allow_no_qop()

void linphone_digest_authentication_policy_set_allow_no_qop ( LinphoneDigestAuthenticationPolicy policy,
bool_t  value 
)

Set whether digest authentication without 'qop=auth' mode is allowed.

The default value is TRUE, in order to maximize interoperability. 'qop=auth' mode enforces security thanks to the use of a client nonce, which makes password brute forcing more difficult. When set to FALSE, linphone will refuse to authenticate to servers that are not implementing the qop=auth mode.

Parameters
policyThe LinphoneDigestAuthenticationPolicy object.
valuea boolean value.

◆ linphone_digest_authentication_policy_set_user_data()

void linphone_digest_authentication_policy_set_user_data ( LinphoneDigestAuthenticationPolicy policy,
void *  user_data 
)

Assign a user pointer to the LinphoneDigestAuthenticationPolicy object.

Parameters
policyThe LinphoneDigestAuthenticationPolicy object.
user_dataThe user pointer.

◆ linphone_digest_authentication_policy_unref()

void linphone_digest_authentication_policy_unref ( LinphoneDigestAuthenticationPolicy policy)

Release reference.

Parameters
policyThe LinphoneDigestAuthenticationPolicy object.