1.. saslman:: sasl_server_start(3)
2
3.. _sasl-reference-manpages-library-sasl_server_start:
4
5
6===========================================================
7**sasl_server_start** - Begin an authentication negotiation
8===========================================================
9
10Synopsis
11========
12
13.. code-block:: C
14
15    #include <sasl/sasl.h>
16
17    int sasl_server_start(sasl_conn_t * conn,
18                 const char * mech,
19                 const char * clientin,
20                 unsigned clientinlen,
21                 const char ** serverout,
22                 unsigned * serveroutlen);
23
24Description
25===========
26
27.. c:function::  int sasl_server_start(sasl_conn_t * conn,
28           const char * mech,
29           const char * clientin,
30           unsigned * clientinlen,
31           const char ** serverout,
32           unsigned * serveroutlen);
33
34    **sasl_server_start()** begins  the  authentication  with the
35    mechanism specified with mech. This fails if the mechanism
36    is  not  supported.
37
38    :param conn: is the SASL connection context
39    :param mech: is the mechanism name that the client requested
40    :param clientin:  is the client initial response, NULL if the protocol
41        lacks support for client‐send‐first or if the  other
42        end  did  not  have an initial send.  Note that no initial
43        client send is distinct from an initial  send  of  a  null
44        string, and the protocol MUST account for this difference.
45    :param clientinlen: is the length of initial response
46    :param serverout: is created by the plugin library. It is the initial
47        server response to send to the client. This is  allocated/freed by the
48        library and it is the job of the client
49        to send it over the network to the server.  Also  protocol
50        specific  encoding (such as base64 encoding) must needs to
51        be done by the server.
52    :param serveroutlen: is set to the length of initial server challenge
53
54Return Value
55============
56
57SASL  callback  functions should return SASL return codes. See sasl.h for a
58complete list. :c:macro:`SASL_OK` is returned if the authentication is complete
59and the user is authenticated.  :c:macro:`SASL_CONTINUE`  is returned if one or
60more steps are still required in the authentication.
61
62All other return values indicate errors and should be handled or the
63authentication session should be quit.
64
65See Also
66========
67
68:rfc:`4422`,:saslman:`sasl(3)`,
69:saslman:`sasl_server_init(3)`, :saslman:`sasl_server_new(3)`,
70:saslman:`sasl_server_step(3)`, :saslman:`sasl_errors(3)`
71