---
name: "sasl_callbacks"
section: "3"
platform: "linux"
package: "libsasl2-dev"
version: "2.1.28+dfsg1-9"
release: "Debian 13 (Trixie)"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/sasl_callbacks"
---

# sasl\_callbacks(3)

Cyrus SASL documentation

## NAME

sasl\_callbacks - Cyrus SASL documentation

## SYNOPSIS

```
#include <sasl/sasl.h>
```

## DESCRIPTION

**sasl\_callbacks**  are  used  when the application needs some information from the application. Common reasons are  getting for  getting  usernames and passwords. A client MUST specify   what   callbacks    they    support    in    the *[sasl\_client\_init(3)](/sasl_client_init/3.md)*/*[sasl\_server\_init(3)](/sasl_server_init/3.md)* or   *[sasl\_client\_new(3)](/sasl_client_new/3.md)*/*[sasl\_server\_new(3)](/sasl_server_new/3.md)* calls. If an authentication  mechanism  needs  a  callback that  the application does not state it supports it cannot be used.

If a callback has an id parameter that should  be  checked to make sure you are giving the appropriate value.

If  an application is using the client side of the library functions to  handle  the  callbacks  are  not  necessary. Instead  the  application  may  deal  with  callbacks  via SASL\_INTERACT’s.  See  *[sasl\_client\_start(3)](/sasl_client_start/3.md)*/*[sasl\_client\_step(3)](/sasl_client_step/3.md)*  for  more information.

### Common Callbacks

- **sasl\_getopt\_t**

  Get an option value

- **sasl\_log\_t**

  Log message handler

- **sasl\_getpath\_t**

  Get  path  to search for plugins (e.g. SASL mechanisms)

- **sasl\_verifyfile\_t**

  Verify files for use by SASL

- ***[sasl\_canon\_user\_t(3)](/sasl_canon_user_t/3.md)***

  Username canonicalization function

### Client-only Callbacks

- **sasl\_getsimple\_t**

  Get user/language list

- **sasl\_getsecret\_t**

  Get authentication secret

- ***[sasl\_chalprompt\_t(3)](/sasl_chalprompt_t/3.md)***

  Display challenge and prompt for response

- **sasl\_getrealm\_t**

  Get the realm for authentication

### Server-only Callbacks

- ***[sasl\_authorize\_t(3)](/sasl_authorize_t/3.md)***

  Authorize policy callback

- **sasl\_server\_userdb\_checkpass\_t**

  verify plaintext password

- **sasl\_server\_userdb\_setpass\_t**

  set plaintext password

- **sasl\_getconfpath\_t**

  Get path to search  for  SASL  configuration  file (server side only). New in SASL 2.1.22.

## RETURN VALUE

SASL  callback  functions should return SASL return codes. See *[sasl\_errors(3)](/sasl_errors/3.md)* for a complete list.  *SASL\_OK*  typically  indicates success.

## CONFORMING TO

*RFC 4422*

## SEE ALSO

*[sasl(3)](/sasl/3.md)*, *[sasl\_errors(3)](/sasl_errors/3.md)*, *[sasl\_authorize\_t(3)](/sasl_authorize_t/3.md)*, *[sasl\_log\_t(3)](/sasl_log_t/3.md)*, *[sasl\_getpath\_t(3)](/sasl_getpath_t/3.md)*, *[sasl\_getconfpath\_t(3)](/sasl_getconfpath_t/3.md)*, *[sasl\_verifyfile\_t(3)](/sasl_verifyfile_t/3.md)*, *[sasl\_canon\_user\_t(3)](/sasl_canon_user_t/3.md)*,  *[sasl\_getsimple\_t(3)](/sasl_getsimple_t/3.md)*, *[sasl\_getsecret\_t(3)](/sasl_getsecret_t/3.md)*, *[sasl\_chalprompt\_t(3)](/sasl_chalprompt_t/3.md)*, *[sasl\_getrealm\_t(3)](/sasl_getrealm_t/3.md)*, *[sasl\_server\_userdb\_checkpass\_t(3)](/sasl_server_userdb_checkpass_t/3.md)*, *[sasl\_server\_userdb\_setpass\_t(3)](/sasl_server_userdb_setpass_t/3.md)*

## AUTHOR

The Cyrus Team

## COPYRIGHT

1993-2016, The Cyrus Team
