sasl_server_start(10 July 2001)                sasl_server_start(10 July 2001)

       sasl_server_start - Begin an authentication negotiation

       #include <sasl/sasl.h>

       int sasl_server_start(sasl_conn_t * conn,
                            const char * mech,
                            const char * clientin,
                            unsigned * clientinlen,
                            const char ** serverout,
                            unsigned * serveroutlen);

       sasl_server_start() begins the authentication with the mechanism speci-
       fied with mech. This fails if the mechanism is not  supported.  SASL_OK
       is returned if the authentication is complete and the user is authenti-
       cated. SASL_CONTINUE is  returned  if  one  or  more  steps  are  still
       required  in the authentication. All other return values indicate fail-

       conn is the SASL context for this connection

       mech is the mechanism name that the client requested

       clientin is the client initial response, NULL  if  the  protocol  lacks
       support  for client-send-first or if the other end did not have an ini-
       tial send.  Note that no initial client send is distinct from  an  ini-
       tial send of a null string, and the protocol MUST account for this dif-

       clientinlen is the length of initial response

       serverout is created by the plugin library. It is  the  initial  server
       response  to send to the client. This is allocated/freed by the library
       and it is the job of the client to send it  over  the  network  to  the
       server.  Also protocal specific encoding (such as base64 encoding) must
       needs to be done by the server.

       serveroutlen is set to the length of initial server challenge

       sasl_server_start returns an integer which corresponds to  one  of  the
       SASL  errorcodes.  SASL_OK  indicates  that authentication is completed
       successfully. SASL_CONTINUE indicates sucess and that  there  are  more
       steps  needed  in  the  authentication. All other return codes indicate
       errors and should either  be  handled  or  the  authentication  session
       should be quit.

       RFC 2222

       sasl(3),   sasl_errors(3),   sasl_server_init(3),   sasl_server_new(3),

SASL man pages                       SASL      sasl_server_start(10 July 2001)