- Home
- Cyrus IMAP
- Download
- Contribute

# sasl_canon_user_t - Application-supplied user canonicalization function

## Synopsis

    #include <sasl/sasl.h>

    int sasl_canon_user_t(sasl_conn_t *conn, void *context, const char *user, unsigned ulen,
                          unsigned flags, const char *user_realm, char *out_user,
                          unsigned out_umax, unsigned *out_ulen)

## Description

`int sasl_canon_user_t(sasl_conn_t *conn,`
`void *context,`
`const char *user,`
`unsigned ulen,`
`unsigned flags,`
`const char *user_realm,`
`char *out_user,`
`unsigned out_umax,`
`unsigned *out_ulen)`

  sasl_canon_user_t is the callback for an application-supplied user canonicalization function. This function is subject to the requirements that all user canonicalization functions are: It must copy the result into the output buffers, but the output buffers and the input buffers may be the same.

  Parameters:

  - context – context from the callback record
  - user – un-canonicalized username
  - ulen – length of user
  - flags – Either SASL_CU_AUTHID (indicating the authentication ID is being canonicalized) or SASL_CU_AUTHZID (indicating the authorization ID is to be canonicalized) or a bitwise OR of the the two.
  - user_realm – Realm of authentication.
  - out_user – The output buffer for the canonicalized username
  - out_umax – Maximum length for out_user
  - out_ulen – Actual length of out_user

  Returns: | `SASL_OK` indicates success. See sasl_errors(3) for a full list of SASL error codes.

## Conforming to

RFC 4422

## See Also

sasl(3), sasl_errors(3), sasl_callbacks(3)