]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: mech-scram - Move get_scram_server_final() to auth-scram-server.c.
authorStephan Bosch <stephan.bosch@open-xchange.com>
Mon, 26 Sep 2022 23:37:11 +0000 (01:37 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 27 Jan 2023 09:34:54 +0000 (09:34 +0000)
src/auth/auth-scram-server.c
src/auth/mech-scram.c

index dbe6a1e407e3bfd859067459c4764a11dec69d1e..2b90855d1ac1b6cb7184b77309e115505eae7324 100644 (file)
@@ -321,3 +321,42 @@ parse_scram_client_final(struct scram_auth_request *request,
 
        return TRUE;
 }
+
+static const char *get_scram_server_final(struct scram_auth_request *request)
+{
+       const struct hash_method *hmethod = request->hash_method;
+       struct hmac_context ctx;
+       const char *auth_message;
+       unsigned char server_signature[hmethod->digest_size];
+       string_t *str;
+
+       /* RFC 5802, Section 3:
+
+          AuthMessage     := client-first-message-bare + "," +
+                             server-first-message + "," +
+                             client-final-message-without-proof
+          ServerSignature := HMAC(ServerKey, AuthMessage)
+        */
+       auth_message = t_strconcat(request->client_first_message_bare, ",",
+                       request->server_first_message, ",",
+                       request->client_final_message_without_proof, NULL);
+
+       hmac_init(&ctx, request->server_key, hmethod->digest_size, hmethod);
+       hmac_update(&ctx, auth_message, strlen(auth_message));
+       hmac_final(&ctx, server_signature);
+
+       /* RFC 5802, Section 7:
+
+          server-final-message = (server-error / verifier)
+                            ["," extensions]
+
+          verifier        = "v=" base64
+                            ;; base-64 encoded ServerSignature.
+
+        */
+       str = t_str_new(2 + MAX_BASE64_ENCODED_SIZE(sizeof(server_signature)));
+       str_append(str, "v=");
+       base64_encode(server_signature, sizeof(server_signature), str);
+
+       return str_c(str);
+}
index 232ae97caa8f5365b5bc0f5f296717ea04fa1c01..21970ef6c1483a395d9ff54f30456bfb1503ae35 100644 (file)
@@ -48,45 +48,6 @@ struct scram_auth_request {
        unsigned char *server_key;
 };
 
-static const char *get_scram_server_final(struct scram_auth_request *request)
-{
-       const struct hash_method *hmethod = request->hash_method;
-       struct hmac_context ctx;
-       const char *auth_message;
-       unsigned char server_signature[hmethod->digest_size];
-       string_t *str;
-
-       /* RFC 5802, Section 3:
-
-          AuthMessage     := client-first-message-bare + "," +
-                             server-first-message + "," +
-                             client-final-message-without-proof
-          ServerSignature := HMAC(ServerKey, AuthMessage)
-        */
-       auth_message = t_strconcat(request->client_first_message_bare, ",",
-                       request->server_first_message, ",",
-                       request->client_final_message_without_proof, NULL);
-
-       hmac_init(&ctx, request->server_key, hmethod->digest_size, hmethod);
-       hmac_update(&ctx, auth_message, strlen(auth_message));
-       hmac_final(&ctx, server_signature);
-
-       /* RFC 5802, Section 7:
-
-          server-final-message = (server-error / verifier)
-                            ["," extensions]
-
-          verifier        = "v=" base64
-                            ;; base-64 encoded ServerSignature.
-
-        */
-       str = t_str_new(2 + MAX_BASE64_ENCODED_SIZE(sizeof(server_signature)));
-       str_append(str, "v=");
-       base64_encode(server_signature, sizeof(server_signature), str);
-
-       return str_c(str);
-}
-
 #include "auth-scram-server.c"
 
 static void