DOKK / manpages / debian 11 / libsasl2-dev / sasl_encode.3.en
SASL_ENCODE(3) Cyrus SASL SASL_ENCODE(3)

sasl_encode - Cyrus SASL documentation

#include <sasl/sasl.h>
int sasl_encode(sasl_conn_t *conn,

const char * input,
unsigned inputlen,
const char ** output,
unsigned * outputlen); int sasl_encodev(sasl_conn_t *conn,
const struct iovec * invec,
unsigned numiov,
const char ** output,
unsigned * outputlen);

sasl_encode encodes data to be sent to be sent to a remote host who we’ve had a successful authentication session with. If there is a negotiated security the data in signed/encrypted and the output should be sent without modification to the remote host. If there is no security layer the output is identical to the input.

sasl_encodev does the same, but for a struct iovec instead of a character buffer.

  • conn – is the SASL connection context
  • output – contains the decoded data and is allocated/freed by the library.
  • outputlen – length of output.



  • conn – is the SASL connection context
  • output – contains the decoded data and is allocated/freed by the library.
  • outputlen – length of output.



SASL callback functions should return SASL return codes. See sasl.h for a complete list. SASL_OK indicates success.

Other return codes indicate errors and should be handled.

RFC 4422,:saslman:sasl(3), sasl_decode(3), sasl_errors(3)

The Cyrus Team

1993-2022, The Cyrus Team

February 25, 2022 2.1.27