---
name: "gsasl_step"
section: "3"
platform: "linux"
package: "gsasl"
version: "2.2.4-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/gsasl_step"
---

# gsasl\_step(3)

API function

## NAME

gsasl\_step - API function

## SYNOPSIS

**#include \<gsasl.h\>**

**int gsasl\_step(Gsasl\_session \*** *sctx***, const char \*** *input***, size\_t** *input\_len***, char \*\*** *output***, size\_t \*** *output\_len***);**

## ARGUMENTS

- Gsasl\_session \* sctx

  libgsasl session handle.

- const char \* input

  input byte array.

- size\_t input\_len

  size of input byte array.

- char \*\* output

  newly allocated output byte array.

- size\_t \* output\_len

  pointer to output variable with size of output byte array.

## DESCRIPTION

Perform one step of SASL authentication.  This reads data from the other end (from  *input* and  *input\_len* ), processes it (potentially invoking callbacks to the application), and writes data to server (into newly allocated variable  *output* and  *output\_len* that indicate the length of  *output* ).

The contents of the  *output* buffer is unspecified if this functions returns anything other than **GSASL\_OK** or **GSASL\_NEEDS\_MORE**.  If this function return **GSASL\_OK** or **GSASL\_NEEDS\_MORE**, however, the\
  *output* buffer is allocated by this function, and it is the responsibility of caller to deallocate it by calling gsasl\_free( *output* ).

Return value: Returns **GSASL\_OK** if authenticated terminated successfully, **GSASL\_NEEDS\_MORE** if more data is needed, or error code.

## REPORTING BUGS

Report bugs to \<bug-gsasl@gnu.org\>.\
 General guidelines for reporting bugs: https://www.gnu.org/gethelp/\
 GNU SASL home page: https://www.gnu.org/software/gsasl/

## COPYRIGHT

Copyright © 2002-2026 Simon Josefsson.\
 Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.

## SEE ALSO

The full documentation for **gsasl** is maintained as a Texinfo manual.  If the **info** and **gsasl** programs are properly installed at your site, the command

-

  **info gsasl**

should give you access to the complete manual. As an alternative you may obtain the manual from:

-

  **https://www.gnu.org/software/libidn/gsasl/manual/**
