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