gsasl-mech

## gsasl-mech gsasl-mech |

## Synopsis

    int                 (*Gsasl_code_function)              (Gsasl_session *sctx,
                                                             void *mech_data,
                                                             const char *input,
                                                             size_t input_len,
                                                             char **output,
                                                             size_t *output_len);
    void                (*Gsasl_done_function)              (Gsasl *ctx);
    void                (*Gsasl_finish_function)            (Gsasl_session *sctx,
                                                             void *mech_data);
    int                 (*Gsasl_init_function)              (Gsasl *ctx);
    typedef             Gsasl_mechanism;
    typedef             Gsasl_mechanism_functions;
    int                 (*Gsasl_start_function)             (Gsasl_session *sctx,
                                                             void **mech_data);
    int                 (*Gsasl_step_function)              (Gsasl_session *sctx,
                                                             void *mech_data,
                                                             const char *input,
                                                             size_t input_len,
                                                             char **output,
                                                             size_t *output_len);
    int                 gsasl_register                      (Gsasl *ctx,
                                                             const Gsasl_mechanism *mech);

## Description

## Details

### Gsasl_code_function ()

    int                 (*Gsasl_code_function)              (Gsasl_session *sctx,
                                                             void *mech_data,
                                                             const char *input,
                                                             size_t input_len,
                                                             char **output,
                                                             size_t *output_len);

### Gsasl_done_function ()

    void                (*Gsasl_done_function)              (Gsasl *ctx);

### Gsasl_finish_function ()

    void                (*Gsasl_finish_function)            (Gsasl_session *sctx,
                                                             void *mech_data);

### Gsasl_init_function ()

    int                 (*Gsasl_init_function)              (Gsasl *ctx);

### Gsasl_mechanism

    typedef struct Gsasl_mechanism Gsasl_mechanism;

### Gsasl_mechanism_functions

    typedef struct Gsasl_mechanism_functions Gsasl_mechanism_functions;

### Gsasl_start_function ()

    int                 (*Gsasl_start_function)             (Gsasl_session *sctx,
                                                             void **mech_data);

### Gsasl_step_function ()

    int                 (*Gsasl_step_function)              (Gsasl_session *sctx,
                                                             void *mech_data,
                                                             const char *input,
                                                             size_t input_len,
                                                             char **output,
                                                             size_t *output_len);

### gsasl_register ()

    int                 gsasl_register                      (Gsasl *ctx,
                                                             const Gsasl_mechanism *mech);

This function initialize given mechanism, and if successful, add it to the list of plugins that is used by the library.

`ctx` : | pointer to libgsasl handle.
`mech` : | plugin structure with information about plugin.
Returns : | `GSASL_OK` iff successful, otherwise `GSASL_MALLOC_ERROR`.

Since 0.2.0