Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kf6-kwallet for openSUSE:Factory 
checked in at 2026-04-11 22:24:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-kwallet (Old)
 and      /work/SRC/openSUSE:Factory/.kf6-kwallet.new.21863 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kf6-kwallet"

Sat Apr 11 22:24:28 2026 rev:28 rq:1345917 version:6.25.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kf6-kwallet/kf6-kwallet.changes  2026-03-16 
14:18:54.933236857 +0100
+++ /work/SRC/openSUSE:Factory/.kf6-kwallet.new.21863/kf6-kwallet.changes       
2026-04-11 22:28:52.598531531 +0200
@@ -1,0 +2,14 @@
+Tue Apr  7 19:19:30 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.25.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/6/6.25.0
+- Changes since 6.24.0:
+  * Update dependency version to 6.25.0
+  * Fix find_package calls when not building kwalletd and ksecretd
+  * Hardcode one short DH key instead of brute-forcing one
+  * ksecretd: fix intermittent Secret Service session key mismatches with 
libsecret (kde#514194)
+  * Update version to 6.25.0
+
+-------------------------------------------------------------------

Old:
----
  kwallet-6.24.0.tar.xz
  kwallet-6.24.0.tar.xz.sig

New:
----
  kwallet-6.25.0.tar.xz
  kwallet-6.25.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kf6-kwallet.spec ++++++
--- /var/tmp/diff_new_pack.61Tyk4/_old  2026-04-11 22:28:53.202556236 +0200
+++ /var/tmp/diff_new_pack.61Tyk4/_new  2026-04-11 22:28:53.206556399 +0200
@@ -19,11 +19,11 @@
 %define qt6_version 6.8.0
 
 %define rname kwallet
-# Full KF6 version (e.g. 6.24.0)
+# Full KF6 version (e.g. 6.25.0)
 %{!?_kf6_version: %global _kf6_version %{version}}
 %bcond_without released
 Name:           kf6-kwallet
-Version:        6.24.0
+Version:        6.25.0
 Release:        0
 Summary:        Safe desktop-wide storage for passwords
 License:        LGPL-2.1-or-later


++++++ kwallet-6.24.0.tar.xz -> kwallet-6.25.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwallet-6.24.0/CMakeLists.txt 
new/kwallet-6.25.0/CMakeLists.txt
--- old/kwallet-6.24.0/CMakeLists.txt   2026-03-07 21:33:12.000000000 +0100
+++ new/kwallet-6.25.0/CMakeLists.txt   2026-04-03 19:11:57.000000000 +0200
@@ -1,12 +1,12 @@
-cmake_minimum_required(VERSION 3.27)
+cmake_minimum_required(VERSION 3.29)
 
-set(KF_VERSION "6.24.0") # handled by release scripts
-set(KF_DEP_VERSION "6.24.0") # handled by release scripts
+set(KF_VERSION "6.25.0") # handled by release scripts
+set(KF_DEP_VERSION "6.25.0") # handled by release scripts
 project(KWallet VERSION ${KF_VERSION})
 set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
 
 include(FeatureSummary)
-find_package(ECM 6.24.0  NO_MODULE)
+find_package(ECM 6.25.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL "https://invent.kde.org/frameworks/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
@@ -19,7 +19,7 @@
 include(KDEGitCommitHooks)
 include(ECMDeprecationSettings)
 
-set(REQUIRED_QT_VERSION 6.8.0)
+set(REQUIRED_QT_VERSION 6.9.0)
 find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core DBus Gui Widgets)
 
 include(ECMGenerateExportHeader)
@@ -47,8 +47,12 @@
 
 find_package(KF6Config ${KF_DEP_VERSION} REQUIRED)
 
-if(BUILD_KSECRETD OR BUILD_KWALLETD)
-    find_package(KF6 ${KF_DEP_VERSION} REQUIRED COMPONENTS CoreAddons I18n 
WindowSystem)
+if(BUILD_KSECRETD)
+    find_package(KF6 ${KF_DEP_VERSION} REQUIRED COMPONENTS WindowSystem)
+endif()
+
+if(BUILD_KSECRETD OR BUILD_KWALLETD OR BUILD_KWALLET_QUERY)
+    find_package(KF6 ${KF_DEP_VERSION} REQUIRED COMPONENTS CoreAddons I18n)
 endif()
 
 ecm_set_disabled_deprecation_versions(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwallet-6.24.0/po/bg/kwalletd6.po 
new/kwallet-6.25.0/po/bg/kwalletd6.po
--- old/kwallet-6.24.0/po/bg/kwalletd6.po       2026-03-07 21:33:12.000000000 
+0100
+++ new/kwallet-6.25.0/po/bg/kwalletd6.po       2026-04-03 19:11:57.000000000 
+0200
@@ -2,20 +2,20 @@
 # This file is distributed under the same license as the PACKAGE package.
 #
 # Yasen Pramatarov <[email protected]>, 2009, 2011, 2013.
-# SPDX-FileCopyrightText: 2022, 2023, 2024, 2025 Mincho Kondarev 
<[email protected]>
+# SPDX-FileCopyrightText: 2022, 2023, 2024, 2025, 2026 Mincho Kondarev 
<[email protected]>
 msgid ""
 msgstr ""
 "Project-Id-Version: kwalletd\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2026-02-18 00:41+0000\n"
-"PO-Revision-Date: 2025-04-19 11:31+0200\n"
+"PO-Revision-Date: 2026-04-03 02:26+0200\n"
 "Last-Translator: Mincho Kondarev <[email protected]>\n"
 "Language-Team: Bulgarian <[email protected]>\n"
 "Language: bg\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 25.07.70\n"
+"X-Generator: Lokalize 26.03.70\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #, kde-format
@@ -599,18 +599,19 @@
 "wallet <b>%1</b>. Error code is <b>%2</b>. Please fix your system "
 "configuration, then try again.</qt>"
 msgstr ""
+"<qt>Грешка при опит за инициализиране на OpenPGP при опит за запазване на "
+"портфейл <b>%1</b>. Кодът за грешка е <b>%2</b>. Моля, поправете вашата "
+"системна конфигурация, след това опитайте отново.</qt>"
 
 #: kwalletbackend/backendpersisthandler.cpp:407
-#, fuzzy, kde-format
-#| msgid ""
-#| "The GpgME library failed to initialize for the OpenPGP protocol. Please "
-#| "check your system's configuration then try again."
+#, kde-format
 msgid ""
 "<qt>Error when attempting to initialize OpenPGP while attempting to save the "
 "wallet <b>%1</b>. Please fix your system configuration, then try again.</qt>"
 msgstr ""
-"Библиотеката GpgME не успя да се инициализира за протокола OpenPGP. Моля "
-"проверете конфигурацията на вашата система, след което опитайте отново."
+"<qt>Грешка при опит за инициализиране на OpenPGP при опит за запазване на "
+"портфейл <b>%1</b>. Моля, коригирайте конфигурацията на вашата система, след "
+"което опитайте отново.</qt>"
 
 #: kwalletbackend/backendpersisthandler.cpp:461
 #, kde-format
@@ -620,6 +621,11 @@
 "again. This error may occur if you are not using a full trust GPG key. "
 "Please ensure you have the secret key for the key you are using.</qt>"
 msgstr ""
+"<qt>Грешка при криптиране при опит за запазване на портфейла <b>%1</b>. "
+"Кодът за грешка е <b>%2 (%3)</b>. Моля, коригирайте конфигурацията на вашата "
+"система, след това опитайте отново. Тази грешка може да възникне, ако не "
+"използвате GPG ключ с пълно доверие.Моля, уверете се, че разполагате с "
+"тайния ключ за ключа, който използвате.</qt>"
 
 #: kwalletbackend/backendpersisthandler.cpp:478
 #, kde-format
@@ -627,6 +633,9 @@
 "<qt>File handling error while attempting to save the wallet <b>%1</b>. Error "
 "was <b>%2</b>. Please fix your system configuration, then try again.</qt>"
 msgstr ""
+"<qt>Грешка при обработка на файлове при опит за запазване на портфейла <b>"
+"%1</b>. Грешка<b>%2</b>. Моля, коригирайте конфигурацията на вашата система, "
+"след което опитайте отново.</qt>"
 
 #: kwalletbackend/backendpersisthandler.cpp:500
 #, kde-format
@@ -635,23 +644,24 @@
 "wallet <b>%1</b>. Error code is <b>%2</b>. Please fix your system "
 "configuration, then try again.</qt>"
 msgstr ""
+"<qt>Грешка при опит за инициализиране на OpenPGP при опит за отваряне на "
+"портфейл <b>%1</b>. Кодът за грешка е <b>%2</b>. Моля, поправете вашата "
+"системна конфигурация, след това опитайте отново.</qt>"
 
 #: kwalletbackend/backendpersisthandler.cpp:522
-#, fuzzy, kde-format
-#| msgid ""
-#| "The GpgME library failed to initialize for the OpenPGP protocol. Please "
-#| "check your system's configuration then try again."
+#, kde-format
 msgid ""
 "<qt>Error when attempting to initialize OpenPGP while attempting to open the "
 "wallet <b>%1</b>. Please fix your system configuration, then try again.</qt>"
 msgstr ""
-"Библиотеката GpgME не успя да се инициализира за протокола OpenPGP. Моля "
-"проверете конфигурацията на вашата система, след което опитайте отново."
+"<qt>Грешка при опит за инициализиране на OpenPGP при опит за отваряне на "
+"портфейл <b>%1</b>. Моля, коригирайте конфигурацията на вашата система, след "
+"което опитайте отново.</qt>"
 
 #: kwalletbackend/backendpersisthandler.cpp:535
 #, kde-format
 msgid "Retry"
-msgstr ""
+msgstr "Повторен опит"
 
 #: kwalletbackend/backendpersisthandler.cpp:540
 #, kde-format
@@ -660,11 +670,14 @@
 "you're using a SmartCard, please ensure it's inserted then try again."
 "<br><br>GPG error was <b>%2</b></qt>"
 msgstr ""
+"<qt>Грешка при опит за дешифриране на портфейла <b>%1</b> с помощта на GPG. "
+"Ако използвате SmartCard, моля, уверете се, че е поставена, след това "
+"опитайте отново.<br><br> Грешката в GPG беше <b>%2</b></qt>"
 
 #: kwalletbackend/backendpersisthandler.cpp:544
 #, kde-format
 msgid "kwalletd GPG backend"
-msgstr ""
+msgstr "GPG ядро за kwalletd"
 
 #: kwalletbackend/backendpersisthandler.cpp:590
 #, kde-format
@@ -673,51 +686,54 @@
 "encrypted using the GPG Key ID <b>%2</b> but this key was not found on your "
 "system.</qt>"
 msgstr ""
+"<qt>Грешка при опит за отваряне на портфейла <b>%1</b>. Портфейлът беше "
+"криптиран с помощта на идентификатора на GPG ключ <b>%2</b>, но този ключ не "
+"е намерен във вашата система.</qt>"
 
 #: kwalletbackend/kwalletbackend.cc:272
 #, kde-format
 msgid "Already open."
-msgstr ""
+msgstr "Вече е отворен."
 
 #: kwalletbackend/kwalletbackend.cc:274
 #, kde-format
 msgid "Error opening file."
-msgstr ""
+msgstr "Грешка при отваряне на файла."
 
 #: kwalletbackend/kwalletbackend.cc:276
 #, kde-format
 msgid "Not a wallet file."
-msgstr ""
+msgstr "Не портфейлен файл."
 
 #: kwalletbackend/kwalletbackend.cc:278
 #, kde-format
 msgid "Unsupported file format revision."
-msgstr ""
+msgstr "Неподдържан формат на файла."
 
 #: kwalletbackend/kwalletbackend.cc:282
 #, kde-format
 msgid "Unknown encryption scheme."
-msgstr ""
+msgstr "Неизвестна схема за шифроване."
 
 #: kwalletbackend/kwalletbackend.cc:284
 #, kde-format
 msgid "Corrupt file?"
-msgstr ""
+msgstr "Вероятно повреден файл"
 
 #: kwalletbackend/kwalletbackend.cc:286
 #, kde-format
 msgid "Error validating wallet integrity. Possibly corrupted."
-msgstr ""
+msgstr "Грешка при проверка цялостта на портфейла. Най-вероятно е повреден."
 
 #: kwalletbackend/kwalletbackend.cc:290
 #, kde-format
 msgid "Read error - possibly incorrect password."
-msgstr ""
+msgstr "Грешка при четене: най-вероятно грешна парола."
 
 #: kwalletbackend/kwalletbackend.cc:292
 #, kde-format
 msgid "Decryption error."
-msgstr ""
+msgstr "Грешки при разшифроване."
 
 #: kwalletbackend/kwalletbackend.cc:472
 #, kde-format
@@ -726,91 +742,94 @@
 "RC <b>%2</b>\n"
 "SF <b>%3</b>. Please file a BUG report using this information to bugs.kde.org"
 msgstr ""
+"Синхронизирането на портфейла <b>%1</b> с диска е неуспешно. Кодовете за "
+"грешки са:\n"
+"RC <b>%2</b>\n"
+"SF <b>%3</b>. Моля, подайте доклад за ГРЕШКА, използвайки тази информация, "
+"на bugs.kde.org"
 
 #: kwalletd/kwalletd.cpp:119
 #, kde-format
 msgid "Migrating the wallet \"%1\". Please provide the password to unlock."
-msgstr ""
+msgstr "Мигриране на портфейла „%1“. Моля, въведете паролата за отключване."
 
 #: kwalletd/main.cpp:32
-#, fuzzy, kde-format
-#| msgid "KWallet"
+#, kde-format
 msgid "kwalletd"
-msgstr "KWallet"
+msgstr "kwalletd"
 
 #: kwalletd/main.cpp:34
 #, kde-format
 msgid "A KWallet compatibility service, wrapping upon Secret Service"
-msgstr ""
+msgstr "Услуга за съвместимост на KWallet, обхващата Secret Service"
 
 #: kwalletd/main.cpp:36
-#, fuzzy, kde-format
-#| msgid "(C) 2002-2025, The KDE Developers"
+#, kde-format
 msgid "(C) 2025, The KDE Developers"
-msgstr "(C) 2002-2025, Разработчиците на KDE"
+msgstr "(C) 2025, Разработчиците на KDE"
 
 #: kwalletd/main.cpp:38
 #, kde-format
 msgid "Marco Martin"
-msgstr ""
+msgstr "Marco Martin"
 
 #: kwalletd/main.cpp:38
 #, kde-format
 msgid "Author"
-msgstr ""
+msgstr "Автор"
 
 #: kwalletd/secretserviceclient.cpp:241
 #, kde-format
 msgid "Item not found"
-msgstr ""
+msgstr "Елементът не е открит"
 
 #: kwalletd/secretserviceclient.cpp:261
 #, kde-format
 msgid "Could not connect to Secret Service"
-msgstr ""
+msgstr "Неуспешна връзка със Secret Service"
 
 #: kwalletd/secretserviceclient.cpp:423
 #, kde-format
 msgid "Unable to unlock collectionName %1"
-msgstr ""
+msgstr "Не може да се отключи collectionName %1"
 
 #: kwalletd/secretserviceclient.cpp:515
 #, kde-format
 msgid "No collections"
-msgstr ""
+msgstr "Няма колекции"
 
 #: kwalletd/secretserviceclient.cpp:552 kwalletd/secretserviceclient.cpp:599
 #: kwalletd/secretserviceclient.cpp:702
 #, kde-format
 msgid "No entries"
-msgstr ""
+msgstr "Няма записи"
 
 #: kwalletd/secretserviceclient.cpp:617
 #, kde-format
 msgid "Entry not found, key: %1, folder: %2"
-msgstr ""
+msgstr "Записът не е намерен, ключ: %1, папка: %2"
 
 #: kwalletd/secretserviceclient.cpp:726
 #, kde-format
 msgid "Unable to unlock item"
-msgstr ""
+msgstr "Не може да се отключи елемент"
 
 #: kwalletd/secretserviceclient.cpp:769 kwalletd/secretserviceclient.cpp:887
 #, kde-format
 msgid "Entry to rename not found"
-msgstr ""
+msgstr "Записът за преименуване не е намерен"
 
 #: kwalletd/secretserviceclient.cpp:776
 #, kde-format
 msgid "Entry named %1 in folder %2 and wallet %3 already exists."
-msgstr ""
+msgstr "Запис с име %1 в папка %2 и портфейл %3 вече съществува."
 
 #: kwalletd/secretserviceclient.cpp:791 kwalletd/secretserviceclient.cpp:806
 #, kde-format
 msgid "Entry to rename incomplete"
-msgstr ""
+msgstr "Записът за преименуване е непълен"
 
 #: kwalletd/secretserviceclient.cpp:851
 #, kde-format
 msgid "Failed to create SecretValue"
-msgstr ""
+msgstr "Неуспешно създаване на SecretValue"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwallet-6.24.0/po/cs/kwalletd6.po 
new/kwallet-6.25.0/po/cs/kwalletd6.po
--- old/kwallet-6.24.0/po/cs/kwalletd6.po       2026-03-07 21:33:12.000000000 
+0100
+++ new/kwallet-6.25.0/po/cs/kwalletd6.po       2026-04-03 19:11:57.000000000 
+0200
@@ -1,6 +1,6 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-# SPDX-FileCopyrightText: 2010, 2011, 2013, 2014, 2015, 2016, 2017, 2023, 2024 
Vít Pelčák <[email protected]>
+# SPDX-FileCopyrightText: 2010, 2011, 2013, 2014, 2015, 2016, 2017, 2023, 
2024, 2026 Vít Pelčák <[email protected]>
 # Tomáš Chvátal <[email protected]>, 2013.
 # SPDX-FileCopyrightText: 2021, 2023, 2025 Vit Pelcak <[email protected]>
 #
@@ -9,15 +9,15 @@
 "Project-Id-Version: kwalletd\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2026-02-18 00:41+0000\n"
-"PO-Revision-Date: 2025-05-16 14:52+0200\n"
-"Last-Translator: Vit Pelcak <[email protected]>\n"
+"PO-Revision-Date: 2026-03-19 10:07+0100\n"
+"Last-Translator:  Vít Pelčák <[email protected]>\n"
 "Language-Team: Czech <[email protected]>\n"
 "Language: cs\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Lokalize 25.04.1\n"
+"X-Generator: Lokalize 25.12.3\n"
 
 #, kde-format
 msgctxt "NAME OF TRANSLATORS"
@@ -732,24 +732,22 @@
 #: kwalletd/kwalletd.cpp:119
 #, kde-format
 msgid "Migrating the wallet \"%1\". Please provide the password to unlock."
-msgstr ""
+msgstr "Migrace úschovny \"%1\". Prosím, zadejte heslo pro odemčení."
 
 #: kwalletd/main.cpp:32
-#, fuzzy, kde-format
-#| msgid "KWallet"
+#, kde-format
 msgid "kwalletd"
-msgstr "KWallet"
+msgstr "kwalletd"
 
 #: kwalletd/main.cpp:34
 #, kde-format
 msgid "A KWallet compatibility service, wrapping upon Secret Service"
-msgstr ""
+msgstr "Služba kompatibility KWallet propojující Službu hesel"
 
 #: kwalletd/main.cpp:36
-#, fuzzy, kde-format
-#| msgid "(C) 2002-2025, The KDE Developers"
+#, kde-format
 msgid "(C) 2025, The KDE Developers"
-msgstr "(c) 2002-2025, Vývojáři KDE"
+msgstr "(c) 2025, Vývojáři KDE"
 
 #: kwalletd/main.cpp:38
 #, kde-format
@@ -764,55 +762,55 @@
 #: kwalletd/secretserviceclient.cpp:241
 #, kde-format
 msgid "Item not found"
-msgstr ""
+msgstr "Položka nenalezena"
 
 #: kwalletd/secretserviceclient.cpp:261
 #, kde-format
 msgid "Could not connect to Secret Service"
-msgstr ""
+msgstr "Nelze se připojit ke Službě hesel"
 
 #: kwalletd/secretserviceclient.cpp:423
 #, kde-format
 msgid "Unable to unlock collectionName %1"
-msgstr ""
+msgstr "Nelze odemknout collectionName %1"
 
 #: kwalletd/secretserviceclient.cpp:515
 #, kde-format
 msgid "No collections"
-msgstr ""
+msgstr "Žádné sbírky"
 
 #: kwalletd/secretserviceclient.cpp:552 kwalletd/secretserviceclient.cpp:599
 #: kwalletd/secretserviceclient.cpp:702
 #, kde-format
 msgid "No entries"
-msgstr ""
+msgstr "Žádné položky"
 
 #: kwalletd/secretserviceclient.cpp:617
 #, kde-format
 msgid "Entry not found, key: %1, folder: %2"
-msgstr ""
+msgstr "Záznam nenalezen. Klíč: %1, složka: %2"
 
 #: kwalletd/secretserviceclient.cpp:726
 #, kde-format
 msgid "Unable to unlock item"
-msgstr ""
+msgstr "Položku nelze odemknout."
 
 #: kwalletd/secretserviceclient.cpp:769 kwalletd/secretserviceclient.cpp:887
 #, kde-format
 msgid "Entry to rename not found"
-msgstr ""
+msgstr "Položka k přejmenování nenalezena"
 
 #: kwalletd/secretserviceclient.cpp:776
 #, kde-format
 msgid "Entry named %1 in folder %2 and wallet %3 already exists."
-msgstr ""
+msgstr "Záznam pojmenovaný %1 ve složce %2 a úschovně %3 již existuje."
 
 #: kwalletd/secretserviceclient.cpp:791 kwalletd/secretserviceclient.cpp:806
 #, kde-format
 msgid "Entry to rename incomplete"
-msgstr ""
+msgstr "Položka k přejmenování není úplná"
 
 #: kwalletd/secretserviceclient.cpp:851
 #, kde-format
 msgid "Failed to create SecretValue"
-msgstr ""
+msgstr "Chyba při vytváření SecretValue"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwallet-6.24.0/po/eu/kwalletd6.po 
new/kwallet-6.25.0/po/eu/kwalletd6.po
--- old/kwallet-6.24.0/po/eu/kwalletd6.po       2026-03-07 21:33:12.000000000 
+0100
+++ new/kwallet-6.25.0/po/eu/kwalletd6.po       2026-04-03 19:11:57.000000000 
+0200
@@ -1,24 +1,24 @@
 # Translation for kwalletd6.po to Euskara/Basque (eu).
-# Copyright (C) 2009-2025 This file is copyright:
+# Copyright (C) 2009-2026 This file is copyright:
 # This file is distributed under the same license as the kwallet package.
-# SPDX-FileCopyrightText: 2023, 2025 KDE euskaratzeko proiektuaren arduraduna 
<[email protected]>
+# SPDX-FileCopyrightText: 2023, 2025, 2026 KDE euskaratzeko proiektuaren 
arduraduna <[email protected]>
 #
 # Translators:
-# Iñigo Salvador Azurmendi <[email protected]>, 2009, 2010, 2017, 2021, 2023, 2025.
+# Iñigo Salvador Azurmendi <[email protected]>, 2009, 2010, 2017, 2021, 2023, 2025, 
2026.
 # marcos <[email protected]>, 2010.
 msgid ""
 msgstr ""
 "Project-Id-Version: kwalletd5\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2026-02-18 00:41+0000\n"
-"PO-Revision-Date: 2025-04-22 11:06+0200\n"
+"PO-Revision-Date: 2026-03-07 21:37+0100\n"
 "Last-Translator: Iñigo Salvador Azurmendi <[email protected]>\n"
 "Language-Team: Basque <[email protected]>\n"
 "Language: eu\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 25.04.0\n"
+"X-Generator: Lokalize 25.12.3\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #, kde-format
@@ -751,6 +751,7 @@
 #, kde-format
 msgid "Migrating the wallet \"%1\". Please provide the password to unlock."
 msgstr ""
+"\"%1\" zorroa migratzen. Mesedez, eman giltzapetik askatzeko pasahitza."
 
 #: kwalletd/main.cpp:32
 #, kde-format
@@ -760,81 +761,78 @@
 #: kwalletd/main.cpp:34
 #, kde-format
 msgid "A KWallet compatibility service, wrapping upon Secret Service"
-msgstr ""
+msgstr "Secret Service-ren gainean KWalleten bateragarritasun zerbitzu bat"
 
 #: kwalletd/main.cpp:36
-#, fuzzy, kde-format
-#| msgid "(C) 2002-2025, The KDE Developers"
+#, kde-format
 msgid "(C) 2025, The KDE Developers"
-msgstr "(C) 2002-2025, KDE garatzaileak"
+msgstr "(C) 2025, KDE garatzaileak"
 
 #: kwalletd/main.cpp:38
 #, kde-format
 msgid "Marco Martin"
-msgstr ""
+msgstr "Marco Martin"
 
 #: kwalletd/main.cpp:38
 #, kde-format
 msgid "Author"
-msgstr ""
+msgstr "Egilea"
 
 #: kwalletd/secretserviceclient.cpp:241
 #, kde-format
 msgid "Item not found"
-msgstr ""
+msgstr "Elementua ez da aurkitu"
 
 #: kwalletd/secretserviceclient.cpp:261
 #, kde-format
 msgid "Could not connect to Secret Service"
-msgstr ""
+msgstr "Ezin izan da Secret Service-rekin konektatu"
 
 #: kwalletd/secretserviceclient.cpp:423
 #, kde-format
 msgid "Unable to unlock collectionName %1"
-msgstr ""
+msgstr "Ezin izan da %1 bilduma-izena giltzapetik askatu"
 
 #: kwalletd/secretserviceclient.cpp:515
 #, kde-format
 msgid "No collections"
-msgstr ""
+msgstr "Ez dago bildumarik"
 
 #: kwalletd/secretserviceclient.cpp:552 kwalletd/secretserviceclient.cpp:599
 #: kwalletd/secretserviceclient.cpp:702
 #, kde-format
 msgid "No entries"
-msgstr ""
+msgstr "Ez dago sarrerarik"
 
 #: kwalletd/secretserviceclient.cpp:617
 #, kde-format
 msgid "Entry not found, key: %1, folder: %2"
-msgstr ""
+msgstr "Sarrera ez da aurkitu, gakoa: %1, karpeta: %2"
 
 #: kwalletd/secretserviceclient.cpp:726
 #, kde-format
 msgid "Unable to unlock item"
-msgstr ""
+msgstr "Ezin da elementua giltzapetik askatu"
 
 #: kwalletd/secretserviceclient.cpp:769 kwalletd/secretserviceclient.cpp:887
 #, kde-format
 msgid "Entry to rename not found"
-msgstr ""
+msgstr "Berrizendatu beharreko sarrera ez da aurkitu"
 
 #: kwalletd/secretserviceclient.cpp:776
-#, fuzzy, kde-format
-#| msgid "* SKIPPING entry %1 in folder %2 as it seems already migrated"
+#, kde-format
 msgid "Entry named %1 in folder %2 and wallet %3 already exists."
-msgstr ""
-"* %2 karpetako %1 sarrera BAZTERTZEN dagoeneko migratu dela dirudielako"
+msgstr "%3 zorroko %2 karpetan %1 izeneko sarrera lehendik ere badago."
 
 #: kwalletd/secretserviceclient.cpp:791 kwalletd/secretserviceclient.cpp:806
 #, kde-format
 msgid "Entry to rename incomplete"
-msgstr ""
+msgstr "Berrizendatu beharreko sarrera osatu gabe dago"
 
 #: kwalletd/secretserviceclient.cpp:851
 #, kde-format
 msgid "Failed to create SecretValue"
-msgstr ""
+msgstr "Huts egin du SecretValue sortzean"
 
 #~ msgid "Cannot read old wallet list. Aborting."
 #~ msgstr "Ezin da irakurri zorro zaharren zerrenda. Galarazten."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwallet-6.24.0/po/is/kwalletd6.po 
new/kwallet-6.25.0/po/is/kwalletd6.po
--- old/kwallet-6.24.0/po/is/kwalletd6.po       2026-03-07 21:33:12.000000000 
+0100
+++ new/kwallet-6.25.0/po/is/kwalletd6.po       2026-04-03 19:11:57.000000000 
+0200
@@ -2,14 +2,14 @@
 # Copyright (C) 2009 This_file_is_part_of_KDE
 # This file is distributed under the same license as the PACKAGE package.
 #
-# SPDX-FileCopyrightText: 2009, 2016, 2022, 2023, 2024, 2025 Sveinn í Felli 
<[email protected]>
+# SPDX-FileCopyrightText: 2009, 2016, 2022, 2023, 2024, 2025, 2026 Sveinn í 
Felli <[email protected]>
 # SPDX-FileCopyrightText: 2024 Gummi <[email protected]>
 msgid ""
 msgstr ""
 "Project-Id-Version: kwalletd\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2026-02-18 00:41+0000\n"
-"PO-Revision-Date: 2025-10-08 09:25+0000\n"
+"PO-Revision-Date: 2026-03-25 13:19+0000\n"
 "Last-Translator: Sveinn í Felli <[email protected]>\n"
 "Language-Team: Icelandic\n"
 "Language: is\n"
@@ -229,7 +229,7 @@
 "<qt>Error opening the wallet '<b>%1</b>'. Please try again.<br />(Error code "
 "%2: %3)</qt>"
 msgstr ""
-"<qt>Villa við opnum veskis '<b>%1</b>'. Vinsamlegast reyndu aftur.<br /"
+"<qt>Villa við opnum veskis '<b>%1</b>'. Endilega reyndu aftur.<br /"
 ">(Villuboð %2: %3)</qt>"
 
 #: ksecretd/ksecretd.cpp:716
@@ -741,90 +741,88 @@
 #: kwalletd/kwalletd.cpp:119
 #, kde-format
 msgid "Migrating the wallet \"%1\". Please provide the password to unlock."
-msgstr ""
+msgstr "Færi yfir veskið \"%1\". Settu inn lykilorð til að aflæsa."
 
 #: kwalletd/main.cpp:32
-#, fuzzy, kde-format
-#| msgid "KWallet"
+#, kde-format
 msgid "kwalletd"
-msgstr "KWallet"
+msgstr "kwalletd"
 
 #: kwalletd/main.cpp:34
 #, kde-format
 msgid "A KWallet compatibility service, wrapping upon Secret Service"
-msgstr ""
+msgstr "KWallet-samhæfniþjónusta, pökkuð utan um Secret Service"
 
 #: kwalletd/main.cpp:36
-#, fuzzy, kde-format
-#| msgid "(C) 2002-2025, The KDE Developers"
+#, kde-format
 msgid "(C) 2025, The KDE Developers"
-msgstr "(C) -2002-2025, KDE-þróunarteymið"
+msgstr "(C) 2025, KDE-þróunarteymið"
 
 #: kwalletd/main.cpp:38
 #, kde-format
 msgid "Marco Martin"
-msgstr ""
+msgstr "Marco Martin"
 
 #: kwalletd/main.cpp:38
 #, kde-format
 msgid "Author"
-msgstr ""
+msgstr "Höfundur"
 
 #: kwalletd/secretserviceclient.cpp:241
 #, kde-format
 msgid "Item not found"
-msgstr ""
+msgstr "Atriði fannst ekki"
 
 #: kwalletd/secretserviceclient.cpp:261
 #, kde-format
 msgid "Could not connect to Secret Service"
-msgstr ""
+msgstr "Gat ekki tengst við Secret Service"
 
 #: kwalletd/secretserviceclient.cpp:423
 #, kde-format
 msgid "Unable to unlock collectionName %1"
-msgstr ""
+msgstr "Tókst ekki að aflæsa collectionName %1"
 
 #: kwalletd/secretserviceclient.cpp:515
 #, kde-format
 msgid "No collections"
-msgstr ""
+msgstr "Engin söfn"
 
 #: kwalletd/secretserviceclient.cpp:552 kwalletd/secretserviceclient.cpp:599
 #: kwalletd/secretserviceclient.cpp:702
 #, kde-format
 msgid "No entries"
-msgstr ""
+msgstr "Engar færslur"
 
 #: kwalletd/secretserviceclient.cpp:617
 #, kde-format
 msgid "Entry not found, key: %1, folder: %2"
-msgstr ""
+msgstr "Færsla fannst ekki, lykill: %1, mappa: %2"
 
 #: kwalletd/secretserviceclient.cpp:726
 #, kde-format
 msgid "Unable to unlock item"
-msgstr ""
+msgstr "Tókst ekki að aflæsa atriði"
 
 #: kwalletd/secretserviceclient.cpp:769 kwalletd/secretserviceclient.cpp:887
 #, kde-format
 msgid "Entry to rename not found"
-msgstr ""
+msgstr "Færsla til að endurnefna fannst ekki"
 
 #: kwalletd/secretserviceclient.cpp:776
 #, kde-format
 msgid "Entry named %1 in folder %2 and wallet %3 already exists."
-msgstr ""
+msgstr "Færsla með heitinu %1 í möppunni %2 og veskinu %3 er þegar til staðar."
 
 #: kwalletd/secretserviceclient.cpp:791 kwalletd/secretserviceclient.cpp:806
 #, kde-format
 msgid "Entry to rename incomplete"
-msgstr ""
+msgstr "Færsla til að endurnefna er ófullgerð"
 
 #: kwalletd/secretserviceclient.cpp:851
 #, kde-format
 msgid "Failed to create SecretValue"
-msgstr ""
+msgstr "Mistókst að búa til SecretValue"
 
 #, fuzzy
 #~| msgid "KDE Wallet Service"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwallet-6.24.0/po/pl/kwalletd6.po 
new/kwallet-6.25.0/po/pl/kwalletd6.po
--- old/kwallet-6.24.0/po/pl/kwalletd6.po       2026-03-07 21:33:12.000000000 
+0100
+++ new/kwallet-6.25.0/po/pl/kwalletd6.po       2026-04-03 19:11:57.000000000 
+0200
@@ -3,14 +3,14 @@
 # This file is distributed under the same license as the PACKAGE package.
 # Michał Smoczyk <[email protected]>, 2008.
 # Marta Rybczyńska <[email protected]>, 2009, 2010.
-# SPDX-FileCopyrightText: 2014, 2015, 2016, 2019, 2020, 2021, 2022, 2023, 2025 
Łukasz Wojniłowicz <[email protected]>
+# SPDX-FileCopyrightText: 2014, 2015, 2016, 2019, 2020, 2021, 2022, 2023, 
2025, 2026 Łukasz Wojniłowicz <[email protected]>
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: kwalletd\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2026-02-18 00:41+0000\n"
-"PO-Revision-Date: 2025-11-01 10:11+0100\n"
+"PO-Revision-Date: 2026-03-21 06:54+0100\n"
 "Last-Translator: Łukasz Wojniłowicz <[email protected]>\n"
 "Language-Team: pl\n"
 "Language: pl\n"
@@ -748,7 +748,7 @@
 #: kwalletd/kwalletd.cpp:119
 #, kde-format
 msgid "Migrating the wallet \"%1\". Please provide the password to unlock."
-msgstr ""
+msgstr "Przenoszenie portfela \"%1\". Wpisz hasło, aby go odblokować."
 
 #: kwalletd/main.cpp:32
 #, kde-format
@@ -758,80 +758,78 @@
 #: kwalletd/main.cpp:34
 #, kde-format
 msgid "A KWallet compatibility service, wrapping upon Secret Service"
-msgstr ""
+msgstr "Usługa zgodności Portfela z usługą Secret Service"
 
 #: kwalletd/main.cpp:36
-#, fuzzy, kde-format
-#| msgid "(C) 2002-2025, The KDE Developers"
+#, kde-format
 msgid "(C) 2025, The KDE Developers"
-msgstr "(c) 2002-2015, Programiści KDE"
+msgstr "(C) 2015, Programiści KDE"
 
 #: kwalletd/main.cpp:38
 #, kde-format
 msgid "Marco Martin"
-msgstr ""
+msgstr "Marco Martin"
 
 #: kwalletd/main.cpp:38
 #, kde-format
 msgid "Author"
-msgstr ""
+msgstr "Autor"
 
 #: kwalletd/secretserviceclient.cpp:241
 #, kde-format
 msgid "Item not found"
-msgstr ""
+msgstr "Nie znaleziono żadnego elementu"
 
 #: kwalletd/secretserviceclient.cpp:261
 #, kde-format
 msgid "Could not connect to Secret Service"
-msgstr ""
+msgstr "Nie udało się połączyć do Secret Service"
 
 #: kwalletd/secretserviceclient.cpp:423
 #, kde-format
 msgid "Unable to unlock collectionName %1"
-msgstr ""
+msgstr "Nie udało się odblokować nazwy zbioru %1"
 
 #: kwalletd/secretserviceclient.cpp:515
 #, kde-format
 msgid "No collections"
-msgstr ""
+msgstr "Brak zbiorów"
 
 #: kwalletd/secretserviceclient.cpp:552 kwalletd/secretserviceclient.cpp:599
 #: kwalletd/secretserviceclient.cpp:702
 #, kde-format
 msgid "No entries"
-msgstr ""
+msgstr "Brak wpisów"
 
 #: kwalletd/secretserviceclient.cpp:617
 #, kde-format
 msgid "Entry not found, key: %1, folder: %2"
-msgstr ""
+msgstr "Nie znaleziono wpisu, klucz: %1, katalog: %2"
 
 #: kwalletd/secretserviceclient.cpp:726
 #, kde-format
 msgid "Unable to unlock item"
-msgstr ""
+msgstr "Nie można odblokować rzeczy"
 
 #: kwalletd/secretserviceclient.cpp:769 kwalletd/secretserviceclient.cpp:887
 #, kde-format
 msgid "Entry to rename not found"
-msgstr ""
+msgstr "Nie znaleziono wpisu do zmiany jego nazwy"
 
 #: kwalletd/secretserviceclient.cpp:776
-#, fuzzy, kde-format
-#| msgid "* SKIPPING entry %1 in folder %2 as it seems already migrated"
+#, kde-format
 msgid "Entry named %1 in folder %2 and wallet %3 already exists."
-msgstr "* POMIJANIE wpisu %1 w katalogu %2, bo wygląda na już przeniesiony"
+msgstr "Wpis o nazwie %1 w katalogu %2 i portfelu %3 już istnieje."
 
 #: kwalletd/secretserviceclient.cpp:791 kwalletd/secretserviceclient.cpp:806
 #, kde-format
 msgid "Entry to rename incomplete"
-msgstr ""
+msgstr "Wpisu do zmiany nazwy jest niepełny"
 
 #: kwalletd/secretserviceclient.cpp:851
 #, kde-format
 msgid "Failed to create SecretValue"
-msgstr ""
+msgstr "Nie udało się utworzyć SecretValue"
 
 #~ msgid "Cannot read old wallet list. Aborting."
 #~ msgstr "Nie można odczytać starego spisu portfela. Przerwano."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwallet-6.24.0/po/ro/kwalletd6.po 
new/kwallet-6.25.0/po/ro/kwalletd6.po
--- old/kwallet-6.24.0/po/ro/kwalletd6.po       2026-03-07 21:33:12.000000000 
+0100
+++ new/kwallet-6.25.0/po/ro/kwalletd6.po       2026-04-03 19:11:57.000000000 
+0200
@@ -8,7 +8,7 @@
 "Project-Id-Version: kwalletd\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2026-02-18 00:41+0000\n"
-"PO-Revision-Date: 2026-02-04 14:22+0000\n"
+"PO-Revision-Date: 2026-03-16 16:28+0000\n"
 "Last-Translator: Sergiu Bivol <[email protected]>\n"
 "Language-Team: Romanian <[email protected]>\n"
 "Language: ro\n"
@@ -17,7 +17,7 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
 "20)) ? 1 : 2;\n"
-"X-Generator: Lokalize 25.08.1\n"
+"X-Generator: Lokalize 25.12.3\n"
 
 #, kde-format
 msgctxt "NAME OF TRANSLATORS"
@@ -753,90 +753,88 @@
 #: kwalletd/kwalletd.cpp:119
 #, kde-format
 msgid "Migrating the wallet \"%1\". Please provide the password to unlock."
-msgstr ""
+msgstr "Se migrează portofelul „%1”. Furnizați parola pentru deblocare."
 
 #: kwalletd/main.cpp:32
-#, fuzzy, kde-format
-#| msgid "KWallet"
+#, kde-format
 msgid "kwalletd"
-msgstr "KWallet"
+msgstr "kwalletd"
 
 #: kwalletd/main.cpp:34
 #, kde-format
 msgid "A KWallet compatibility service, wrapping upon Secret Service"
-msgstr ""
+msgstr "Serviciu de compatibilitate cu KWallet, ce înfășoară Secret Service"
 
 #: kwalletd/main.cpp:36
-#, fuzzy, kde-format
-#| msgid "(C) 2002-2025, The KDE Developers"
+#, kde-format
 msgid "(C) 2025, The KDE Developers"
-msgstr "(c) 2002-2025, Programatorii KDE"
+msgstr "(C) 2025, Programatorii KDE"
 
 #: kwalletd/main.cpp:38
 #, kde-format
 msgid "Marco Martin"
-msgstr ""
+msgstr "Marco Martin"
 
 #: kwalletd/main.cpp:38
 #, kde-format
 msgid "Author"
-msgstr ""
+msgstr "Autor"
 
 #: kwalletd/secretserviceclient.cpp:241
 #, kde-format
 msgid "Item not found"
-msgstr ""
+msgstr "Elementul nu a fost găsit"
 
 #: kwalletd/secretserviceclient.cpp:261
 #, kde-format
 msgid "Could not connect to Secret Service"
-msgstr ""
+msgstr "Nu s-a putut conecta la Secret Service"
 
 #: kwalletd/secretserviceclient.cpp:423
 #, kde-format
 msgid "Unable to unlock collectionName %1"
-msgstr ""
+msgstr "Nu s-a putut debloca collectionName %1"
 
 #: kwalletd/secretserviceclient.cpp:515
 #, kde-format
 msgid "No collections"
-msgstr ""
+msgstr "Nicio colecție"
 
 #: kwalletd/secretserviceclient.cpp:552 kwalletd/secretserviceclient.cpp:599
 #: kwalletd/secretserviceclient.cpp:702
 #, kde-format
 msgid "No entries"
-msgstr ""
+msgstr "Nicio înregistrare"
 
 #: kwalletd/secretserviceclient.cpp:617
 #, kde-format
 msgid "Entry not found, key: %1, folder: %2"
-msgstr ""
+msgstr "Înregistrarea nu a fost găsită, cheie: %1, dosar: %2"
 
 #: kwalletd/secretserviceclient.cpp:726
 #, kde-format
 msgid "Unable to unlock item"
-msgstr ""
+msgstr "Elementul nu poate fi deblocat"
 
 #: kwalletd/secretserviceclient.cpp:769 kwalletd/secretserviceclient.cpp:887
 #, kde-format
 msgid "Entry to rename not found"
-msgstr ""
+msgstr "Înregistrarea de redenumit nu a fost găsită"
 
 #: kwalletd/secretserviceclient.cpp:776
 #, kde-format
 msgid "Entry named %1 in folder %2 and wallet %3 already exists."
-msgstr ""
+msgstr "Înregistrarea numită %1 în dosarul %2 și portofelul %3 există deja."
 
 #: kwalletd/secretserviceclient.cpp:791 kwalletd/secretserviceclient.cpp:806
 #, kde-format
 msgid "Entry to rename incomplete"
-msgstr ""
+msgstr "Înregistrarea de redenumit e incompletă"
 
 #: kwalletd/secretserviceclient.cpp:851
 #, kde-format
 msgid "Failed to create SecretValue"
-msgstr ""
+msgstr "Nu s-a putut crea SecretValue"
 
 #, fuzzy
 #~| msgid "KDE Wallet Service"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwallet-6.24.0/src/runtime/ksecretd/autotests/fdo_secrets_test.cpp 
new/kwallet-6.25.0/src/runtime/ksecretd/autotests/fdo_secrets_test.cpp
--- old/kwallet-6.24.0/src/runtime/ksecretd/autotests/fdo_secrets_test.cpp      
2026-03-07 21:33:12.000000000 +0100
+++ new/kwallet-6.25.0/src/runtime/ksecretd/autotests/fdo_secrets_test.cpp      
2026-04-03 19:11:57.000000000 +0200
@@ -5,6 +5,7 @@
     SPDX-License-Identifier: LGPL-2.0-or-later
 */
 #include "fdo_secrets_test.h"
+#include "../kwalletfreedesktopsession.h"
 #include "mockkwalletd.cpp"
 // cannot be in mockkwalletd.cpp, as CMake's automoc does not look there
 #include "moc_ksecretd.cpp"
@@ -128,44 +129,88 @@
 struct SetupSessionT {
     QDBusObjectPath sessionPath;
     QCA::SymmetricKey symmetricKey;
+    int commonSecretSize = 0;
     QByteArray error;
 };
 
 #define SETUP_SESSION_VERIFY(cond)                                             
                                                                                
\
     do {                                                                       
                                                                                
\
         if (!(cond))                                                           
                                                                                
\
-            return SetupSessionT{QDBusObjectPath(), QCA::SymmetricKey(), 
#cond};                                                                         
      \
+            return SetupSessionT{QDBusObjectPath(), QCA::SymmetricKey(), 0, 
#cond};                                                                         
   \
     } while (false)
 
-SetupSessionT setupSession(KWalletFreedesktopService *service)
+static QCA::SymmetricKey deriveLibsecretStyleSymmetricKey(const 
QCA::SecureArray &commonSecret)
+{
+    auto paddedSecret = commonSecret.toByteArray();
+    if (paddedSecret.size() < FDO_DH_PUBLIC_KEY_SIZE) {
+        paddedSecret.prepend(FDO_DH_PUBLIC_KEY_SIZE - paddedSecret.size(), 
'\0');
+    }
+
+    return QCA::HKDF().makeKey(QCA::SecureArray(paddedSecret), {}, {}, 
FDO_SECRETS_CIPHER_KEY_SIZE);
+}
+
+SetupSessionT setupSession(KWalletFreedesktopService *service, bool 
requireShortDhSecret = false, bool requireMsbSetClientPublicKey = false)
 {
-    SetupSessionT result;
     QCA::KeyGenerator keygen;
     auto dlGroup = QCA::DLGroup(keygen.createDLGroup(QCA::IETF_1024));
     if (dlGroup.isNull()) {
-        result.error = "createDLGroup failed, maybe libqca-ossl is missing";
+        return SetupSessionT{QDBusObjectPath(), QCA::SymmetricKey(), 0, 
"createDLGroup failed, maybe libqca-ossl is missing"};
+    }
+
+    for (int attempt = 0; attempt < 4096; ++attempt) {
+        SetupSessionT result;
+        auto privateKey = QCA::PrivateKey(keygen.createDH(dlGroup));
+        auto publicKey = QCA::PublicKey(privateKey);
+
+        auto pubKeyBytes = 
KWalletFreedesktopSessionAlgorithmDhAes::normalizeUnsignedDhValue(publicKey.toDH().y().toArray().toByteArray());
+        if (requireMsbSetClientPublicKey && (static_cast<unsigned 
char>(pubKeyBytes.front()) & 0x80U) == 0) {
+            continue;
+        }
+        auto sessionPubKeyVariant = 
service->OpenSession("dh-ietf1024-sha256-aes128-cbc-pkcs7", 
QDBusVariant(pubKeyBytes), result.sessionPath);
+        SETUP_SESSION_VERIFY(result.sessionPath.path() != "/");
+        
SETUP_SESSION_VERIFY(sessionPubKeyVariant.variant().canConvert<QByteArray>());
+
+        auto servicePublicKeyBytes = 
sessionPubKeyVariant.variant().toByteArray();
+        SETUP_SESSION_VERIFY(!servicePublicKeyBytes.isEmpty());
+
+        auto servicePublicKey = QCA::DHPublicKey(dlGroup, 
KWalletFreedesktopSessionAlgorithmDhAes::decodeUnsignedDhValue(servicePublicKeyBytes));
+        auto commonSecret = privateKey.deriveKey(servicePublicKey);
+        result.commonSecretSize = commonSecret.size();
+        if (requireShortDhSecret && result.commonSecretSize >= 
FDO_DH_PUBLIC_KEY_SIZE) {
+            continue;
+        }
+
+        result.symmetricKey = deriveLibsecretStyleSymmetricKey(commonSecret);
         return result;
     }
 
-    auto privateKey = QCA::PrivateKey(keygen.createDH(dlGroup));
-    auto publicKey = QCA::PublicKey(privateKey);
+    return SetupSessionT{QDBusObjectPath(), QCA::SymmetricKey(), 0, ""};
+}
 
-    auto connection = QDBusConnection::sessionBus();
-    auto message = QDBusMessage::createSignal("dummy", "dummy", "dummy");
+void FdoSecretsTest::sessionAlgorithmStaticFunctions()
+{
+    const QByteArray shortValue(127, '\x5a');
+    const QByteArray fullValue(FDO_DH_PUBLIC_KEY_SIZE, '\x7f');
+    const QByteArray highBitValue(FDO_DH_PUBLIC_KEY_SIZE, 
static_cast<char>(0x80));
+    const QByteArray signExtendedHighBitValue = QByteArray(1, '\0') + 
highBitValue;
+
+    auto normalizedShort = 
KWalletFreedesktopSessionAlgorithmDhAes::normalizeUnsignedDhValue(shortValue);
+    QCOMPARE(normalizedShort.size(), FDO_DH_PUBLIC_KEY_SIZE);
+    QCOMPARE(normalizedShort.front(), '\0');
+    QCOMPARE(normalizedShort.mid(1), shortValue);
+
+    
QCOMPARE(KWalletFreedesktopSessionAlgorithmDhAes::normalizeUnsignedDhValue(fullValue),
 fullValue);
+    
QCOMPARE(KWalletFreedesktopSessionAlgorithmDhAes::normalizeUnsignedDhValue(signExtendedHighBitValue),
 highBitValue);
 
-    auto pubKeyBytes = publicKey.toDH().y().toArray().toByteArray();
-    auto sessionPubKeyVariant = 
service->OpenSession("dh-ietf1024-sha256-aes128-cbc-pkcs7", 
QDBusVariant(pubKeyBytes), result.sessionPath);
-    SETUP_SESSION_VERIFY(result.sessionPath.path() != "/");
-    
SETUP_SESSION_VERIFY(sessionPubKeyVariant.variant().canConvert<QByteArray>());
-
-    auto servicePublicKeyBytes = sessionPubKeyVariant.variant().toByteArray();
-    SETUP_SESSION_VERIFY(!servicePublicKeyBytes.isEmpty());
-
-    auto servicePublicKey = QCA::DHPublicKey(dlGroup, 
QCA::BigInteger(QCA::SecureArray(servicePublicKeyBytes)));
-    auto commonSecret = privateKey.deriveKey(servicePublicKey);
-    result.symmetricKey = QCA::HKDF().makeKey(commonSecret, {}, {}, 
FDO_SECRETS_CIPHER_KEY_SIZE);
+    auto decodedHighBit = 
KWalletFreedesktopSessionAlgorithmDhAes::decodeUnsignedDhValue(highBitValue);
+    
QCOMPARE(KWalletFreedesktopSessionAlgorithmDhAes::normalizeUnsignedDhValue(decodedHighBit.toArray().toByteArray()),
 highBitValue);
+}
 
-    return result;
+static QByteArray shortDhPublicKey()
+{
+    // clang-format off
+    return 
QByteArray::fromBase64("bt4u/O+RSvVNOTszD/ThOeSNd+Ji7OVENIyRXsY45OzdocCMKZ8hSzxSmpqzwJL57I2yZtB897bBab1ujRK5tat6IIkMdOPf4WgExoU8c54VV1ohbehKraUktN1UzrDPsDrB4hJtm2GwFULMJXoEcdpkYaJSGEGWvjzlhrZZZA==");
+    // clang-format on
 }
 
 void FdoSecretsTest::items()
@@ -303,8 +348,9 @@
     QVERIFY(item1 && item2 && item3);
 
     auto message = QDBusMessage::createSignal("dummy", "dummy", "dummy");
-    auto [sessionPath, symmetricKey, errorStr] = setupSession(service.get());
+    auto [sessionPath, symmetricKey, commonSecretSize, errorStr] = 
setupSession(service.get());
     QVERIFY2(errorStr.isEmpty(), errorStr.constData());
+    Q_UNUSED(commonSecretSize);
 
     /* Check secrets */
     auto secret1 = item1->GetSecret(sessionPath);
@@ -439,7 +485,9 @@
     std::unique_ptr<KWalletFreedesktopService> service{new 
KWalletFreedesktopService(kwalletd.get())};
 
     auto message = QDBusMessage::createSignal("dummy", "dummy", "dummy");
-    auto [sessionPath, symmetricKey, errorStr] = setupSession(service.get());
+    auto [sessionPath, symmetricKey, commonSecretSize, errorStr] = 
setupSession(service.get());
+    QVERIFY2(errorStr.isEmpty(), errorStr.constData());
+    Q_UNUSED(commonSecretSize);
 
     /* Generate secret */
     auto secret = FreedesktopSecret(sessionPath, QByteArray("It's a secret"), 
"text/plain");
@@ -458,6 +506,64 @@
     QCOMPARE(secret.value.toByteArray(), QByteArray("It's a secret"));
 }
 
+void FdoSecretsTest::sessionWithShortDhSecret()
+{
+    std::unique_ptr<KSecretD> kwalletd{new KSecretD};
+    std::unique_ptr<KWalletFreedesktopService> service{new 
KWalletFreedesktopService(kwalletd.get())};
+
+    auto message = QDBusMessage::createSignal("dummy", "dummy", "dummy");
+    auto [sessionPath, symmetricKey, commonSecretSize, errorStr] = 
setupSession(service.get(), true);
+    QVERIFY2(errorStr.isEmpty(), errorStr.constData());
+    QVERIFY(commonSecretSize < FDO_DH_PUBLIC_KEY_SIZE);
+
+    auto secret = FreedesktopSecret(sessionPath, QByteArray("It's a secret"), 
"text/plain");
+    QVERIFY(service->ensecret(message, secret));
+
+    auto cipher = QCA::Cipher("aes128", QCA::Cipher::CBC, QCA::Cipher::PKCS7, 
QCA::Decode, symmetricKey, secret.parameters);
+    QCA::SecureArray result;
+    
result.append(cipher.update(QCA::MemoryRegion(secret.value.toByteArray())));
+    result.append(cipher.final());
+
+    QVERIFY(cipher.ok());
+    QCOMPARE(QString::fromUtf8(result.toByteArray()), "It's a secret");
+}
+
+void FdoSecretsTest::sessionWithShortClientPublicKey()
+{
+    std::unique_ptr<KSecretD> kwalletd{new KSecretD};
+    std::unique_ptr<KWalletFreedesktopService> service{new 
KWalletFreedesktopService(kwalletd.get())};
+
+    auto publicKeyBytes = shortDhPublicKey();
+
+    QDBusObjectPath sessionPath;
+    auto sessionPubKeyVariant = 
service->OpenSession("dh-ietf1024-sha256-aes128-cbc-pkcs7", 
QDBusVariant(publicKeyBytes), sessionPath);
+    QVERIFY(sessionPath.path() != "/");
+    QVERIFY(sessionPubKeyVariant.variant().canConvert<QByteArray>());
+    QVERIFY(!sessionPubKeyVariant.variant().toByteArray().isEmpty());
+}
+
+void FdoSecretsTest::sessionWithMsbSetClientPublicKey()
+{
+    std::unique_ptr<KSecretD> kwalletd{new KSecretD};
+    std::unique_ptr<KWalletFreedesktopService> service{new 
KWalletFreedesktopService(kwalletd.get())};
+
+    auto message = QDBusMessage::createSignal("dummy", "dummy", "dummy");
+    auto [sessionPath, symmetricKey, commonSecretSize, errorStr] = 
setupSession(service.get(), false, true);
+    QVERIFY2(errorStr.isEmpty(), errorStr.constData());
+    QVERIFY(commonSecretSize > 0);
+
+    auto secret = FreedesktopSecret(sessionPath, QByteArray("It's a secret"), 
"text/plain");
+    QVERIFY(service->ensecret(message, secret));
+
+    auto cipher = QCA::Cipher("aes128", QCA::Cipher::CBC, QCA::Cipher::PKCS7, 
QCA::Decode, symmetricKey, secret.parameters);
+    QCA::SecureArray result;
+    
result.append(cipher.update(QCA::MemoryRegion(secret.value.toByteArray())));
+    result.append(cipher.final());
+
+    QVERIFY(cipher.ok());
+    QCOMPARE(QString::fromUtf8(result.toByteArray()), "It's a secret");
+}
+
 void FdoSecretsTest::attributes()
 {
     KWalletFreedesktopAttributes attribs{"test"};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwallet-6.24.0/src/runtime/ksecretd/autotests/fdo_secrets_test.h 
new/kwallet-6.25.0/src/runtime/ksecretd/autotests/fdo_secrets_test.h
--- old/kwallet-6.24.0/src/runtime/ksecretd/autotests/fdo_secrets_test.h        
2026-03-07 21:33:12.000000000 +0100
+++ new/kwallet-6.25.0/src/runtime/ksecretd/autotests/fdo_secrets_test.h        
2026-04-03 19:11:57.000000000 +0200
@@ -21,12 +21,16 @@
 
     void serviceStaticFunctions();
     void collectionStaticFunctions();
+    void sessionAlgorithmStaticFunctions();
 
     void precreatedWallets();
     void aliases();
     void createLockUnlockCollection();
     void items();
     void session();
+    void sessionWithShortDhSecret();
+    void sessionWithShortClientPublicKey();
+    void sessionWithMsbSetClientPublicKey();
     void attributes();
     void walletNameEncodeDecode();
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwallet-6.24.0/src/runtime/ksecretd/kwalletfreedesktopservice.cpp 
new/kwallet-6.25.0/src/runtime/ksecretd/kwalletfreedesktopservice.cpp
--- old/kwallet-6.24.0/src/runtime/ksecretd/kwalletfreedesktopservice.cpp       
2026-03-07 21:33:12.000000000 +0100
+++ new/kwallet-6.25.0/src/runtime/ksecretd/kwalletfreedesktopservice.cpp       
2026-04-03 19:11:57.000000000 +0200
@@ -56,6 +56,13 @@
 
     return mangled;
 }
+
+QCA::SymmetricKey deriveSymmetricKeyFromDhSecret(const QCA::SecureArray 
&commonSecret)
+{
+    auto paddedSecret = 
KWalletFreedesktopSessionAlgorithmDhAes::normalizeUnsignedDhValue(commonSecret.toByteArray());
+
+    return QCA::HKDF().makeKey(QCA::SecureArray(paddedSecret), {}, {}, 
FDO_SECRETS_CIPHER_KEY_SIZE);
+}
 }
 
 #define LABEL_NUMBER_PREFIX "__"
@@ -416,11 +423,6 @@
 
 std::unique_ptr<KWalletFreedesktopSessionAlgorithm> 
KWalletFreedesktopService::createSessionAlgorithmDhAes(const QByteArray 
&clientKey) const
 {
-    if (clientKey.size() < FDO_DH_PUBLIC_KEY_SIZE) {
-        sendErrorReply(QDBusError::ErrorType::InvalidArgs, 
QStringLiteral("Client public key size is invalid"));
-        return nullptr;
-    }
-
     QCA::KeyGenerator keygen;
     const auto dlGroup = QCA::DLGroup(keygen.createDLGroup(QCA::IETF_1024));
     if (dlGroup.isNull()) {
@@ -430,9 +432,9 @@
 
     auto privateKey = QCA::PrivateKey(keygen.createDH(dlGroup));
     const auto publicKey = QCA::PublicKey(privateKey);
-    const auto clientPublicKey = QCA::DHPublicKey(dlGroup, 
QCA::BigInteger(QCA::SecureArray(clientKey)));
+    const auto clientPublicKey = QCA::DHPublicKey(dlGroup, 
KWalletFreedesktopSessionAlgorithmDhAes::decodeUnsignedDhValue(clientKey));
     const auto commonSecret = privateKey.deriveKey(clientPublicKey);
-    const auto symmetricKey = QCA::HKDF().makeKey(commonSecret, {}, {}, 
FDO_SECRETS_CIPHER_KEY_SIZE);
+    const auto symmetricKey = deriveSymmetricKeyFromDhSecret(commonSecret);
 
     return 
std::make_unique<KWalletFreedesktopSessionAlgorithmDhAes>(publicKey, 
symmetricKey);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwallet-6.24.0/src/runtime/ksecretd/kwalletfreedesktopsession.cpp 
new/kwallet-6.25.0/src/runtime/ksecretd/kwalletfreedesktopsession.cpp
--- old/kwallet-6.24.0/src/runtime/ksecretd/kwalletfreedesktopsession.cpp       
2026-03-07 21:33:12.000000000 +0100
+++ new/kwallet-6.25.0/src/runtime/ksecretd/kwalletfreedesktopsession.cpp       
2026-04-03 19:11:57.000000000 +0200
@@ -9,6 +9,28 @@
 #include "kwalletfreedesktopsessionadaptor.h"
 #include <QDBusConnection>
 
+QByteArray 
KWalletFreedesktopSessionAlgorithmDhAes::normalizeUnsignedDhValue(QByteArray 
value)
+{
+    // Secret Service uses unsigned 1024-bit DH public keys on the wire. 
Normalize to exactly 128 bytes to match.
+    if (value.size() < FDO_DH_PUBLIC_KEY_SIZE) {
+        return value.prepend(FDO_DH_PUBLIC_KEY_SIZE - value.size(), '\0');
+    }
+    if (value.size() > FDO_DH_PUBLIC_KEY_SIZE) {
+        // Keep the 128 least-significant bytes.
+        return value.last(FDO_DH_PUBLIC_KEY_SIZE);
+    }
+    return value;
+}
+
+QCA::BigInteger 
KWalletFreedesktopSessionAlgorithmDhAes::decodeUnsignedDhValue(const QByteArray 
&value)
+{
+    auto normalized = normalizeUnsignedDhValue(value);
+    if (!normalized.isEmpty() && (static_cast<unsigned 
char>(normalized.front()) & 0x80U)) {
+        normalized.prepend('\0');
+    }
+    return QCA::BigInteger(QCA::SecureArray(normalized));
+}
+
 KWalletFreedesktopSession::KWalletFreedesktopSession(KWalletFreedesktopService 
*service,
                                                      
std::unique_ptr<KWalletFreedesktopSessionAlgorithm> algorithm,
                                                      QString sessionPath,
@@ -104,7 +126,7 @@
 
 QByteArray KWalletFreedesktopSessionAlgorithmDhAes::negotiationOutput() const
 {
-    return m_publicKey.toDH().y().toArray().toByteArray();
+    return 
normalizeUnsignedDhValue(m_publicKey.toDH().y().toArray().toByteArray());
 }
 
 bool KWalletFreedesktopSessionAlgorithmDhAes::encrypt(FreedesktopSecret 
&secret) const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwallet-6.24.0/src/runtime/ksecretd/kwalletfreedesktopsession.h 
new/kwallet-6.25.0/src/runtime/ksecretd/kwalletfreedesktopsession.h
--- old/kwallet-6.24.0/src/runtime/ksecretd/kwalletfreedesktopsession.h 
2026-03-07 21:33:12.000000000 +0100
+++ new/kwallet-6.25.0/src/runtime/ksecretd/kwalletfreedesktopsession.h 
2026-04-03 19:11:57.000000000 +0200
@@ -76,6 +76,9 @@
 public:
     KWalletFreedesktopSessionAlgorithmDhAes(const QCA::PublicKey &publicKey, 
QCA::SymmetricKey symmetricKey);
 
+    static QByteArray normalizeUnsignedDhValue(QByteArray value);
+    static QCA::BigInteger decodeUnsignedDhValue(const QByteArray &value);
+
     QByteArray negotiationOutput() const override;
     bool encrypt(FreedesktopSecret &secret) const override;
     bool decrypt(FreedesktopSecret &secret) const override;

Reply via email to