---
name: "sasl_callbacks"
section: "3"
platform: "macos"
package: "passwordserver_sasl"
version: "215"
release: "macOS 26.5"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/sasl_callbacks"
---

# sasl\_callbacks(3)

How to work with SASL callbacks

## NAME

sasl\_callbacks - How to work with SASL callbacks

## 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/server\_init() or sasl\_client/server\_new() 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/step() for more information.

The list of callbacks follows:

## 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

  Username canonicalization function.

## Client-only Callbacks

- sasl\_getsimple\_t

  Get user/language list

- sasl\_getsecret\_t

  Get authentication secret

- sasl\_chalprompt\_t

  Display challenge and prompt for response

- sasl\_getrealm\_t

  Get the realm for authentication

## Server-only Callbacks

- sasl\_authorize\_t

  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.h 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(3), [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\_authorize\_t(3)](/sasl_authorize_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)
