.\" .\" .\" .\" Title: auth_sasl .\" Author: .\" Generator: DocBook XSL Stylesheets v1.72.0 .\" Date: 04/06/2007 .\" Manual: Double Precision, Inc. .\" Source: Double Precision, Inc. .\" .TH "AUTH_SASL" "3" "04/06/2007" "Double Precision, Inc." "Double Precision, Inc." .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .SH "NAME" auth_sasl \- SASL implementation .SH "SYNOPSIS" .sp .RS 4 .nf #include .fi .RE .HP 17 .BI "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" ");" .SH "DESCRIPTION" .PP \fBauth_sasl\fR is a generic SASL server implementation. \fImethod\fR is the requested SASL method. At this time \fBauth_sasl\fR knows how to handle the following SASL methods: .RS 4 \h'-04'\(bu\h'+03'LOGIN .RE .RS 4 \h'-04'\(bu\h'+03'PLAIN .RE .RS 4 \h'-04'\(bu\h'+03'CRAM\-MD5 .RE .RS 4 \h'-04'\(bu\h'+03'CRAM\-SHA1 .RE .PP \fIinitialresponse\fR is a base64\-encoded initial response provided in the client's SASL request. \fIinitialresponse\fR must be NULL if an initial response was not included in the client's SASL request. .PP \fIconversation_func\fR is the application\-implemented SASL conversation callback function. \fIconversation_func\fR receives a base64\-encoded SASL prompt, and the \fIcallback_arg\fR argument to \fBauth_sasl\fR. \fIconversation_func\fR must return a buffer containing the base64\-encoded reply from the client. \fBauth_sasl\fR will \fBfree\fR(3) this buffer when it's done. \fIconversation_func\fR should return NULL to abort the SASL conversation. .SH "RETURNS" .PP If the SASL conversation succesfully completes, \fBauth_sasl\fR initializes \fI*authtype_ret\fR and \fI*authdata_ret\fR. They will be set to a \fBmalloc\fR(3)\-ed buffers that can be directly passed as arguments to \fI\fBauth_generic\fR(3)\fR\&[1]. It is the application's responsibility to \fBfree\fR(3) these buffers when it's done with them. .PP \fBauth_sasl\fR returns AUTHSASL_OK when the SASL conversation succesfully completes, and \fI*authtype_ret\fR and \fI*authdata_ret\fR are succesfully assembled. Any other return indicates an error condition. Right now two error conditions are defined: .PP AUTHSASL_ABORTED .RS 4 The SASL conversation was aborted by the client. .RE .PP AUTHSASL_ERROR .RS 4 General error (insufficient memory, or some other reason). Check \fIerrno\fR for any clues. .RE .SH "SEE ALSO" .PP \fI\fBauthlib\fR(3)\fR\&[2], \fI\fBauth_generic\fR(3)\fR\&[1]. .SH "REFERENCES" .IP " 1." 4 \fBauth_generic\fR(3) .RS 4 \%auth_generic.html .RE .IP " 2." 4 \fBauthlib\fR(3) .RS 4 \%authlib.html .RE