From: Stephan Bosch Date: Fri, 27 Oct 2023 23:13:04 +0000 (+0200) Subject: auth: sasl-server-mech-scram - Improve the extension API X-Git-Tag: 2.4.2~180 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6d278967da51776708f1709ebebce44c428bf309;p=thirdparty%2Fdovecot%2Fcore.git auth: sasl-server-mech-scram - Improve the extension API --- diff --git a/src/auth/sasl-server-mech-scram.c b/src/auth/sasl-server-mech-scram.c index 0e5e92b79f..0001fcfff1 100644 --- a/src/auth/sasl-server-mech-scram.c +++ b/src/auth/sasl-server-mech-scram.c @@ -142,8 +142,9 @@ static const struct auth_scram_server_backend scram_server_backend = { .credentials_lookup = mech_scram_credentials_lookup, }; -void mech_scram_auth_continue(struct sasl_server_mech_request *auth_request, - const unsigned char *input, size_t input_len) +static void +mech_scram_auth_continue(struct sasl_server_mech_request *auth_request, + const unsigned char *input, size_t input_len) { struct scram_auth_request *request = container_of(auth_request, struct scram_auth_request, @@ -188,7 +189,7 @@ void mech_scram_auth_continue(struct sasl_server_mech_request *auth_request, sasl_server_request_success(auth_request, output, output_len); } -struct sasl_server_mech_request * +static struct sasl_server_mech_request * mech_scram_auth_new(const struct sasl_server_mech *mech, pool_t pool) { struct sasl_server_instance *sinst = mech->sinst; @@ -232,7 +233,7 @@ static void mech_scram_auth_free(struct sasl_server_mech_request *auth_request) auth_scram_server_deinit(&request->scram_server); } -struct sasl_server_mech *mech_scram_mech_new(pool_t pool) +static struct sasl_server_mech *mech_scram_mech_new(pool_t pool) { struct scram_auth_mech *scram_mech; @@ -241,7 +242,7 @@ struct sasl_server_mech *mech_scram_mech_new(pool_t pool) return &scram_mech->mech; } -static const struct sasl_server_mech_funcs mech_scram_sha1_funcs = { +const struct sasl_server_mech_funcs sasl_server_mech_scram_funcs = { .auth_new = mech_scram_auth_new, .auth_initial = sasl_server_mech_generic_auth_initial, .auth_continue = mech_scram_auth_continue, @@ -256,7 +257,7 @@ static const struct sasl_server_mech_def mech_scram_sha1 = { .flags = SASL_MECH_SEC_MUTUAL_AUTH, .passdb_need = SASL_MECH_PASSDB_NEED_LOOKUP_CREDENTIALS, - .funcs = &mech_scram_sha1_funcs, + .funcs = &sasl_server_mech_scram_funcs, }; static const struct sasl_server_mech_def mech_scram_sha1_plus = { @@ -265,14 +266,7 @@ static const struct sasl_server_mech_def mech_scram_sha1_plus = { .flags = SASL_MECH_SEC_MUTUAL_AUTH | SASL_MECH_SEC_CHANNEL_BINDING, .passdb_need = SASL_MECH_PASSDB_NEED_LOOKUP_CREDENTIALS, - .funcs = &mech_scram_sha1_funcs, -}; - -static const struct sasl_server_mech_funcs mech_scram_sha256_funcs = { - .auth_new = mech_scram_auth_new, - .auth_initial = sasl_server_mech_generic_auth_initial, - .auth_continue = mech_scram_auth_continue, - .auth_free = mech_scram_auth_free, + .funcs = &sasl_server_mech_scram_funcs, }; static const struct sasl_server_mech_def mech_scram_sha256 = { @@ -281,7 +275,7 @@ static const struct sasl_server_mech_def mech_scram_sha256 = { .flags = SASL_MECH_SEC_MUTUAL_AUTH, .passdb_need = SASL_MECH_PASSDB_NEED_LOOKUP_CREDENTIALS, - .funcs = &mech_scram_sha256_funcs, + .funcs = &sasl_server_mech_scram_funcs, }; static const struct sasl_server_mech_def mech_scram_sha256_plus = { @@ -290,7 +284,7 @@ static const struct sasl_server_mech_def mech_scram_sha256_plus = { .flags = SASL_MECH_SEC_MUTUAL_AUTH | SASL_MECH_SEC_CHANNEL_BINDING, .passdb_need = SASL_MECH_PASSDB_NEED_LOOKUP_CREDENTIALS, - .funcs = &mech_scram_sha256_funcs, + .funcs = &sasl_server_mech_scram_funcs, }; void sasl_server_mech_register_scram( @@ -301,6 +295,8 @@ void sasl_server_mech_register_scram( struct sasl_server_mech *mech; struct scram_auth_mech *scram_mech; + i_assert(mech_def->funcs == &sasl_server_mech_scram_funcs); + mech = sasl_server_mech_register(sinst, mech_def); scram_mech = container_of(mech, struct scram_auth_mech, mech); diff --git a/src/auth/sasl-server-mech-scram.h b/src/auth/sasl-server-mech-scram.h index 2c445fc509..581c6c43e6 100644 --- a/src/auth/sasl-server-mech-scram.h +++ b/src/auth/sasl-server-mech-scram.h @@ -1,12 +1,7 @@ #ifndef SASL_SERVER_MECH_SCRAM_H #define SASL_SERVER_MECH_SCRAM_H -struct sasl_server_mech_request * -mech_scram_auth_new(const struct sasl_server_mech *mech, pool_t pool); -void mech_scram_auth_continue(struct sasl_server_mech_request *auth_request, - const unsigned char *input, size_t input_len); - -struct sasl_server_mech *mech_scram_mech_new(pool_t pool); +extern const struct sasl_server_mech_funcs sasl_server_mech_scram_funcs; void sasl_server_mech_register_scram( struct sasl_server_instance *sinst,