HEX
Server: Apache/2
System: Linux nexus-01 4.18.0-553.120.1.el8_10.x86_64 #1 SMP Mon Apr 20 18:04:27 EDT 2026 x86_64
User: aglcoke (1118)
PHP: 8.2.31
Disabled: mail,exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/include/dovecot/auth-sasl.h
#ifndef AUTH_SASL_H
#define AUTH_SASL_H

#include "sasl-server.h"
#include "auth-sasl-common.h"

/* Used only for string sanitization. */
#define AUTH_SASL_MAX_MECH_NAME_LEN 64

struct auth_request;
struct auth_settings;

struct auth_sasl_mech_module {
	const char *mech_name;

	bool (*mech_register)(struct sasl_server_instance *sasl_inst,
			      const struct auth_settings *set);
	void (*mech_unregister)(struct sasl_server_instance *sasl_inst);
};

/*
 * Request
 */

void auth_sasl_request_init(struct auth_request *request,
			    const struct sasl_server_mech *mech);
void auth_sasl_request_deinit(struct auth_request *request);

void auth_sasl_request_initial(struct auth_request *request);
void auth_sasl_request_continue(struct auth_request *request,
				const unsigned char *data, size_t data_size);

/*
 * Mechanisms
 */

void auth_sasl_mech_register_apop(struct sasl_server_instance *sinst);
const struct sasl_server_mech *
auth_sasl_mech_register_dovecot_token(struct sasl_server_instance *sinst);

void auth_sasl_mech_register_module(
	const struct auth_sasl_mech_module *module);
void auth_sasl_mech_unregister_module(
	const struct auth_sasl_mech_module *module);
const struct auth_sasl_mech_module *
auth_sasl_mech_module_find(const char *name);

const char *auth_sasl_mechs_get_handshake(void);
const char *auth_sasl_mechs_get_handshake_cbind(void);

/*
 * Instance
 */

void auth_sasl_instance_init(struct auth *auth,
			     const struct auth_settings *set);
void auth_sasl_instance_verify(const struct auth *auth);
void auth_sasl_instance_deinit(struct auth *auth);

/*
 * Global
 */

void auth_sasl_preinit(const struct auth_settings *set);
void auth_sasl_init(void);
void auth_sasl_deinit(void);

#endif