Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

sasl_server_start (3sasl)

Name

sasl_server_start - Begin an authentication negotiation

Synopsis

#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);

Description

sasl_server_start(3sasl)        SASL man pages        sasl_server_start(3sasl)



NAME
       sasl_server_start - Begin an authentication negotiation



SYNOPSIS
       #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);

DESCRIPTION
       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-
       ure.


       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-
       ference.


       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 protocol specific encoding (such as base64 encoding) must
       needs to be done by the server.

       serveroutlen is set to the length of initial server challenge

RETURN VALUE
       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 success 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.


CONFORMING TO
       RFC 4422


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+----------------------------------+
       |ATTRIBUTE TYPE |         ATTRIBUTE VALUE          |
       +---------------+----------------------------------+
       |Availability   | system/library/security/libsasl2 |
       +---------------+----------------------------------+
       |Stability      | Pass-through volatile            |
       +---------------+----------------------------------+

SEE ALSO
       sasl(3SASL),        sasl_errors(3SASL),        sasl_server_init(3SASL),
       sasl_server_new(3SASL), sasl_server_step(3SASL)



NOTES
       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source was downloaded  from   ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-
       sasl-2.1.26.tar.gz.

       Further information about this software can be found on the open source
       community website at https://www.cyrusimap.org/sasl/.



SASL                             10 July 2001         sasl_server_start(3sasl)