SASL_SERVER_STEP(3)
π SASL_SERVER_STEP(3) π
okay bestie, gather round, because we're talking about sasl_server_step from the Cyrus SASL manual, section 3, and honestly? it's giving backstage pass to the auth handshake. ποΈβ¨
πΈ NAME πΈ
sasl_server_step β Cyrus SASL documentation, fr fr. that's the whole name, no notes. π«Ά
β¨ SYNOPSIS β¨
#include <sasl/sasl.h>
int sasl_server_step(sasl_conn_t *conn,
const char *clientin,
unsigned clientinlen,
const char ** serverout,
unsigned * serveroutlen);
π¦ DESCRIPTION π¦
int sasl_server_step(sasl_conn_t *conn,
const char *clientin,
unsigned clientinlen,
const char **serverout,
unsigned * serveroutlen);
so like, sasl_server_step() performs a step in the authentication negotiation. it's literally one move in the dance. π
it returns SASL_OK if the whole negotiation is successful, and SASL_CONTINUE if this step is ok but at least one more step is needed. no cap β those are the two happy outcomes.
π Parameters π
connβ is the SASL connection context. the whole vibe, the main character of the operation. πclientinβ is the data given by the client (decoded if the protocol encodes requests sent over the wire). so if your protocol wraps stuff up, you hand it over already unwrapped, got it? πclientinlenβ is the length ofclientin. tell her how long the thing is. πserveroutβ set by the library and should be sent to the client. the library writes it, you ship it out. πserveroutlenβ length ofserverout. again, the length. the library fills it in for you. π
π₯ RETURN VALUE π₯
SASL callback functions should return SASL return codes. see sasl.h for a complete list. π
SASL_CONTINUEindicates success and that there are more steps needed in the authentication.SASL_OKindicates that the authentication is complete. π
other return codes indicate errors and should either be handled or the authentication session should be quit. like, for real, don't just sit there ignoring them β either deal with it or bail on the session. π
not me stressing about error codes... anyway, handle them or quit the session. those are the options bestie. π
π SEE ALSO π
RFC 4422,:saslman:sasl(3), sasl_server_init(3), sasl_server_new(3), sasl_server_start(3), sasl_errors(3)
iykyk, go read those next. πβ¨
π§ AUTHOR π§
The Cyrus Team
π COPYRIGHT π
1993-2016, The Cyrus Team
and that's the whole page bestie β SASL_SERVER_STEP(3), straight out of Cyrus SASL version 2.1.28, dated February 18, 2022. periodt. π
ππ¦
π¦ where this page comes from
- alpine 3.22: cyrus-sasl-doc 2.1.28-r8 Β· BSD-3-Clause-Attribution AND BSD-4-Clause
- alpine 3.23: cyrus-sasl-doc 2.1.28-r9 Β· BSD-3-Clause-Attribution AND BSD-4-Clause
- alpine 3.24: cyrus-sasl-doc 2.1.28-r9 Β· BSD-3-Clause-Attribution AND BSD-4-Clause
- centos-stream 10: cyrus-sasl-devel 2.1.28-27.el10 Β· BSD-Attribution-HPND-disclaimer
- fedora 43: cyrus-sasl-devel 2.1.28-33.fc43 Β· BSD-Attribution-HPND-disclaimer
- fedora 43: cyrus-sasl-devel 2.1.28-33.fc43 Β· BSD-Attribution-HPND-disclaimer
- fedora 44: cyrus-sasl-devel 2.1.28-35.fc44 Β· BSD-Attribution-HPND-disclaimer
- fedora 44: cyrus-sasl-devel 2.1.28-35.fc44 Β· BSD-Attribution-HPND-disclaimer
- opensuse-leap 16.0: cyrus-sasl-bdb-devel 2.1.28-160000.4.1 Β· BSD-4-Clause
- opensuse-leap 16.0: cyrus-sasl-bdb-devel 2.1.28-160000.4.1 Β· BSD-4-Clause
- opensuse-leap 16.0: cyrus-sasl-bdb-devel 2.1.28-160000.4.1 Β· BSD-4-Clause
- opensuse-leap 16.0: cyrus-sasl-bdb-devel 2.1.28-160000.4.1 Β· BSD-4-Clause
- opensuse-leap 16.0: cyrus-sasl-devel 2.1.28-160000.4.1 Β· BSD-4-Clause
- opensuse-leap 16.0: cyrus-sasl-devel 2.1.28-160000.4.1 Β· BSD-4-Clause
- opensuse-leap 16.0: cyrus-sasl-devel 2.1.28-160000.4.1 Β· BSD-4-Clause
- opensuse-leap 16.0: cyrus-sasl-devel 2.1.28-160000.4.1 Β· BSD-4-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms