]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: auth-request - Add auth_request_db_password_verify*() and use them
authorStephan Bosch <stephan.bosch@open-xchange.com>
Sun, 22 Oct 2023 23:13:11 +0000 (01:13 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Wed, 29 Nov 2023 08:29:04 +0000 (08:29 +0000)
src/auth/auth-request.c
src/auth/auth-request.h
src/auth/passdb-cache.c
src/auth/passdb-dict.c
src/auth/passdb-ldap.c
src/auth/passdb-lua.c
src/auth/passdb-passwd-file.c
src/auth/passdb-passwd.c
src/auth/passdb-sql.c
src/auth/passdb-static.c

index 2b9d772b6604c160d72d025c46fbaebdd1a985bb..4b645699d75d7902c662a99a6721e4b4ec5327e7 100644 (file)
@@ -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) {
index 3561a3cfffd916b8dcb5961f7b7a7693b44f9ff1..baa839f7d7791957e2be4c3413db2639c7028db1 100644 (file)
@@ -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,
index 64a264a28eb9999b8f690e3e5eb3f92b0b440b22..0a696f4fef5bb532113e4a6421e6ab59bac2985b 100644 (file)
@@ -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)) {
index c2d526f31a9b205172498db63b675b989329b5b7..dcdfc85771033ba30e78c9ea0623e216ef5c554c 100644 (file)
@@ -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,
index 7b94775ba8e33f9bbfaeae2f2a8c0ae556bbcead..e870b7e1cd4fb2f484f21f25ae27f951f64696ca 100644 (file)
@@ -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,
index 5c53eeedba999c9701c88b531d0bce27fa358fc5..3f473754a66511433c0740bd9abdb0a643fc6ea7 100644 (file)
@@ -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);
index 846433fecffa236db650fff990da52940bc59e27..dcd188485bf58d1a813d735a223b0d455daf4346 100644 (file)
@@ -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);
 }
index 6466c78dcd9d716af9b9793b5682418833255092..2147b64e40ce87857ea961eaf97aa88f18b8c7a3 100644 (file)
@@ -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));
index 7e96fcde693591fcf90c77bcd04fecc34f29aa77..24d7ae86e3fc2459bfee00f51931c79164bcea04 100644 (file)
@@ -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);
index 7af14b81a26f7482aa0bf81cd40485b1049c5e34..e2d57aeacfa065ce84f00d68acc113df3f7ed1e9 100644 (file)
@@ -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);
 }