1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
.. saslman:: sasl_decode(3)
.. _sasl-reference-manpages-library-sasl_decode:
======================================
**sasl_decode** - Decode data received
======================================
Synopsis
========
.. code-block:: C
#include <sasl/sasl.h>
int sasl_decode(sasl_conn_t *conn,
const char * input,
unsigned inputlen,
const char ** output,
unsigned * outputlen);
Description
===========
.. c:function:: int sasl_decode(sasl_conn_t *conn,
const char * input,
unsigned inputlen,
const char ** output,
unsigned * outputlen);
**sasl_decode** decodes data received. After successful authentication
this function should be called on all data received. It decodes the
data from encrypted or signed form to plain data. If there was no security
layer negotiated the `output` is identical to the `input`.
:param conn: is the SASL connection context
:param output: contains the decoded data and is allocated/freed by
the library.
:param outputlen: length of `output`.
One should not give sasl_decode more data than the
negotiated `maxbufsize` (see :saslman:`sasl_getprop(3)`).
Note that sasl_decode can succeed and outputlen can be
zero. If this is the case simply wait for more data and
call sasl_decode again.
Return Value
============
SASL callback functions should return SASL return codes.
See sasl.h for a complete list. :c:macro:`SASL_OK` indicates success.
Other return codes indicate errors and should be handled.
See Also
========
:rfc:`4422`,:saslman:`sasl(3)`, :saslman:`sasl_encode(3)`,
:saslman:`sasl_errors(3)`
|