Summary: | Make legacy KWallet entries searchable via Secret Service API | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-kwallet | Reporter: | michaelk83 <mk.mateng> |
Component: | general | Assignee: | Valentin Rusu <valir> |
Status: | RESOLVED FIXED | ||
Severity: | wishlist | CC: | dashonwwIII, kdelibs-bugs-null, m.kurz, nate, uwu |
Priority: | NOR | ||
Version First Reported In: | 5.97.0 | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/frameworks/kwallet/-/commit/abf970c067fa465ae9b7b970600de08f035d00e2 | Version Fixed In: | |
Sentry Crash Report: | |||
Bug Depends on: | |||
Bug Blocks: | 458318 |
Description
michaelk83
2022-09-02 17:42:33 UTC
(In reply to michaelk83 from comment #0) > Expose a read-only virtual attribute `org.kde.kwalletd5:label` for all legacy items. Maybe make it non-virtual, so that it's discoverable through `org.freedesktop.Secret.Item.Attributes` property. But this would expose the labels of all legacy items, since attributes are not encrypted per the Secret Service specification - https://specifications.freedesktop.org/secret-service/latest/ch05.html . This attribute should *not* be added to (non-legacy) items created via the Secret Service API, since clients can't expect the same from other Secret Service API providers. Better/additional STEPS TO REPRODUCE, assuming the proposed `org.kde.kwalletd5:label` behavior: 1. Install KWallet 5.97.0 and enable Secret Service integration. 2. Create some entries via the old `org.kde.kwalletd5` API (or via KWalletManager). For example, entry "mypass" in folder "test-legacy". 3. Run the following command (adjust the last parameter as needed): > secret-tool lookup 'org.kde.kwalletd5:label' 'test-legacy/mypass' (See https://manpages.ubuntu.com/manpages/trusty/man1/secret-tool.1.html ) OBSERVED RESULT Not found EXPECTED RESULT Found Git commit abf970c067fa465ae9b7b970600de08f035d00e2 by Marco Martin, on behalf of David Edmundson. Committed on 11/04/2025 at 13:22. Pushed by mart into branch 'master'. Add secret service bridge The KWallet daemon is replaced by a new daemon which registers itself on the KWallet dbus service name and exposes all its old api. But instead of using directly the kwallet backend to store secrets, it proxies the api requests to a SecretService daemon, offering a compatibility layer for old kwallet-using applications. It is to be seen as legacy support and migration aid This daemon uses the same metadata format of QtKeychain, so when the application will migrate to it, a further data migration shouldn't be necessary The old KWalled daemon is still there: and is called KSecretd. It doesn't expose the kwallet dbus api animore, but only the SecretService api. It's used as the default secretservice provider for the new proxy kwalletd and it's launched by it unless is explicitly configured to not do so Related: bug 459289, bug 491280 M +12 -1 README.md M +5 -0 src/api/KWallet/org.kde.KWallet.nodeprecated.xml M +5 -0 src/api/KWallet/org.kde.KWallet.xml M +15 -0 src/runtime/ksecretd/CMakeLists.txt M +2 -0 src/runtime/ksecretd/kwalletfreedesktopcollection.cpp M +1 -0 src/runtime/ksecretd/kwalletfreedesktopservice.cpp M +1 -1 src/runtime/ksecretd/main.cpp A +3 -0 src/runtime/ksecretd/org.kde.secretservicecompat.service.in A +3 -0 src/runtime/ksecretd/org.kde.secretservicecompat.service.win.in A +73 -0 src/runtime/kwalletd/CMakeLists.txt A +1173 -0 src/runtime/kwalletd/kwalletd.cpp [License: LGPL(v2.0+)] A +216 -0 src/runtime/kwalletd/kwalletd.h [License: LGPL(v2.0+)] A +53 -0 src/runtime/kwalletd/main.cpp [License: GPL(3+eV) GPL(v3.0) LGPL(v2.0)] A +3 -0 src/runtime/kwalletd/org.kde.kwalletd5.service.in A +3 -0 src/runtime/kwalletd/org.kde.kwalletd5.service.win.in A +3 -0 src/runtime/kwalletd/org.kde.kwalletd6.service.in A +3 -0 src/runtime/kwalletd/org.kde.kwalletd6.service.win.in A +853 -0 src/runtime/kwalletd/secretserviceclient.cpp [License: LGPL(v2.0+)] A +108 -0 src/runtime/kwalletd/secretserviceclient.h [License: LGPL(v2.0+)] https://invent.kde.org/frameworks/kwallet/-/commit/abf970c067fa465ae9b7b970600de08f035d00e2 |