LassoAuthentication

## LassoAuthentication LassoAuthentication |

## Synopsis

    typedef             LassoUserAccount;
    enum                LassoSaslMechanisms;
    struct              LassoAuthentication;
    LassoAuthentication * lasso_authentication_new          (LassoServer *server);
    void                lasso_authentication_destroy        (LassoAuthentication *authentication);
    lasso_error_t       lasso_authentication_client_start   (LassoAuthentication *authentication);
    lasso_error_t       lasso_authentication_client_step    (LassoAuthentication *authentication);
    char *              lasso_authentication_get_mechanism_list
                                                            (LassoAuthentication *authentication);
    lasso_error_t       lasso_authentication_init_request   (LassoAuthentication *authentication,
                                                             LassoDiscoDescription *description,
                                                             const gchar *mechanisms,
                                                             LassoUserAccount *account);
    lasso_error_t       lasso_authentication_process_request_msg
                                                            (LassoAuthentication *authentication,
                                                             const gchar *soap_msg);
    lasso_error_t       lasso_authentication_process_response_msg
                                                            (LassoAuthentication *authentication,
                                                             const gchar *soap_msg);
    lasso_error_t       lasso_authentication_server_start   (LassoAuthentication *authentication);
    lasso_error_t       lasso_authentication_server_step    (LassoAuthentication *authentication);

## Description

## Details

### LassoUserAccount

    typedef struct LassoUserAccount LassoUserAccount;

### enum LassoSaslMechanisms

    typedef enum {
    	LASSO_SASL_MECH_ANONYMOUS = 1,
    	LASSO_SASL_MECH_PLAIN,
    	LASSO_SASL_MECH_CRAM_MD5,
    } LassoSaslMechanisms;

### struct LassoAuthentication

    struct LassoAuthentication {
    	LassoWsfProfile parent;

    	/* The SASL context kept for the life of the connection */
    	sasl_conn_t *connection;
    	sasl_interact_t **client_interact;
    };

### lasso_authentication_new ()

    LassoAuthentication * lasso_authentication_new          (LassoServer *server);

### lasso_authentication_destroy ()

    void                lasso_authentication_destroy        (LassoAuthentication *authentication);

### lasso_authentication_client_start ()

    lasso_error_t       lasso_authentication_client_start   (LassoAuthentication *authentication);

### lasso_authentication_client_step ()

    lasso_error_t       lasso_authentication_client_step    (LassoAuthentication *authentication);

### lasso_authentication_get_mechanism_list ()

    char *              lasso_authentication_get_mechanism_list
                                                            (LassoAuthentication *authentication);

### lasso_authentication_init_request ()

    lasso_error_t       lasso_authentication_init_request   (LassoAuthentication *authentication,
                                                             LassoDiscoDescription *description,
                                                             const gchar *mechanisms,
                                                             LassoUserAccount *account);

### lasso_authentication_process_request_msg ()

    lasso_error_t       lasso_authentication_process_request_msg
                                                            (LassoAuthentication *authentication,
                                                             const gchar *soap_msg);

### lasso_authentication_process_response_msg ()

    lasso_error_t       lasso_authentication_process_response_msg
                                                            (LassoAuthentication *authentication,
                                                             const gchar *soap_msg);

### lasso_authentication_server_start ()

    lasso_error_t       lasso_authentication_server_start   (LassoAuthentication *authentication);

### lasso_authentication_server_step ()

    lasso_error_t       lasso_authentication_server_step    (LassoAuthentication *authentication);