- Home
- Cyrus IMAP
- Download
- Contribute

# sasl_setpass - Check a plaintext password

## Synopsis

    #include <sasl/sasl.h>

    int sasl_setpass(sasl_conn_t *conn,
                     const char *user,
                     const char *pass, unsigned passlen,
                      const char *oldpass, unsigned oldpasslen,
                      unsigned flags)

## Description

`int sasl_setpass(sasl_conn_t *conn,`
`const char *user,`
`const char *pass, unsigned passlen,`
`const char *oldpass, unsigned oldpasslen,`
`unsigned flags)`

  sasl_setpass will set passwords in the sasldb, and trigger the setpass callbacks for all available mechanisms.

  Parameters:

  - conn – is the SASL connection context
  - user – is the username to set the password for
  - pass – the password to set
  - passlen – length of the password to set (pass)
  - oldpass – optional. The old password.
  - oldpasslen – optional. The old password length.
  - flags –

    are flags including SASL_SET_CREATE and SASL_SET_DISABLE (to cause the creating of nonexistent accounts and the disabling of an account, respectively)

    oldpass and oldpasslen are unused in the Cyrus SASL implementation, though are passed on to any mechanisms that may require them.

## Return Value

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.

## See Also

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