public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/dovecot] f43: updated to 2.4.5 (#2525525)
@ 2026-09-10  4:42 Michal Hlavinka
  0 siblings, 0 replies; only message in thread
From: Michal Hlavinka @ 2026-09-10  4:42 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/dovecot
Branch : f43
Commit : c18f0f097dc89886d67da13eaaa1862ad6bfb744
Author : Michal Hlavinka <mhlavink@redhat.com>
Date   : 2026-09-09T11:30:55+02:00
Stats  : +132/-388 in 4 file(s)
URL    : https://src.fedoraproject.org/rpms/dovecot/c/c18f0f097dc89886d67da13eaaa1862ad6bfb744?branch=f43

Log:
updated to 2.4.5 (#2525525)

---
diff --git a/dovecot-2.4.1-nolibotp.patch b/dovecot-2.4.1-nolibotp.patch
deleted file mode 100644
index a8a1fc1..0000000
--- a/dovecot-2.4.1-nolibotp.patch
+++ /dev/null
@@ -1,285 +0,0 @@
-diff -up dovecot-2.4.3-build/dovecot-2.4.3/src/auth/auth-sasl.c.nolibotp dovecot-2.4.3-build/dovecot-2.4.3/src/auth/auth-sasl.c
---- dovecot-2.4.3-build/dovecot-2.4.3/src/auth/auth-sasl.c.nolibotp	2026-03-25 13:35:43.000000000 +0100
-+++ dovecot-2.4.3-build/dovecot-2.4.3/src/auth/auth-sasl.c	2026-04-08 15:49:39.028531157 +0200
-@@ -472,7 +472,6 @@ MECH_SIMPLE_REGISTER__TEMPLATE(cram_md5)
- MECH_SIMPLE_REGISTER__TEMPLATE(digest_md5)
- MECH_SIMPLE_REGISTER__TEMPLATE(external)
- MECH_SIMPLE_REGISTER__TEMPLATE(login)
--MECH_SIMPLE_REGISTER__TEMPLATE(otp)
- MECH_SIMPLE_REGISTER__TEMPLATE(plain)
- MECH_SIMPLE_REGISTER__TEMPLATE(scram_sha1)
- MECH_SIMPLE_REGISTER__TEMPLATE(scram_sha1_plus)
-@@ -539,12 +538,6 @@ static const struct auth_sasl_mech_modul
- 	.mech_register = mech_login_register,
- };
- 
--static const struct auth_sasl_mech_module mech_otp = {
--	.mech_name = SASL_MECH_NAME_OTP,
--
--	.mech_register = mech_otp_register,
--};
--
- static const struct auth_sasl_mech_module mech_plain = {
- 	.mech_name = SASL_MECH_NAME_PLAIN,
- 
-@@ -612,7 +605,6 @@ static void auth_sasl_mechs_init(const s
- 	if (set->use_winbind)
- 		auth_sasl_mech_register_module(&mech_winbind_ntlm);
- 	auth_sasl_mech_oauth2_register();
--	auth_sasl_mech_register_module(&mech_otp);
- 	auth_sasl_mech_register_module(&mech_plain);
- 	auth_sasl_mech_register_module(&mech_scram_sha1);
- 	auth_sasl_mech_register_module(&mech_scram_sha1_plus);
-diff -up dovecot-2.4.3-build/dovecot-2.4.3/src/auth/test-auth.c.nolibotp dovecot-2.4.3-build/dovecot-2.4.3/src/auth/test-auth.c
---- dovecot-2.4.3-build/dovecot-2.4.3/src/auth/test-auth.c.nolibotp	2026-03-27 07:57:09.000000000 +0100
-+++ dovecot-2.4.3-build/dovecot-2.4.3/src/auth/test-auth.c	2026-04-08 15:50:09.804842505 +0200
-@@ -16,7 +16,7 @@
- 
- static const char *const settings[] = {
- 	"auth_mechanisms",
--		"ANONYMOUS APOP CRAM-MD5 DIGEST-MD5 EXTERNAL LOGIN PLAIN OTP "
-+		"ANONYMOUS APOP CRAM-MD5 DIGEST-MD5 EXTERNAL LOGIN PLAIN "
- 		"OAUTHBEARER SCRAM-SHA-1 SCRAM-SHA-256 XOAUTH2",
- 	"auth_username_chars", "",
- 	"auth_username_format", "",
-diff -up dovecot-2.4.3-build/dovecot-2.4.3/src/auth/test-mech.c.nolibotp dovecot-2.4.3-build/dovecot-2.4.3/src/auth/test-mech.c
---- dovecot-2.4.3-build/dovecot-2.4.3/src/auth/test-mech.c.nolibotp	2026-03-25 13:35:43.000000000 +0100
-+++ dovecot-2.4.3-build/dovecot-2.4.3/src/auth/test-mech.c	2026-04-08 15:49:39.029309198 +0200
-@@ -46,10 +46,7 @@ request_handler_reply_mock_callback(stru
- 
- 	if (request->passdb_result == PASSDB_RESULT_OK)
- 		request->failed = FALSE;
--	else if (strcmp(request->fields.mech_name, SASL_MECH_NAME_OTP) == 0) {
--		if (null_strcmp(request->fields.user, "otp_phase_2") == 0)
--			request->failed = FALSE;
--	} else if (strcmp(request->fields.mech_name,
-+	else if (strcmp(request->fields.mech_name,
- 			  SASL_MECH_NAME_OAUTHBEARER) == 0) {
- 	}
- };
-@@ -190,10 +187,6 @@ static void test_mechs(void)
- 		{"PLAIN", UCHAR_LEN("\0testuser\0testpass"), "testuser", TRUE, FALSE, FALSE},
- 		{"PLAIN", UCHAR_LEN("normaluser\0masteruser\0masterpass"), "masteruser", TRUE, FALSE, FALSE},
- 		{"PLAIN", UCHAR_LEN("normaluser\0normaluser\0masterpass"), "normaluser", TRUE, FALSE, FALSE},
--		{"OTP", UCHAR_LEN("hex:5Bf0 75d9 959d 036f"), "otp_phase_2", TRUE, TRUE, FALSE},
--		{"OTP", UCHAR_LEN("word:BOND FOGY DRAB NE RISE MART"), "otp_phase_2", TRUE, TRUE, FALSE},
--		{"OTP", UCHAR_LEN("init-hex:f6bd 6b33 89b8 7203:md5 499 ke6118:23d1 b253 5ae0 2b7e"), "otp_phase_2", TRUE, TRUE, FALSE},
--		{"OTP", UCHAR_LEN("init-word:END KERN BALM NICK EROS WAVY:md5 499 ke1235:BABY FAIN OILY NIL TIDY DADE"), "otp_phase_2", TRUE, TRUE, FALSE},
- 		{"OAUTHBEARER", UCHAR_LEN("n,a=testuser,p=cHJvb2Y=,f=nonstandart\x01host=server\x01port=143\x01""auth=Bearer vF9dft4qmTc2Nvb3RlckBhbHRhdmlzdGEuY29tCg==\x01\x01"), "testuser", FALSE, TRUE, FALSE},
- 		{"SCRAM-SHA-1", UCHAR_LEN("n,,n=testuser,r=rOprNGfwEbeRWgbNEkqO"), "testuser", TRUE, FALSE, FALSE},
- 		{"SCRAM-SHA-256", UCHAR_LEN("n,,n=testuser,r=rOprNGfwEbeRWgbNEkqO"), "testuser",  TRUE, FALSE, FALSE},
-@@ -208,8 +201,6 @@ static void test_mechs(void)
- 		{"EXTERNAL", UCHAR_LEN(""), "testuser", FALSE, TRUE, FALSE},
- 		{"EXTERNAL", UCHAR_LEN(""), NULL, FALSE, FALSE, FALSE},
- 		{"LOGIN", UCHAR_LEN(""), NULL, FALSE, FALSE, FALSE},
--		{"OTP", UCHAR_LEN(""), NULL, FALSE, FALSE, FALSE},
--		{"OTP", UCHAR_LEN(""), "testuser", FALSE, FALSE, FALSE},
- 		{"PLAIN", UCHAR_LEN(""), NULL, FALSE, FALSE, FALSE},
- 		{"OAUTHBEARER", UCHAR_LEN(""), NULL, FALSE, FALSE, FALSE},
- 		{"XOAUTH2", UCHAR_LEN(""), NULL,  FALSE, FALSE, FALSE},
-@@ -221,7 +212,6 @@ static void test_mechs(void)
- 		{"APOP", UCHAR_LEN("1.1.1\0testuser\0tooshort"), NULL, FALSE, FALSE, FALSE},
- 		{"APOP", UCHAR_LEN("1.1.1\0testuser\0responseoflen16-"), NULL, FALSE, FALSE, FALSE},
- 		{"APOP", UCHAR_LEN("1.1.1"), NULL, FALSE, FALSE, FALSE},
--		{"OTP", UCHAR_LEN("somebody\0testuser"), "testuser", FALSE, TRUE, FALSE},
- 		{"CRAM-MD5", UCHAR_LEN("testuser\0response"), "testuser",  FALSE, FALSE, FALSE},
- 		{"PLAIN", UCHAR_LEN("testuser\0"), "testuser", FALSE, FALSE, FALSE},
- 
-@@ -264,9 +254,7 @@ static void test_mechs(void)
- 		{"PLAIN", UCHAR_LEN("\0fa\0il\0ing\0withthis"), NULL, FALSE, FALSE, FALSE},
- 		{"PLAIN", UCHAR_LEN("failingwiththis"), NULL, FALSE, FALSE, FALSE},
- 		{"PLAIN", UCHAR_LEN("failing\0withthis"), NULL, FALSE, FALSE, FALSE},
--		{"OTP", UCHAR_LEN("someb\0ody\0testuser"), NULL, FALSE, FALSE, FALSE},
- 		/* phase 2 */
--		{"OTP", UCHAR_LEN("someb\0ody\0testuser"), "testuser", FALSE, TRUE, FALSE},
- 		{"SCRAM-SHA-1", UCHAR_LEN("c=biws,r=fyko+d2lbbFgONRv9qkxdawL3rfcNHYJY1ZVvWVs7j,p=v0X8v3Bz2T0CJGbJQyF0X+HI4Ts="), NULL, FALSE, FALSE, FALSE},
- 		{"SCRAM-SHA-1", UCHAR_LEN("iws0X8v3Bz2T0CJGbJQyF0X+HI4Ts=,,,,"), NULL, FALSE, FALSE, FALSE},
- 		{"SCRAM-SHA-1", UCHAR_LEN("n,a=masteruser,,"), NULL, FALSE, FALSE, FALSE},
-diff -up dovecot-2.4.3-build/dovecot-2.4.3/src/lib-auth/password-scheme.c.nolibotp dovecot-2.4.3-build/dovecot-2.4.3/src/lib-auth/password-scheme.c
---- dovecot-2.4.3-build/dovecot-2.4.3/src/lib-auth/password-scheme.c.nolibotp	2026-04-08 15:49:39.017021503 +0200
-+++ dovecot-2.4.3-build/dovecot-2.4.3/src/lib-auth/password-scheme.c	2026-04-08 15:49:39.029606363 +0200
-@@ -13,7 +13,6 @@
- #include "randgen.h"
- #include "sha1.h"
- #include "sha2.h"
--#include "otp.h"
- #include "str.h"
- #include "auth-digest.h"
- #include "password-scheme.h"
-@@ -704,33 +703,6 @@ plain_md5_generate(const char *plaintext
- 	*size_r = MD5_RESULTLEN;
- }
- 
--static int otp_verify(const char *plaintext, const struct password_generate_params *params ATTR_UNUSED,
--		      const unsigned char *raw_password, size_t size,
--		      const char **error_r)
--{
--	const char *password, *generated;
--
--	password = t_strndup(raw_password, size);
--	if (password_generate_otp(plaintext, password, UINT_MAX, &generated) < 0) {
--		*error_r = "Invalid OTP data in passdb";
--		return -1;
--	}
--
--	return strcasecmp(password, generated) == 0 ? 1 : 0;
--}
--
--static void
--otp_generate(const char *plaintext, const struct password_generate_params *params ATTR_UNUSED,
--	     const unsigned char **raw_password_r, size_t *size_r)
--{
--	const char *password;
--
--	if (password_generate_otp(plaintext, NULL, OTP_HASH_SHA1, &password) < 0)
--		i_unreached();
--	*raw_password_r = (const unsigned char *)password;
--	*size_r = strlen(password);
--}
--
- static const struct password_scheme builtin_schemes[] = {
- 	{
- 		.name = "MD5",
-@@ -894,13 +866,6 @@ static const struct password_scheme buil
- 		.password_generate = plain_md5_generate,
- 	},
- 	{
--		.name = "OTP",
--		.default_encoding = PW_ENCODING_NONE,
--		.raw_password_len = 0,
--		.password_verify = otp_verify,
--		.password_generate = otp_generate,
--	},
--	{
- 		.name = "PBKDF2",
- 		.default_encoding = PW_ENCODING_NONE,
- 		.raw_password_len = 0,
-diff -up dovecot-2.4.3-build/dovecot-2.4.3/src/lib-auth/password-scheme.h.nolibotp dovecot-2.4.3-build/dovecot-2.4.3/src/lib-auth/password-scheme.h
---- dovecot-2.4.3-build/dovecot-2.4.3/src/lib-auth/password-scheme.h.nolibotp	2026-03-25 13:35:43.000000000 +0100
-+++ dovecot-2.4.3-build/dovecot-2.4.3/src/lib-auth/password-scheme.h	2026-04-08 15:49:39.029929235 +0200
-@@ -98,9 +98,6 @@ void password_set_encryption_rounds(unsi
- /* INTERNAL: */
- const char *password_generate_salt(size_t len);
- const char *password_generate_md5_crypt(const char *pw, const char *salt);
--int password_generate_otp(const char *pw, const char *state_data,
--			  unsigned int algo, const char **result_r)
--	ATTR_NULL(2);
- 
- int scram_verify(const struct hash_method *hmethod, const char *scheme_name,
- 		 const char *plaintext, const unsigned char *raw_password,
-diff -up dovecot-2.4.3-build/dovecot-2.4.3/src/lib-auth/test-password-scheme.c.nolibotp dovecot-2.4.3-build/dovecot-2.4.3/src/lib-auth/test-password-scheme.c
---- dovecot-2.4.3-build/dovecot-2.4.3/src/lib-auth/test-password-scheme.c.nolibotp	2026-03-09 12:04:52.000000000 +0100
-+++ dovecot-2.4.3-build/dovecot-2.4.3/src/lib-auth/test-password-scheme.c	2026-04-08 15:49:39.030142844 +0200
-@@ -107,7 +107,6 @@ static void test_password_schemes(void)
- 	test_password_scheme("SHA512", "{SHA512}7iaw3Ur350mqGo7jwQrpkj9hiYB3Lkc/iBml1JQODbJ6wYX4oOHV+E+IvIh/1nsUNzLDBMxfqa2Ob1f1ACio/w==", "test");
- 	test_password_scheme("SSHA", "{SSHA}H/zrDv8FXUu1JmwvVYijfrYEF34jVZcO", "test");
- 	test_password_scheme("MD5-CRYPT", "{MD5-CRYPT}$1$GgvxyNz8$OjZhLh4P.gF1lxYEbLZ3e/", "test");
--	test_password_scheme("OTP", "{OTP}sha1 1024 ae6b49aa481f7233 f69fc7f98b8fbf54", "test");
- 	test_password_scheme("PBKDF2", "{PBKDF2}$1$bUnT4Pl7yFtYX0KU$5000$50a83cafdc517b9f46519415e53c6a858908680a", "test");
- 	test_password_scheme("CRAM-MD5", "{CRAM-MD5}e02d374fde0dc75a17a557039a3a5338c7743304777dccd376f332bee68d2cf6", "test");
- 	test_password_scheme("DIGEST-MD5", "{DIGEST-MD5}77c1a8c437c9b08ba2f460fe5d58db5d", "test");
-diff -up dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/dsasl-client.c.nolibotp dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/dsasl-client.c
---- dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/dsasl-client.c.nolibotp	2026-03-25 13:35:43.000000000 +0100
-+++ dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/dsasl-client.c	2026-04-08 15:49:39.030348007 +0200
-@@ -181,7 +181,6 @@ void dsasl_clients_init(void)
- 	dsasl_client_mech_register(&dsasl_client_mech_digest_md5);
- 	dsasl_client_mech_register(&dsasl_client_mech_cram_md5);
- 	dsasl_client_mech_register(&dsasl_client_mech_oauthbearer);
--	dsasl_client_mech_register(&dsasl_client_mech_otp);
- 	dsasl_client_mech_register(&dsasl_client_mech_xoauth2);
- 	dsasl_client_mech_register(&dsasl_client_mech_scram_sha_1);
- 	dsasl_client_mech_register(&dsasl_client_mech_scram_sha_1_plus);
-diff -up dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/dsasl-client-private.h.nolibotp dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/dsasl-client-private.h
---- dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/dsasl-client-private.h.nolibotp	2026-03-25 13:35:43.000000000 +0100
-+++ dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/dsasl-client-private.h	2026-04-08 15:49:39.030514247 +0200
-@@ -50,7 +50,6 @@ extern const struct dsasl_client_mech ds
- extern const struct dsasl_client_mech dsasl_client_mech_external;
- extern const struct dsasl_client_mech dsasl_client_mech_login;
- extern const struct dsasl_client_mech dsasl_client_mech_oauthbearer;
--extern const struct dsasl_client_mech dsasl_client_mech_otp;
- extern const struct dsasl_client_mech dsasl_client_mech_xoauth2;
- extern const struct dsasl_client_mech dsasl_client_mech_scram_sha_1;
- extern const struct dsasl_client_mech dsasl_client_mech_scram_sha_1_plus;
-diff -up dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/fuzz-sasl-authentication.c.nolibotp dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/fuzz-sasl-authentication.c
---- dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/fuzz-sasl-authentication.c.nolibotp	2026-03-25 13:35:43.000000000 +0100
-+++ dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/fuzz-sasl-authentication.c	2026-04-08 15:49:39.030680667 +0200
-@@ -641,7 +641,6 @@ static void fuzz_sasl_run(struct istream
- 	sasl_server_mech_register_cram_md5(server_inst);
- 	sasl_server_mech_register_digest_md5(server_inst);
- 	sasl_server_mech_register_login(server_inst);
--	sasl_server_mech_register_otp(server_inst);
- 	sasl_server_mech_register_plain(server_inst);
- 	sasl_server_mech_register_scram_sha1(server_inst);
- 	sasl_server_mech_register_scram_sha1_plus(server_inst);
-diff -up dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/sasl-server.h.nolibotp dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/sasl-server.h
---- dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/sasl-server.h.nolibotp	2026-03-25 13:35:43.000000000 +0100
-+++ dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/sasl-server.h	2026-04-08 15:49:39.030883376 +0200
-@@ -193,8 +193,6 @@ void sasl_server_mech_register_scram_sha
- void sasl_server_mech_register_scram_sha256_plus(
- 	struct sasl_server_instance *sinst);
- 
--void sasl_server_mech_register_otp(struct sasl_server_instance *sinst);
--
- /* Winbind */
- 
- struct sasl_server_winbind_settings {
-diff -up dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/test-sasl-authentication.c.nolibotp dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/test-sasl-authentication.c
---- dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/test-sasl-authentication.c.nolibotp	2026-03-25 13:35:43.000000000 +0100
-+++ dovecot-2.4.3-build/dovecot-2.4.3/src/lib-sasl/test-sasl-authentication.c	2026-04-08 15:49:39.031105610 +0200
-@@ -505,7 +505,6 @@ test_sasl_run(const struct test_sasl *te
- 	sasl_server_mech_register_digest_md5(server_inst);
- 	sasl_server_mech_register_external(server_inst);
- 	sasl_server_mech_register_login(server_inst);
--	sasl_server_mech_register_otp(server_inst);
- 	sasl_server_mech_register_plain(server_inst);
- 	sasl_server_mech_register_scram_sha1(server_inst);
- 	sasl_server_mech_register_scram_sha1_plus(server_inst);
-@@ -720,16 +719,6 @@ static const struct test_sasl success_te
- 			.password = "tokentokentoken",
- 		},
- 	},
--	/* OTP */
--	{
--		.mech = "OTP",
--		.authid_type = SASL_SERVER_AUTHID_TYPE_USERNAME,
--		.server = {
--			.authid = "user",
--			.password = "pass",
--		},
--		.repeat = 1050,
--	},
- 	/* EXTERNAL */
- 	{
- 		.mech = "EXTERNAL",
-@@ -1455,31 +1444,6 @@ static const struct test_sasl bad_creds_
- 		},
- 		.failure = TRUE,
- 	},
--	/* OTP */
--	{
--		.mech = "OTP",
--		.authid_type = SASL_SERVER_AUTHID_TYPE_USERNAME,
--		.server = {
--			.authid = "user",
--			.password = "pass",
--		},
--		.client = {
--			.authid = "userb",
--		},
--		.failure = TRUE,
--	},
--	{
--		.mech = "OTP",
--		.authid_type = SASL_SERVER_AUTHID_TYPE_USERNAME,
--		.server = {
--			.authid = "user",
--			.password = "pass",
--		},
--		.client = {
--			.password = "florp",
--		},
--		.failure = TRUE,
--	},
- 	/* EXTERNAL */
- 	{
- 		.mech = "EXTERNAL",

diff --git a/dovecot-2.4.1-opensslhmac3.patch b/dovecot-2.4.1-opensslhmac3.patch
index 4d9a831..c174762 100644
--- a/dovecot-2.4.1-opensslhmac3.patch
+++ b/dovecot-2.4.1-opensslhmac3.patch
@@ -1,6 +1,6 @@
-diff -up dovecot-2.4.4/src/auth/auth-token.c.opensslhmac3 dovecot-2.4.4/src/auth/auth-token.c
---- dovecot-2.4.4/src/auth/auth-token.c.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/auth/auth-token.c	2026-05-15 13:45:45.626423882 +0200
+diff -up dovecot-2.4.5/src/auth/auth-token.c.opensslhmac3 dovecot-2.4.5/src/auth/auth-token.c
+--- dovecot-2.4.5/src/auth/auth-token.c.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/auth/auth-token.c	2026-09-09 09:02:55.314689129 +0200
 @@ -162,17 +162,17 @@ void auth_token_deinit(void)
  const char *auth_token_get(const char *service, const char *session_pid,
  			   const char *username, const char *session_id)
@@ -26,10 +26,10 @@ diff -up dovecot-2.4.4/src/auth/auth-token.c.opensslhmac3 dovecot-2.4.4/src/auth
  
  	return binary_to_hex(result, sizeof(result));
  }
-diff -up dovecot-2.4.4/src/auth/Makefile.am.opensslhmac3 dovecot-2.4.4/src/auth/Makefile.am
---- dovecot-2.4.4/src/auth/Makefile.am.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/auth/Makefile.am	2026-05-15 13:45:45.626097493 +0200
-@@ -73,6 +73,7 @@ auth_LDFLAGS = -export-dynamic
+diff -up dovecot-2.4.5/src/auth/Makefile.am.opensslhmac3 dovecot-2.4.5/src/auth/Makefile.am
+--- dovecot-2.4.5/src/auth/Makefile.am.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/auth/Makefile.am	2026-09-09 09:02:55.314815695 +0200
+@@ -70,6 +70,7 @@ auth_LDFLAGS = -export-dynamic
  auth_libs = \
  	../lib-auth/libauth-crypt.la \
  	$(AUTH_LUA_LIBS) \
@@ -37,9 +37,21 @@ diff -up dovecot-2.4.4/src/auth/Makefile.am.opensslhmac3 dovecot-2.4.4/src/auth/
  	$(LIBDOVECOT_SQL)
  
  auth_CPPFLAGS = $(AM_CPPFLAGS) $(BINARY_CFLAGS)
-diff -up dovecot-2.4.4/src/imap/Makefile.am.opensslhmac3 dovecot-2.4.4/src/imap/Makefile.am
---- dovecot-2.4.4/src/imap/Makefile.am.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/imap/Makefile.am	2026-05-15 13:45:45.626801526 +0200
+diff -up dovecot-2.4.5/src/auth/test-db-oauth2.c.opensslhmac3 dovecot-2.4.5/src/auth/test-db-oauth2.c
+--- dovecot-2.4.5/src/auth/test-db-oauth2.c.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/auth/test-db-oauth2.c	2026-09-09 09:35:15.441795842 +0200
+@@ -148,7 +148,7 @@ build_jwt(time_t exp, const char *email,
+ 			 str_data(body), str_len(body),
+ 			 tokenbuf);
+ 
+-	buffer_t *sig = t_hmac_buffer(&hash_method_sha256,
++	buffer_t *sig = openssl_t_hmac_buffer(&hash_method_sha256,
+ 				       test_hmac_key->data, test_hmac_key->used,
+ 				       tokenbuf);
+ 	if (bad_sig) {
+diff -up dovecot-2.4.5/src/imap/Makefile.am.opensslhmac3 dovecot-2.4.5/src/imap/Makefile.am
+--- dovecot-2.4.5/src/imap/Makefile.am.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/imap/Makefile.am	2026-09-09 09:02:55.315007664 +0200
 @@ -25,11 +25,13 @@ AM_CPPFLAGS = \
  	$(BINARY_CFLAGS)
  
@@ -54,9 +66,9 @@ diff -up dovecot-2.4.4/src/imap/Makefile.am.opensslhmac3 dovecot-2.4.4/src/imap/
  	$(LIBDOVECOT_STORAGE) \
  	$(LIBDOVECOT)
  imap_DEPENDENCIES = \
-diff -up dovecot-2.4.4/src/imap-urlauth/Makefile.am.opensslhmac3 dovecot-2.4.4/src/imap-urlauth/Makefile.am
---- dovecot-2.4.4/src/imap-urlauth/Makefile.am.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/imap-urlauth/Makefile.am	2026-05-15 13:45:45.626622192 +0200
+diff -up dovecot-2.4.5/src/imap-urlauth/Makefile.am.opensslhmac3 dovecot-2.4.5/src/imap-urlauth/Makefile.am
+--- dovecot-2.4.5/src/imap-urlauth/Makefile.am.opensslhmac3	2026-08-24 08:36:22.000000000 +0200
++++ dovecot-2.4.5/src/imap-urlauth/Makefile.am	2026-09-09 09:02:55.315164607 +0200
 @@ -23,6 +23,7 @@ imap_urlauth_CPPFLAGS = \
  imap_urlauth_LDFLAGS = -export-dynamic
  
@@ -74,9 +86,9 @@ diff -up dovecot-2.4.4/src/imap-urlauth/Makefile.am.opensslhmac3 dovecot-2.4.4/s
  imap_urlauth_worker_DEPENDENCIES = $(urlauth_libs) $(LIBDOVECOT_STORAGE_DEPS) $(LIBDOVECOT_DEPS)
  
  imap_urlauth_worker_SOURCES = \
-diff -up dovecot-2.4.4/src/lib-auth/auth-scram-client.c.opensslhmac3 dovecot-2.4.4/src/lib-auth/auth-scram-client.c
---- dovecot-2.4.4/src/lib-auth/auth-scram-client.c.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib-auth/auth-scram-client.c	2026-05-15 13:45:45.627024522 +0200
+diff -up dovecot-2.4.5/src/lib-auth/auth-scram-client.c.opensslhmac3 dovecot-2.4.5/src/lib-auth/auth-scram-client.c
+--- dovecot-2.4.5/src/lib-auth/auth-scram-client.c.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/lib-auth/auth-scram-client.c	2026-09-09 09:02:55.315334504 +0200
 @@ -226,7 +226,7 @@ static string_t *auth_scram_get_client_f
  	unsigned char client_signature[hmethod->digest_size];
  	unsigned char client_proof[hmethod->digest_size];
@@ -135,9 +147,9 @@ diff -up dovecot-2.4.4/src/lib-auth/auth-scram-client.c.opensslhmac3 dovecot-2.4
  
  	safe_memset(salted_password, 0, sizeof(salted_password));
  
-diff -up dovecot-2.4.4/src/lib-auth/auth-scram.c.opensslhmac3 dovecot-2.4.4/src/lib-auth/auth-scram.c
---- dovecot-2.4.4/src/lib-auth/auth-scram.c.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib-auth/auth-scram.c	2026-05-15 13:45:45.627632155 +0200
+diff -up dovecot-2.4.5/src/lib-auth/auth-scram.c.opensslhmac3 dovecot-2.4.5/src/lib-auth/auth-scram.c
+--- dovecot-2.4.5/src/lib-auth/auth-scram.c.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/lib-auth/auth-scram.c	2026-09-09 09:02:55.315557350 +0200
 @@ -31,7 +31,7 @@ void auth_scram_hi(const struct hash_met
  		   const unsigned char *salt, size_t salt_size, unsigned int i,
  		   unsigned char *result)
@@ -207,9 +219,9 @@ diff -up dovecot-2.4.4/src/lib-auth/auth-scram.c.opensslhmac3 dovecot-2.4.4/src/
  
  	safe_memset(salted_password, 0, sizeof(salted_password));
  	safe_memset(client_key, 0, sizeof(client_key));
-diff -up dovecot-2.4.4/src/lib-auth/auth-scram-server.c.opensslhmac3 dovecot-2.4.4/src/lib-auth/auth-scram-server.c
---- dovecot-2.4.4/src/lib-auth/auth-scram-server.c.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib-auth/auth-scram-server.c	2026-05-15 13:54:09.418590256 +0200
+diff -up dovecot-2.4.5/src/lib-auth/auth-scram-server.c.opensslhmac3 dovecot-2.4.5/src/lib-auth/auth-scram-server.c
+--- dovecot-2.4.5/src/lib-auth/auth-scram-server.c.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/lib-auth/auth-scram-server.c	2026-09-09 09:02:55.315740813 +0200
 @@ -297,7 +297,7 @@ auth_scram_server_verify_credentials(str
  	i_assert(hmethod != NULL);
  
@@ -232,7 +244,7 @@ diff -up dovecot-2.4.4/src/lib-auth/auth-scram-server.c.opensslhmac3 dovecot-2.4
  
  	/* ClientProof     := ClientKey XOR ClientSignature */
  	const unsigned char *proof_data = server->proof->data;
-@@ -455,7 +455,7 @@ auth_scram_get_server_final(struct auth_
+@@ -461,7 +461,7 @@ auth_scram_get_server_final(struct auth_
  	i_assert(hmethod != NULL);
  
  	struct auth_scram_key_data *kdata = &server->key_data;
@@ -241,7 +253,7 @@ diff -up dovecot-2.4.4/src/lib-auth/auth-scram-server.c.opensslhmac3 dovecot-2.4
  	const char *auth_message;
  	unsigned char server_signature[hmethod->digest_size];
  	string_t *str;
-@@ -471,9 +471,9 @@ auth_scram_get_server_final(struct auth_
+@@ -477,9 +477,9 @@ auth_scram_get_server_final(struct auth_
  			server->server_first_message, ",",
  			server->client_final_message_without_proof, NULL);
  
@@ -254,10 +266,10 @@ diff -up dovecot-2.4.4/src/lib-auth/auth-scram-server.c.opensslhmac3 dovecot-2.4
  
  	/* RFC 5802, Section 7:
  
-diff -up dovecot-2.4.4/src/lib-auth/password-scheme.c.opensslhmac3 dovecot-2.4.4/src/lib-auth/password-scheme.c
---- dovecot-2.4.4/src/lib-auth/password-scheme.c.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib-auth/password-scheme.c	2026-05-15 13:45:45.628008176 +0200
-@@ -633,11 +633,11 @@ static void
+diff -up dovecot-2.4.5/src/lib-auth/password-scheme.c.opensslhmac3 dovecot-2.4.5/src/lib-auth/password-scheme.c
+--- dovecot-2.4.5/src/lib-auth/password-scheme.c.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/lib-auth/password-scheme.c	2026-09-09 09:02:55.315983686 +0200
+@@ -632,11 +632,11 @@ static void
  cram_md5_generate(const char *plaintext, const struct password_generate_params *params ATTR_UNUSED,
  		  const unsigned char **raw_password_r, size_t *size_r)
  {
@@ -271,9 +283,9 @@ diff -up dovecot-2.4.4/src/lib-auth/password-scheme.c.opensslhmac3 dovecot-2.4.4
  		  strlen(plaintext), &hash_method_md5);
  	hmac_md5_get_cram_context(&ctx, context_digest);
  
-diff -up dovecot-2.4.4/src/lib-auth/password-scheme-scram.c.opensslhmac3 dovecot-2.4.4/src/lib-auth/password-scheme-scram.c
---- dovecot-2.4.4/src/lib-auth/password-scheme-scram.c.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib-auth/password-scheme-scram.c	2026-05-15 13:45:45.627802813 +0200
+diff -up dovecot-2.4.5/src/lib-auth/password-scheme-scram.c.opensslhmac3 dovecot-2.4.5/src/lib-auth/password-scheme-scram.c
+--- dovecot-2.4.5/src/lib-auth/password-scheme-scram.c.opensslhmac3	2026-08-24 08:36:22.000000000 +0200
++++ dovecot-2.4.5/src/lib-auth/password-scheme-scram.c	2026-09-09 09:02:55.316205290 +0200
 @@ -23,7 +23,7 @@ int scram_verify(const struct hash_metho
  		 const char *plaintext, const unsigned char *raw_password,
  		 size_t size, const char **error_r)
@@ -296,9 +308,9 @@ diff -up dovecot-2.4.4/src/lib-auth/password-scheme-scram.c.opensslhmac3 dovecot
  
  	/* Calculate StoredKey */
  	hash_method_get_digest(hmethod, client_key, sizeof(client_key),
-diff -up dovecot-2.4.4/src/lib/hmac.c.opensslhmac3 dovecot-2.4.4/src/lib/hmac.c
---- dovecot-2.4.4/src/lib/hmac.c.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib/hmac.c	2026-05-15 13:45:45.630331377 +0200
+diff -up dovecot-2.4.5/src/lib/hmac.c.opensslhmac3 dovecot-2.4.5/src/lib/hmac.c
+--- dovecot-2.4.5/src/lib/hmac.c.opensslhmac3	2026-03-09 12:04:52.000000000 +0100
++++ dovecot-2.4.5/src/lib/hmac.c	2026-09-09 09:02:55.316445118 +0200
 @@ -7,6 +7,10 @@
   * This software is released under the MIT license.
   */
@@ -572,9 +584,9 @@ diff -up dovecot-2.4.4/src/lib/hmac.c.opensslhmac3 dovecot-2.4.4/src/lib/hmac.c
 -	safe_memset(prk, 0, sizeof(prk));
 -	safe_memset(okm, 0, sizeof(okm));
  }
-diff -up dovecot-2.4.4/src/lib/hmac-cram-md5.c.opensslhmac3 dovecot-2.4.4/src/lib/hmac-cram-md5.c
---- dovecot-2.4.4/src/lib/hmac-cram-md5.c.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib/hmac-cram-md5.c	2026-05-15 13:45:45.629976686 +0200
+diff -up dovecot-2.4.5/src/lib/hmac-cram-md5.c.opensslhmac3 dovecot-2.4.5/src/lib/hmac-cram-md5.c
+--- dovecot-2.4.5/src/lib/hmac-cram-md5.c.opensslhmac3	2025-09-10 12:17:56.000000000 +0200
++++ dovecot-2.4.5/src/lib/hmac-cram-md5.c	2026-09-09 09:02:55.316676129 +0200
 @@ -9,10 +9,10 @@
  #include "md5.h"
  #include "hmac-cram-md5.h"
@@ -601,9 +613,9 @@ diff -up dovecot-2.4.4/src/lib/hmac-cram-md5.c.opensslhmac3 dovecot-2.4.4/src/li
  	const unsigned char *cdp;
  
  	struct md5_context *ctx = (void*)hmac_ctx->ctx;
-diff -up dovecot-2.4.4/src/lib/hmac-cram-md5.h.opensslhmac3 dovecot-2.4.4/src/lib/hmac-cram-md5.h
---- dovecot-2.4.4/src/lib/hmac-cram-md5.h.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib/hmac-cram-md5.h	2026-05-15 13:45:45.630133038 +0200
+diff -up dovecot-2.4.5/src/lib/hmac-cram-md5.h.opensslhmac3 dovecot-2.4.5/src/lib/hmac-cram-md5.h
+--- dovecot-2.4.5/src/lib/hmac-cram-md5.h.opensslhmac3	2025-09-10 12:17:56.000000000 +0200
++++ dovecot-2.4.5/src/lib/hmac-cram-md5.h	2026-09-09 09:02:55.316842680 +0200
 @@ -5,9 +5,9 @@
  
  #define CRAM_MD5_CONTEXTLEN 32
@@ -616,9 +628,9 @@ diff -up dovecot-2.4.4/src/lib/hmac-cram-md5.h.opensslhmac3 dovecot-2.4.4/src/li
  		const unsigned char context_digest[CRAM_MD5_CONTEXTLEN]);
  
  
-diff -up dovecot-2.4.4/src/lib/hmac.h.opensslhmac3 dovecot-2.4.4/src/lib/hmac.h
---- dovecot-2.4.4/src/lib/hmac.h.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib/hmac.h	2026-05-15 13:45:45.630580542 +0200
+diff -up dovecot-2.4.5/src/lib/hmac.h.opensslhmac3 dovecot-2.4.5/src/lib/hmac.h
+--- dovecot-2.4.5/src/lib/hmac.h.opensslhmac3	2026-08-24 08:36:22.000000000 +0200
++++ dovecot-2.4.5/src/lib/hmac.h	2026-09-09 09:02:55.317053524 +0200
 @@ -4,60 +4,108 @@
  #include "hash-method.h"
  #include "sha1.h"
@@ -741,9 +753,9 @@ diff -up dovecot-2.4.4/src/lib/hmac.h.opensslhmac3 dovecot-2.4.4/src/lib/hmac.h
  		  okm_buffer, okm_len);
  	return okm_buffer;
  }
-diff -up dovecot-2.4.4/src/lib-imap-urlauth/imap-urlauth.c.opensslhmac3 dovecot-2.4.4/src/lib-imap-urlauth/imap-urlauth.c
---- dovecot-2.4.4/src/lib-imap-urlauth/imap-urlauth.c.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib-imap-urlauth/imap-urlauth.c	2026-05-15 13:45:45.628405887 +0200
+diff -up dovecot-2.4.5/src/lib-imap-urlauth/imap-urlauth.c.opensslhmac3 dovecot-2.4.5/src/lib-imap-urlauth/imap-urlauth.c
+--- dovecot-2.4.5/src/lib-imap-urlauth/imap-urlauth.c.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/lib-imap-urlauth/imap-urlauth.c	2026-09-09 09:02:55.317224403 +0200
 @@ -87,15 +87,15 @@ imap_urlauth_internal_generate(
  	const unsigned char mailbox_key[IMAP_URLAUTH_KEY_LEN],
  	size_t *token_len_r)
@@ -764,9 +776,9 @@ diff -up dovecot-2.4.4/src/lib-imap-urlauth/imap-urlauth.c.opensslhmac3 dovecot-
  
  	*token_len_r = SHA1_RESULTLEN + 1;
  	return token;
-diff -up dovecot-2.4.4/src/lib-imap-urlauth/Makefile.am.opensslhmac3 dovecot-2.4.4/src/lib-imap-urlauth/Makefile.am
---- dovecot-2.4.4/src/lib-imap-urlauth/Makefile.am.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib-imap-urlauth/Makefile.am	2026-05-15 13:45:45.628229098 +0200
+diff -up dovecot-2.4.5/src/lib-imap-urlauth/Makefile.am.opensslhmac3 dovecot-2.4.5/src/lib-imap-urlauth/Makefile.am
+--- dovecot-2.4.5/src/lib-imap-urlauth/Makefile.am.opensslhmac3	2026-08-24 08:36:22.000000000 +0200
++++ dovecot-2.4.5/src/lib-imap-urlauth/Makefile.am	2026-09-09 09:02:55.317321715 +0200
 @@ -30,11 +30,13 @@ headers = \
  
  test_programs = test-imap-urlauth
@@ -781,10 +793,10 @@ diff -up dovecot-2.4.4/src/lib-imap-urlauth/Makefile.am.opensslhmac3 dovecot-2.4
  	$(LIBDOVECOT_TEST_LIBS)
  
  pkginc_libdir=$(pkgincludedir)
-diff -up dovecot-2.4.4/src/lib/Makefile.am.opensslhmac3 dovecot-2.4.4/src/lib/Makefile.am
---- dovecot-2.4.4/src/lib/Makefile.am.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib/Makefile.am	2026-05-15 13:45:45.629773097 +0200
-@@ -429,6 +429,9 @@ headers = \
+diff -up dovecot-2.4.5/src/lib/Makefile.am.opensslhmac3 dovecot-2.4.5/src/lib/Makefile.am
+--- dovecot-2.4.5/src/lib/Makefile.am.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/lib/Makefile.am	2026-09-09 09:02:55.317401424 +0200
+@@ -451,6 +451,9 @@ headers = \
  	wildcard-match.h \
  	write-full.h
  
@@ -794,10 +806,10 @@ diff -up dovecot-2.4.4/src/lib/Makefile.am.opensslhmac3 dovecot-2.4.4/src/lib/Ma
  test_programs = test-lib test-cpu-limit
  
  test_lib_CPPFLAGS = \
-diff -up dovecot-2.4.4/src/lib-oauth2/oauth2-jwt.c.opensslhmac3 dovecot-2.4.4/src/lib-oauth2/oauth2-jwt.c
---- dovecot-2.4.4/src/lib-oauth2/oauth2-jwt.c.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib-oauth2/oauth2-jwt.c	2026-05-15 13:45:45.628630707 +0200
-@@ -210,14 +210,14 @@ oauth2_validate_hmac(const struct oauth2
+diff -up dovecot-2.4.5/src/lib-oauth2/oauth2-jwt.c.opensslhmac3 dovecot-2.4.5/src/lib-oauth2/oauth2-jwt.c
+--- dovecot-2.4.5/src/lib-oauth2/oauth2-jwt.c.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/lib-oauth2/oauth2-jwt.c	2026-09-09 09:02:55.317511960 +0200
+@@ -218,14 +218,14 @@ oauth2_validate_hmac(const struct oauth2
  	if (oauth2_lookup_hmac_key(set, azp, alg, key_id, &key, error_r) < 0)
  		return -1;
  
@@ -818,9 +830,9 @@ diff -up dovecot-2.4.4/src/lib-oauth2/oauth2-jwt.c.opensslhmac3 dovecot-2.4.4/sr
  
  	buffer_t *their_digest =
  		t_base64url_decode_str(BASE64_DECODE_FLAG_NO_PADDING, blobs[2]);
-diff -up dovecot-2.4.4/src/lib-oauth2/test-oauth2-jwt.c.opensslhmac3 dovecot-2.4.4/src/lib-oauth2/test-oauth2-jwt.c
---- dovecot-2.4.4/src/lib-oauth2/test-oauth2-jwt.c.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib-oauth2/test-oauth2-jwt.c	2026-05-15 13:45:45.628853121 +0200
+diff -up dovecot-2.4.5/src/lib-oauth2/test-oauth2-jwt.c.opensslhmac3 dovecot-2.4.5/src/lib-oauth2/test-oauth2-jwt.c
+--- dovecot-2.4.5/src/lib-oauth2/test-oauth2-jwt.c.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/lib-oauth2/test-oauth2-jwt.c	2026-09-09 09:02:55.317627436 +0200
 @@ -250,7 +250,7 @@ static void save_key_azp_to(const char *
  static void sign_jwt_token_hs256(buffer_t *tokenbuf, buffer_t *key)
  {
@@ -848,9 +860,9 @@ diff -up dovecot-2.4.4/src/lib-oauth2/test-oauth2-jwt.c.opensslhmac3 dovecot-2.4
  				      tokenbuf);
  	buffer_append(tokenbuf, ".", 1);
  	base64url_encode(BASE64_ENCODE_FLAG_NO_PADDING, SIZE_MAX,
-diff -up dovecot-2.4.4/src/lib/pkcs5.c.opensslhmac3 dovecot-2.4.4/src/lib/pkcs5.c
---- dovecot-2.4.4/src/lib/pkcs5.c.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib/pkcs5.c	2026-05-15 13:45:45.630754386 +0200
+diff -up dovecot-2.4.5/src/lib/pkcs5.c.opensslhmac3 dovecot-2.4.5/src/lib/pkcs5.c
+--- dovecot-2.4.5/src/lib/pkcs5.c.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/lib/pkcs5.c	2026-09-09 09:02:55.317744414 +0200
 @@ -52,7 +52,7 @@ int pkcs5_pbkdf2(const struct hash_metho
  	size_t l = (length + hash->digest_size - 1)/hash->digest_size; /* same as ceil(length/hash->digest_size) */
  	unsigned char dk[l * hash->digest_size];
@@ -885,9 +897,9 @@ diff -up dovecot-2.4.4/src/lib/pkcs5.c.opensslhmac3 dovecot-2.4.4/src/lib/pkcs5.
  			for(i = 0; i < hash->digest_size; i++)
  				block[i] ^= U_c[i];
  		}
-diff -up dovecot-2.4.4/src/lib-sasl/dsasl-client-mech-cram-md5.c.opensslhmac3 dovecot-2.4.4/src/lib-sasl/dsasl-client-mech-cram-md5.c
---- dovecot-2.4.4/src/lib-sasl/dsasl-client-mech-cram-md5.c.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib-sasl/dsasl-client-mech-cram-md5.c	2026-05-15 13:45:45.629129537 +0200
+diff -up dovecot-2.4.5/src/lib-sasl/dsasl-client-mech-cram-md5.c.opensslhmac3 dovecot-2.4.5/src/lib-sasl/dsasl-client-mech-cram-md5.c
+--- dovecot-2.4.5/src/lib-sasl/dsasl-client-mech-cram-md5.c.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/lib-sasl/dsasl-client-mech-cram-md5.c	2026-09-09 09:02:55.317843990 +0200
 @@ -81,13 +81,13 @@ mech_cram_md5_output(struct dsasl_client
  		return DSASL_CLIENT_RESULT_OK;
  	}
@@ -906,9 +918,9 @@ diff -up dovecot-2.4.4/src/lib-sasl/dsasl-client-mech-cram-md5.c.opensslhmac3 do
  
  	str = str_new(client->pool, 256);
  	str_append(str, client->set.authid);
-diff -up dovecot-2.4.4/src/lib-sasl/sasl-server-mech-cram-md5.c.opensslhmac3 dovecot-2.4.4/src/lib-sasl/sasl-server-mech-cram-md5.c
---- dovecot-2.4.4/src/lib-sasl/sasl-server-mech-cram-md5.c.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib-sasl/sasl-server-mech-cram-md5.c	2026-05-15 13:55:13.785369838 +0200
+diff -up dovecot-2.4.5/src/lib-sasl/sasl-server-mech-cram-md5.c.opensslhmac3 dovecot-2.4.5/src/lib-sasl/sasl-server-mech-cram-md5.c
+--- dovecot-2.4.5/src/lib-sasl/sasl-server-mech-cram-md5.c.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/lib-sasl/sasl-server-mech-cram-md5.c	2026-09-09 09:02:55.317931293 +0200
 @@ -53,7 +53,7 @@ verify_credentials(struct sasl_server_me
  		container_of(auth_request, struct cram_auth_request,
  			     auth_request);
@@ -932,9 +944,43 @@ diff -up dovecot-2.4.4/src/lib-sasl/sasl-server-mech-cram-md5.c.opensslhmac3 dov
  
  	if (!mem_equals_timing_safe(digest, request->response,
  				    sizeof(digest))) {
-diff -up dovecot-2.4.4/src/lib/test-hmac.c.opensslhmac3 dovecot-2.4.4/src/lib/test-hmac.c
---- dovecot-2.4.4/src/lib/test-hmac.c.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib/test-hmac.c	2026-05-15 13:45:45.630986699 +0200
+diff -up dovecot-2.4.5/src/lib/strfuncs.c.opensslhmac3 dovecot-2.4.5/src/lib/strfuncs.c
+--- dovecot-2.4.5/src/lib/strfuncs.c.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/lib/strfuncs.c	2026-09-09 09:02:55.318025940 +0200
+@@ -662,7 +662,7 @@ bool str_equals_timing_almost_safe(const
+ 
+ bool str_equals_hash_timing_safe(const char *s1, const char *s2)
+ {
+-	struct hmac_context ctx;
++	struct openssl_hmac_context ctx;
+ 	unsigned char digest1[SHA256_RESULTLEN];
+ 	unsigned char digest2[SHA256_RESULTLEN];
+ 
+@@ -673,15 +673,15 @@ bool str_equals_hash_timing_safe(const c
+ 	   a deployment constant (for the secret) or already known to the
+ 	   attacker (for their own input), so neither leaks a useful signal.
+ 	   hash_iv keys the HMAC to prevent precomputation. */
+-	hmac_init(&ctx, (const unsigned char *)&hash_iv, sizeof(hash_iv),
++	openssl_hmac_init(&ctx, (const unsigned char *)&hash_iv, sizeof(hash_iv),
+ 		  &hash_method_sha256);
+-	hmac_update(&ctx, s1, strlen(s1));
+-	hmac_final(&ctx, digest1);
++	openssl_hmac_update(&ctx, s1, strlen(s1));
++	openssl_hmac_final(&ctx, digest1);
+ 
+-	hmac_init(&ctx, (const unsigned char *)&hash_iv, sizeof(hash_iv),
++	openssl_hmac_init(&ctx, (const unsigned char *)&hash_iv, sizeof(hash_iv),
+ 		  &hash_method_sha256);
+-	hmac_update(&ctx, s2, strlen(s2));
+-	hmac_final(&ctx, digest2);
++	openssl_hmac_update(&ctx, s2, strlen(s2));
++	openssl_hmac_final(&ctx, digest2);
+ 
+ 	return mem_equals_timing_safe(digest1, digest2, sizeof(digest1));
+ }
+diff -up dovecot-2.4.5/src/lib/test-hmac.c.opensslhmac3 dovecot-2.4.5/src/lib/test-hmac.c
+--- dovecot-2.4.5/src/lib/test-hmac.c.opensslhmac3	2026-08-26 12:00:29.000000000 +0200
++++ dovecot-2.4.5/src/lib/test-hmac.c	2026-09-09 09:02:55.318142397 +0200
 @@ -206,11 +206,11 @@ static void test_hmac_rfc(void)
  	test_begin("hmac sha256 rfc4231 vectors");
  	for(size_t i = 0; i < N_ELEMENTS(test_vectors); i++) {
@@ -1010,9 +1056,9 @@ diff -up dovecot-2.4.4/src/lib/test-hmac.c.opensslhmac3 dovecot-2.4.4/src/lib/te
  				    vec->ikm_len, vec->info, vec->info_len,
  				    vec->okm_len);
  	test_assert(tmp->used == vec->okm_len &&
-diff -up dovecot-2.4.4/src/lib-var-expand-crypt/Makefile.am.opensslhmac3 dovecot-2.4.4/src/lib-var-expand-crypt/Makefile.am
---- dovecot-2.4.4/src/lib-var-expand-crypt/Makefile.am.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/lib-var-expand-crypt/Makefile.am	2026-05-15 13:45:45.629596818 +0200
+diff -up dovecot-2.4.5/src/lib-var-expand-crypt/Makefile.am.opensslhmac3 dovecot-2.4.5/src/lib-var-expand-crypt/Makefile.am
+--- dovecot-2.4.5/src/lib-var-expand-crypt/Makefile.am.opensslhmac3	2026-08-24 08:36:22.000000000 +0200
++++ dovecot-2.4.5/src/lib-var-expand-crypt/Makefile.am	2026-09-09 09:02:55.318252763 +0200
 @@ -40,5 +40,5 @@ if HAVE_WHOLE_ARCHIVE
  test_var_expand_crypt_LDFLAGS += -export-dynamic -Wl,$(LD_WHOLE_ARCHIVE),../lib/.libs/liblib.a,../lib-json/.libs/libjson.a,../lib-ssl-iostream/.libs/libssl_iostream.a,$(LD_NO_WHOLE_ARCHIVE)
  endif
@@ -1020,9 +1066,9 @@ diff -up dovecot-2.4.4/src/lib-var-expand-crypt/Makefile.am.opensslhmac3 dovecot
 -test_var_expand_crypt_CFLAGS = $(AM_CFLAGS) \
 +test_var_expand_crypt_CFLAGS = $(AM_CFLAGS) $(SSL_CFLAGS) \
  	-DDCRYPT_BUILD_DIR=\"$(top_builddir)/src/lib-dcrypt\"
-diff -up dovecot-2.4.4/src/submission/Makefile.am.opensslhmac3 dovecot-2.4.4/src/submission/Makefile.am
---- dovecot-2.4.4/src/submission/Makefile.am.opensslhmac3	2026-05-12 12:48:57.000000000 +0200
-+++ dovecot-2.4.4/src/submission/Makefile.am	2026-05-15 13:45:45.631221948 +0200
+diff -up dovecot-2.4.5/src/submission/Makefile.am.opensslhmac3 dovecot-2.4.5/src/submission/Makefile.am
+--- dovecot-2.4.5/src/submission/Makefile.am.opensslhmac3	2026-03-09 12:04:52.000000000 +0100
++++ dovecot-2.4.5/src/submission/Makefile.am	2026-09-09 09:02:55.318334135 +0200
 @@ -29,6 +29,7 @@ submission_LDADD = \
  	$(urlauth_libs) \
  	$(LIBDOVECOT_STORAGE) \

diff --git a/dovecot.spec b/dovecot.spec
index 781f4af..3583fab 100644
--- a/dovecot.spec
+++ b/dovecot.spec
@@ -4,9 +4,9 @@
 Summary: Secure imap and pop3 server
 Name: dovecot
 Epoch: 1
-Version: 2.4.4
+Version: 2.4.5
 %global prever %{nil}
-Release: 7%{?dist}
+Release: 1%{?dist}
 #dovecot itself is MIT, a few sources are PD, pigeonhole is LGPLv2
 License: MIT AND LGPL-2.1-only
 
@@ -46,15 +46,11 @@ Patch17: dovecot-2.3.15-fixvalcond.patch
 Patch18: dovecot-2.3.15-valbasherr.patch
 Patch19: dovecot-2.4.2-lua-5.5.patch
 
-# Fedora/RHEL specific, drop OTP which uses SHA1 so we dont use SHA1 for crypto purposes
-Patch23: dovecot-2.4.1-nolibotp.patch
+# Fedora/RHEL specific
 Patch24: dovecot-2.4.2-fixbuild.patch
 # temporary workaround for s390x build test failure
 # https://dovecot.org/mailman3/archives/list/dovecot@dovecot.org/thread/FZBVU55TK5332SMZSSDNWIVJCWGUAJQS/
 Patch25: dovecot-2.4.2-ftbfs-workaround.patch
-# openssl 4.0 FTBFS fix, form upsteam, for <= 2.4.4
-# https://github.com/dovecot/core/commit/fda272dc196d368625c425d309ca77241dbf50a1
-Patch26: dovecot-2.4.4-openssl4.patch
 
 BuildRequires: gcc, gcc-c++, openssl-devel, pam-devel, zlib-devel, bzip2-devel, libcap-devel
 BuildRequires: libtool, autoconf, automake, pkgconfig
@@ -163,28 +159,12 @@ mv dovecot-pigeonhole-%{pigeonholever} dovecot-pigeonhole
 %patch -P 17 -p2 -b .fixvalcond
 %patch -P 18 -p1 -b .valbasherr
 %patch -P 19 -p1 -b .lua55
-%patch -P 23 -p2 -b .nolibotp
 %patch -P 24 -p1 -b .fixbuild
 %patch -P 25 -p1 -b .ftbfs-workaround
-%patch -P 26 -p1 -b .openssl4
 cp run-test-valgrind.supp dovecot-pigeonhole/
 # valgrind would fail with shell wrapper
 echo "testsuite" >dovecot-pigeonhole/run-test-valgrind.exclude
 
-# drop OTP which uses SHA1 so we dont use SHA1 for crypto purposes
-#rm -rf src/lib-otp
-echo >src/auth/mech-otp-common.c
-echo >src/auth/mech-otp-common.h
-echo >src/auth/mech-otp.c
-echo >src/lib-auth/password-scheme-otp.c
-echo >src/lib-sasl/sasl-server-mech-otp.c
-echo >src/lib-sasl/dsasl-client-mech-otp.c
-pushd src/lib-otp
-for f in *.c *.h
-do
-  echo >$f
-done
-popd
 
 %build
 #required for fdpass.c line 125,190: dereferencing type-punned pointer will break strict-aliasing rules
@@ -494,6 +474,9 @@ make check ||:
 %{_libdir}/%{name}/dict/libdriver_pgsql.so
 
 %changelog
+* Wed Sep 09 2026 Michal Hlavinka <mhlavink@redhat.com> - 1:2.4.5-1
+- updated to 2.4.5 (#2525525)
+
 * Tue Aug 18 2026 Brad Kollmyer <bradkollmyer@fedoraproject.org> - 1:2.4.4-7
 - Enable --enable-experimental-mail-utf8 so mail_utf8_extensions can be set
 

diff --git a/sources b/sources
index ac318f9..5542940 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (dovecot-2.4.4.tar.gz) = 0af781b885759700bbfcd2cd42449c70a8fb6da49fc919debfdf7e58c278b49593fea8f67c542e817b8a3b8de48817fbe703415ce11f471db1396f2c8828b4d8
-SHA512 (dovecot-pigeonhole-2.4.4.tar.gz) = 32ae785f037a1bd044a3f5e224bf459d22b6303446c95c5d9cabc694b9eb008c57e77c31a17510c569efe45870b59f28e370e68ceafaf21400fe4000649f1fed
+SHA512 (dovecot-2.4.5.tar.gz) = d23607289ab5b4ac6fa0a87ffb6d461357980cf1f6a7a5037f9c5fb13b89b1778557e73465d1042ac2ee4cdd5893c9f44b3c80a0d87c2fc708d2928702a6b69b
+SHA512 (dovecot-pigeonhole-2.4.5.tar.gz) = fa353a8994c532be5d71eb9371e0a673888f76c6af941deca9131b0535e8b1a2b24a199935895f4cf3717d107d62bf1090d88ee424263b4a590309f53d8b5ebd

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-10  4:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-10  4:42 [rpms/dovecot] f43: updated to 2.4.5 (#2525525) Michal Hlavinka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox