auth_sasl

Langue: en

Autres versions - même langue

Version: 04/06/2007 (ubuntu - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

auth_sasl - SASL implementation

SYNOPSIS

 #include <courierauthsasl.h>
 
int rc=auth_sasl(const char *method, const char *initialresponse, char *(*conversation_func)(const char *, void *), void *callback_arg, char **authtype_ret, char **authdata_ret);

DESCRIPTION

auth_sasl

is a generic SASL server implementation. method is the requested SASL method. At this time auth_sasl knows how to handle the following SASL methods:
•LOGIN
•PLAIN
•CRAM-MD5
•CRAM-SHA1

initialresponse is a base64-encoded initial response provided in the client's SASL request. initialresponse must be NULL if an initial response was not included in the client's SASL request.

conversation_func is the application-implemented SASL conversation callback function. conversation_func receives a base64-encoded SASL prompt, and the callback_arg argument to auth_sasl. conversation_func must return a buffer containing the base64-encoded reply from the client. auth_sasl will free(3) this buffer when it's done. conversation_func should return NULL to abort the SASL conversation.

RETURNS

If the SASL conversation succesfully completes, auth_sasl initializes *authtype_ret and *authdata_ret. They will be set to a malloc(3)-ed buffers that can be directly passed as arguments to auth_generic(3)[1]. It is the application's responsibility to free(3) these buffers when it's done with them.

auth_sasl returns AUTHSASL_OK when the SASL conversation succesfully completes, and *authtype_ret and *authdata_ret are succesfully assembled. Any other return indicates an error condition. Right now two error conditions are defined:

AUTHSASL_ABORTED

The SASL conversation was aborted by the client.

AUTHSASL_ERROR

General error (insufficient memory, or some other reason). Check errno for any clues.

SEE ALSO

authlib(3)[2], auth_generic(3)[1].

REFERENCES

1.
auth_generic(3)
auth_generic.html
2.
authlib(3)
authlib.html