From: Stephan Bosch Date: Tue, 24 Oct 2023 02:59:39 +0000 (+0200) Subject: auth: sasl-server - Add mechanism parameter to auth_new() mechanism function X-Git-Tag: 2.4.2~186 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=307beeeb060ee0be29dc937a72acd0d42706675f;p=thirdparty%2Fdovecot%2Fcore.git auth: sasl-server - Add mechanism parameter to auth_new() mechanism function --- diff --git a/src/auth/auth-sasl-mech-apop.c b/src/auth/auth-sasl-mech-apop.c index e7d12269c4..6a7b4ad883 100644 --- a/src/auth/auth-sasl-mech-apop.c +++ b/src/auth/auth-sasl-mech-apop.c @@ -148,7 +148,8 @@ mech_apop_auth_initial(struct sasl_server_mech_request *req, apop_credentials_callback); } -static struct sasl_server_mech_request *mech_apop_auth_new(pool_t pool) +static struct sasl_server_mech_request * +mech_apop_auth_new(const struct sasl_server_mech *mech ATTR_UNUSED, pool_t pool) { struct apop_auth_request *request; diff --git a/src/auth/sasl-server-mech-cram-md5.c b/src/auth/sasl-server-mech-cram-md5.c index f609b46293..a1701aa279 100644 --- a/src/auth/sasl-server-mech-cram-md5.c +++ b/src/auth/sasl-server-mech-cram-md5.c @@ -164,7 +164,9 @@ mech_cram_md5_auth_initial(struct sasl_server_mech_request *auth_request, strlen(request->challenge)); } -static struct sasl_server_mech_request *mech_cram_md5_auth_new(pool_t pool) +static struct sasl_server_mech_request * +mech_cram_md5_auth_new(const struct sasl_server_mech *mech ATTR_UNUSED, + pool_t pool) { struct cram_auth_request *request; diff --git a/src/auth/sasl-server-mech-digest-md5.c b/src/auth/sasl-server-mech-digest-md5.c index f014bec840..b5f70e0ead 100644 --- a/src/auth/sasl-server-mech-digest-md5.c +++ b/src/auth/sasl-server-mech-digest-md5.c @@ -594,7 +594,9 @@ mech_digest_md5_auth_initial(struct sasl_server_mech_request *auth_request, str_len(challenge)); } -static struct sasl_server_mech_request *mech_digest_md5_auth_new(pool_t pool) +static struct sasl_server_mech_request * +mech_digest_md5_auth_new(const struct sasl_server_mech *mech ATTR_UNUSED, + pool_t pool) { struct digest_auth_request *request; diff --git a/src/auth/sasl-server-mech-gssapi.c b/src/auth/sasl-server-mech-gssapi.c index aea09c8206..405c0f8984 100644 --- a/src/auth/sasl-server-mech-gssapi.c +++ b/src/auth/sasl-server-mech-gssapi.c @@ -96,7 +96,9 @@ mech_gssapi_log_error(struct gssapi_auth_request *request, } while (message_context != 0); } -static struct sasl_server_mech_request *mech_gssapi_auth_new(pool_t pool) +static struct sasl_server_mech_request * +mech_gssapi_auth_new(const struct sasl_server_mech *mech ATTR_UNUSED, + pool_t pool) { struct gssapi_auth_request *request; diff --git a/src/auth/sasl-server-mech-oauth2.c b/src/auth/sasl-server-mech-oauth2.c index c8b6b3b7de..624b297e6b 100644 --- a/src/auth/sasl-server-mech-oauth2.c +++ b/src/auth/sasl-server-mech-oauth2.c @@ -302,7 +302,9 @@ mech_xoauth2_auth_continue(struct sasl_server_mech_request *request, } } -static struct sasl_server_mech_request *mech_oauth2_auth_new(pool_t pool) +static struct sasl_server_mech_request * +mech_oauth2_auth_new(const struct sasl_server_mech *mech ATTR_UNUSED, + pool_t pool) { struct oauth2_auth_request *request; diff --git a/src/auth/sasl-server-mech-otp.c b/src/auth/sasl-server-mech-otp.c index c726d6f5f3..3d5551249b 100644 --- a/src/auth/sasl-server-mech-otp.c +++ b/src/auth/sasl-server-mech-otp.c @@ -286,7 +286,8 @@ mech_otp_auth_continue(struct sasl_server_mech_request *auth_request, mech_otp_auth_phase2(request, data, data_size); } -static struct sasl_server_mech_request *mech_otp_auth_new(pool_t pool) +static struct sasl_server_mech_request * +mech_otp_auth_new(const struct sasl_server_mech *mech ATTR_UNUSED, pool_t pool) { struct otp_auth_request *request; diff --git a/src/auth/sasl-server-mech-scram.c b/src/auth/sasl-server-mech-scram.c index b350b12711..4df5b8cdfa 100644 --- a/src/auth/sasl-server-mech-scram.c +++ b/src/auth/sasl-server-mech-scram.c @@ -178,7 +178,8 @@ void mech_scram_auth_continue(struct sasl_server_mech_request *auth_request, } struct sasl_server_mech_request * -mech_scram_auth_new(pool_t pool, const struct hash_method *hash_method, +mech_scram_auth_new(const struct sasl_server_mech *mech ATTR_UNUSED, + pool_t pool, const struct hash_method *hash_method, const char *password_scheme) { struct scram_auth_request *request; @@ -213,14 +214,18 @@ mech_scram_auth_new(pool_t pool, const struct hash_method *hash_method, return &request->auth_request; } -static struct sasl_server_mech_request *mech_scram_sha1_auth_new(pool_t pool) +static struct sasl_server_mech_request * +mech_scram_sha1_auth_new(const struct sasl_server_mech *mech, pool_t pool) { - return mech_scram_auth_new(pool, &hash_method_sha1, "SCRAM-SHA-1"); + return mech_scram_auth_new( + mech, pool, &hash_method_sha1, "SCRAM-SHA-1"); } -static struct sasl_server_mech_request *mech_scram_sha256_auth_new(pool_t pool) +static struct sasl_server_mech_request * +mech_scram_sha256_auth_new(const struct sasl_server_mech *mech, pool_t pool) { - return mech_scram_auth_new(pool, &hash_method_sha256, "SCRAM-SHA-256"); + return mech_scram_auth_new( + mech, pool, &hash_method_sha256, "SCRAM-SHA-256"); } static void mech_scram_auth_free(struct sasl_server_mech_request *auth_request) diff --git a/src/auth/sasl-server-mech-scram.h b/src/auth/sasl-server-mech-scram.h index 3c00f2804e..d7348fbeda 100644 --- a/src/auth/sasl-server-mech-scram.h +++ b/src/auth/sasl-server-mech-scram.h @@ -2,7 +2,8 @@ #define SASL_SERVER_MECH_SCRAM_H struct sasl_server_mech_request * -mech_scram_auth_new(pool_t pool, const struct hash_method *hash_method, +mech_scram_auth_new(const struct sasl_server_mech *mech ATTR_UNUSED, + pool_t pool, const struct hash_method *hash_method, const char *password_scheme); void mech_scram_auth_continue(struct sasl_server_mech_request *auth_request, const unsigned char *input, size_t input_len); diff --git a/src/auth/sasl-server-mech-winbind.c b/src/auth/sasl-server-mech-winbind.c index e157480a95..6afadc8376 100644 --- a/src/auth/sasl-server-mech-winbind.c +++ b/src/auth/sasl-server-mech-winbind.c @@ -327,13 +327,15 @@ do_auth_new(pool_t pool, struct winbind_helper *winbind) } static struct sasl_server_mech_request * -mech_winbind_ntlm_auth_new(pool_t pool) +mech_winbind_ntlm_auth_new(const struct sasl_server_mech *mech ATTR_UNUSED, + pool_t pool) { return do_auth_new(pool, &winbind_ntlm_context); } static struct sasl_server_mech_request * -mech_winbind_spnego_auth_new(pool_t pool) +mech_winbind_spnego_auth_new(const struct sasl_server_mech *mech ATTR_UNUSED, + pool_t pool) { return do_auth_new(pool, &winbind_spnego_context); } diff --git a/src/auth/sasl-server-protected.h b/src/auth/sasl-server-protected.h index 5abe4cd934..5cfb9600c7 100644 --- a/src/auth/sasl-server-protected.h +++ b/src/auth/sasl-server-protected.h @@ -16,7 +16,8 @@ sasl_server_mech_passdb_callback_t(struct sasl_server_mech_request *req, const struct sasl_passdb_result *result); struct sasl_server_mech_funcs { - struct sasl_server_mech_request *(*auth_new)(pool_t pool); + struct sasl_server_mech_request * + (*auth_new)(const struct sasl_server_mech *mech, pool_t pool); void (*auth_initial)(struct sasl_server_mech_request *req, const unsigned char *data, size_t data_size); void (*auth_continue)(struct sasl_server_mech_request *req, diff --git a/src/auth/sasl-server-request.c b/src/auth/sasl-server-request.c index 54bc29b889..58b34419a6 100644 --- a/src/auth/sasl-server-request.c +++ b/src/auth/sasl-server-request.c @@ -50,7 +50,7 @@ void sasl_server_request_create(struct sasl_server_req_ctx *rctx, struct sasl_server_mech_request *mreq; if (mech->def->funcs->auth_new != NULL) - mreq = mech->def->funcs->auth_new(pool); + mreq = mech->def->funcs->auth_new(mech, pool); else mreq = p_new(pool, struct sasl_server_mech_request, 1); mreq->pool = pool;