21
21
#ifndef INCL_SX_SASL_H
22
22
#define INCL_SX_SASL_H
26
#include "scod/scod.h"
33
int sx_sasl_init(sx_env_t env, sx_plugin_t p, va_list args);
35
/** server init flag, don't offer sasl without this */
36
#define SX_SASL_OFFER (1<<3)
38
/* mechanisms to offer */
39
#define SX_SASL_MECH_ANONYMOUS (1<<4)
40
#define SX_SASL_MECH_PLAIN (1<<5)
41
#define SX_SASL_MECH_DIGESTMD5 (1<<6)
43
/** the callback function */
44
typedef int (*sx_sasl_callback_t)(int cb, void *arg, void **res, scod_t sd, void *cbarg);
47
#define sx_sasl_cb_GET_REALM (0x00)
48
#define sx_sasl_cb_GET_PASS (0x01)
49
#define sx_sasl_cb_CHECK_PASS (0x02)
50
#define sx_sasl_cb_CHECK_AUTHZID (0x03)
51
#define sx_sasl_cb_GEN_AUTHZID (0x04)
53
/** trigger for client auth */
54
int sx_sasl_auth(sx_plugin_t p, sx_t s, char *mech, char *user, char *pass, char *authzid);
57
typedef struct _sx_sasl_st {
60
sx_sasl_callback_t cb;
66
/** magic number of the ssl plugin, must match SX_SSL_MAGIC in sx/ssl.h */
67
#define SX_SASL_SSL_MAGIC (0x01)
24
/* RFC 3290 defines a number of failure messages */
25
#define _sasl_err_ABORTED "aborted"
26
#define _sasl_err_INCORRECT_ENCODING "incorrect-encoding"
27
#define _sasl_err_INVALID_AUTHZID "invalid-authzid"
28
#define _sasl_err_INVALID_MECHANISM "invalid-mechanism"
29
#define _sasl_err_MALFORMED_REQUEST "malformed-request"
30
#define _sasl_err_MECH_TOO_WEAK "mechanism-too-weak"
31
#define _sasl_err_NOT_AUTHORIZED "not-authorized"
32
#define _sasl_err_TEMPORARY_FAILURE "temporary-auth-failure"