sasl_client_start - Begin an authentication negotiation


SYNOPSIS

       #include <sasl.h>

       int sasl_client_start(sasl_conn_t * conn,
                       const char * mechlist,
                       sasl_secret_t * secret,
                       sasl_interact_t ** prompt_need,
                       char ** clientout,
                       unsigned * clientoutlen,
                       const char ** mech);


DESCRIPTION

       sasl_client_start() selects a mechanism for authentication
       and starts the authentication session. The mechlist is the
       list of mechanisms the client might like to use. The mech­
       anisms in the list are not necessarily  supported  by  the
       client  or  even  valid. SASL determines which of these to
       use based upon the security preferences specified earlier.
       The  list  of mechanisms is typically a list of mechanisms
       the server supports acquired from a capability request.

       If SASL_INTERACT is returned the library needs some values
       to  be  filled  in  before it can proceed. The prompt_need
       structure will be filled in with requests. The application
       should  fulfill  these requests and call sasl_client_start
       again with identical parameters (the prompt_need parameter
       will  be  the  same pointer as before but filled in by the
       application).

       mechlist is a list of mechanisms the server has available.
       Punctuation  if ignored.  secret is the secret from a pre­
       vious session. This parameter is optional. If  SASL_INTER­
       ACT  is  returned  prompt_need is filled in with a list of
       prompts  needed  to  continue.  On  sucess  clientout  and
       clientoutlen is created. It is the initial client response
       to send to the server. This is allocated  by  the  library
       and  it  is the job of the client to send it over the net­
       work to the server and  free  it  when  it  is  no  longer
       needed.  Any  protocal  specific  encoding (such as base64
       encoding) necessary needs to be done  by  the  client.  On
       sucess  mech  contains  the name of the chosen SASL mecha­
       nism.


RETURN VALUE

       sasl_client_start returns an integer which corresponds  to

       and that there are more steps needed  in  the  authentica­
       tion.  All  other  return codes indicate errors and should
       either be handled or the authentication session should  be
       quit.


ERRORS

       SASL_CONTINUE
               Success. keep going.

       SASL_INTERACT
               user  interaction  needed  to  fill in prompt_need
               list

       SASL_BADVERS
               Mechanism version mismatch

       SASL_BADPARAM
               error in config file

       SASL_NOMEM
               not enough memory to complete operation


CONFORMING TO

       RFC 2222


SEE ALSO

       othersaslstuff


Man(1) output converted with man2html