The iptsec module currently provides interfaces to HTTP Basic and Digest authentication, used by HTTP and SIP protocol elements. There are both client-side and server-side (authentication verification) functionality available.
The file <sofia-sip/auth_module.h> defines the interface used by a server verifying the authentication from client. After the server has created an authentication module, the usual authentication operation is simple enough:
If the operation is asynchronous, only a preliminary result is stored in the auth_status_t structure when the call to auth_mod_method() returns. In that case, the application can assign a callback function to the structure. The callback function is invoked when the authentication operation is completed. An asynchronous authentication operation can be terminated before its completion by calling auth_mod_cancel().
When the server creates the authentication module with auth_mod_create(), it can specify numerous parameters affecting the authentication protocol and algorithms. The parameter tags are defined in <sofia-sip/auth_module.h>. The most important parameters include:
The file <sofia-sip/auth_client.h> defines the interface used by a client authenticating a user with a server. Because there may be multiple servers or proxies requiring authentication, the client-side authentication information is represented using a list of auth_client_t objects. The client-side operation is as follows:
If there are several username/password pairs for multiple authentication realms required, the application must provide the corresponding realm as an argument to auc_all_credentials().