From: Stephan Bosch Date: Sun, 22 Oct 2023 23:13:11 +0000 (+0200) Subject: auth: auth-request - Add auth_request_db_password_verify*() and use them X-Git-Tag: 2.4.0~1883 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8cdc41d8bcbfe1fc8466cca5d71a8777968d58dd;p=thirdparty%2Fdovecot%2Fcore.git auth: auth-request - Add auth_request_db_password_verify*() and use them --- diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index 2b9d772b66..4b645699d7 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -2534,6 +2534,30 @@ auth_request_password_verify_log(struct auth_request *request, return result; } +enum passdb_result +auth_request_db_password_verify(struct auth_request *request, + const char *plain_password, + const char *crypted_password, + const char *scheme) +{ + return auth_request_password_verify_log( + request, authdb_event(request), + plain_password, crypted_password, scheme, TRUE); +} + +enum passdb_result +auth_request_db_password_verify_log(struct auth_request *request, + const char *plain_password, + const char *crypted_password, + const char *scheme, + bool log_password_mismatch) +{ + return auth_request_password_verify_log( + request, authdb_event(request), + plain_password, crypted_password, scheme, + log_password_mismatch); +} + enum passdb_result auth_request_password_missing(struct auth_request *request) { if (request->fields.skip_password_check) { diff --git a/src/auth/auth-request.h b/src/auth/auth-request.h index 3561a3cfff..baa839f7d7 100644 --- a/src/auth/auth-request.h +++ b/src/auth/auth-request.h @@ -351,6 +351,19 @@ auth_request_password_verify_log(struct auth_request *request, const char *scheme, bool log_password_mismatch) ATTR_WARN_UNUSED_RESULT; +enum passdb_result +auth_request_db_password_verify(struct auth_request *request, + const char *plain_password, + const char *crypted_password, + const char *scheme) + ATTR_WARN_UNUSED_RESULT; +enum passdb_result +auth_request_db_password_verify_log(struct auth_request *request, + const char *plain_password, + const char *crypted_password, + const char *scheme, + bool log_password_mismatch) + ATTR_WARN_UNUSED_RESULT; enum passdb_result auth_request_password_missing(struct auth_request *request); void auth_request_log_debug(struct auth_request *auth_request, diff --git a/src/auth/passdb-cache.c b/src/auth/passdb-cache.c index 64a264a28e..0a696f4fef 100644 --- a/src/auth/passdb-cache.c +++ b/src/auth/passdb-cache.c @@ -125,9 +125,9 @@ bool passdb_cache_verify_plain(struct auth_request *request, const char *key, scheme = password_get_scheme(&cached_pw); i_assert(scheme != NULL); - ret = auth_request_password_verify_log( - request, authdb_event(request), password, cached_pw, - scheme, !(node->last_success || neg_expired)); + ret = auth_request_db_password_verify_log( + request, password, cached_pw, scheme, + !(node->last_success || neg_expired)); if (ret == PASSDB_RESULT_PASSWORD_MISMATCH && (node->last_success || neg_expired)) { diff --git a/src/auth/passdb-dict.c b/src/auth/passdb-dict.c index c2d526f31a..dcdfc85771 100644 --- a/src/auth/passdb-dict.c +++ b/src/auth/passdb-dict.c @@ -111,9 +111,9 @@ static void passdb_dict_lookup_pass(struct passdb_dict_request *dict_request) auth_request); } else { if (password != NULL) { - passdb_result = auth_request_password_verify( - auth_request, authdb_event(auth_request), - auth_request->mech_password, password, scheme); + passdb_result = auth_request_db_password_verify( + auth_request, auth_request->mech_password, + password, scheme); } dict_request->callback.verify_plain(passdb_result, diff --git a/src/auth/passdb-ldap.c b/src/auth/passdb-ldap.c index 7b94775ba8..e870b7e1cd 100644 --- a/src/auth/passdb-ldap.c +++ b/src/auth/passdb-ldap.c @@ -102,9 +102,9 @@ ldap_lookup_finish(struct auth_request *auth_request, auth_request); } else { if (password != NULL) { - passdb_result = auth_request_password_verify( - auth_request, authdb_event(auth_request), - auth_request->mech_password, password, scheme); + passdb_result = auth_request_db_password_verify( + auth_request, auth_request->mech_password, + password, scheme); } ldap_request->callback.verify_plain(passdb_result, diff --git a/src/auth/passdb-lua.c b/src/auth/passdb-lua.c index 5c53eeedba..3f473754a6 100644 --- a/src/auth/passdb-lua.c +++ b/src/auth/passdb-lua.c @@ -96,9 +96,8 @@ passdb_lua_verify_plain(struct auth_request *request, const char *password, if (result == PASSDB_RESULT_OK) { if (lua_scheme == NULL) lua_scheme = "PLAIN"; - result = auth_request_password_verify( - request, authdb_event(request), - password, lua_password, lua_scheme); + result = auth_request_db_password_verify( + request, password, lua_password, lua_scheme); } } callback(result, request); diff --git a/src/auth/passdb-passwd-file.c b/src/auth/passdb-passwd-file.c index 846433fecf..dcd188485b 100644 --- a/src/auth/passdb-passwd-file.c +++ b/src/auth/passdb-passwd-file.c @@ -95,8 +95,8 @@ passwd_file_verify_plain(struct auth_request *request, const char *password, return; } - result = auth_request_password_verify(request, authdb_event(request), - password, crypted_pass, scheme); + result = auth_request_db_password_verify(request, password, + crypted_pass, scheme); callback(result, request); } diff --git a/src/auth/passdb-passwd.c b/src/auth/passdb-passwd.c index 6466c78dcd..2147b64e40 100644 --- a/src/auth/passdb-passwd.c +++ b/src/auth/passdb-passwd.c @@ -51,9 +51,8 @@ passwd_verify_plain(struct auth_request *request, const char *password, return; } /* check if the password is valid */ - res = auth_request_password_verify(request, authdb_event(request), - password, pw.pw_passwd, - PASSWD_PASS_SCHEME); + res = auth_request_db_password_verify(request, password, pw.pw_passwd, + PASSWD_PASS_SCHEME); /* clear the passwords from memory */ safe_memset(pw.pw_passwd, 0, strlen(pw.pw_passwd)); diff --git a/src/auth/passdb-sql.c b/src/auth/passdb-sql.c index 7e96fcde69..24d7ae86e3 100644 --- a/src/auth/passdb-sql.c +++ b/src/auth/passdb-sql.c @@ -134,9 +134,8 @@ static void sql_query_callback(struct sql_result *result, return; } - passdb_result = auth_request_password_verify( - auth_request, authdb_event(auth_request), - auth_request->mech_password, password, scheme); + passdb_result = auth_request_db_password_verify( + auth_request, auth_request->mech_password, password, scheme); sql_request->callback.verify_plain(passdb_result, auth_request); i_assert(dup_password != NULL); diff --git a/src/auth/passdb-static.c b/src/auth/passdb-static.c index 7af14b81a2..e2d57aeacf 100644 --- a/src/auth/passdb-static.c +++ b/src/auth/passdb-static.c @@ -68,9 +68,8 @@ static_verify_plain(struct auth_request *request, const char *password, return; } - result = auth_request_password_verify( - request, authdb_event(request), password, static_password, - static_scheme); + result = auth_request_db_password_verify( + request, password, static_password, static_scheme); callback(result, request); }