diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..02d5586 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2021 Brent Saner + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/doc.go b/doc.go new file mode 100644 index 0000000..0f02ee6 --- /dev/null +++ b/doc.go @@ -0,0 +1,47 @@ +// See LICENSE in source root directory for copyright and licensing information. + +/* +Package gokwallet serves as a Golang interface to KDE's KWallet (https://utils.kde.org/projects/kwalletmanager/). + +Note that this library interfaces with kwalletd. KWallet is in the process of moving to libsecret/SecretService +(see https://bugs.kde.org/show_bug.cgi?id=313216 and https://invent.kde.org/frameworks/kwallet/-/merge_requests/11). +While there is a pull request in place, it has not yet been merged in (and it may be a while before downstream +distributions incorporate that version). However, when that time comes I highly recommend using my `gosecret` +library to interface with that (module r00t2.io/gosecret; see https://pkg.go.dev/r00t2.io/gosecret). + +KWallet has the following structure (modified slightly to reflect this library): + +- A main Dbus service interface ("org.kde.kwalletd5") allows one to retrieve and operate on/with Wallet items. + +- One or more Wallet items allow one to retrieve and operate on/with Folder items. + +- One or more Folder items allow one to retrieve and operate on/with Passwords, Maps, BinaryData, and Unknown WalletItem items. + +Thus, the hierarchy (as exposed by this library) looks like this: + + WalletManager + ├─ Wallet "A" + │ ├─ Folder "A_1" + │ │ ├─ Passwords + │ │ ├─ Maps + │ │ ├─ BinaryData + │ │ └─ Unknown + │ └─ Folder "A_2" + │ ├─ Passwords + │ ├─ Maps + │ ├─ BinaryData + │ └─ Unknown + └─ Wallet "B" + ├─ Folder "B_1" + │ ├─ Passwords + │ ├─ Maps + │ ├─ BinaryData + │ └─ Unknown + └─ Folder "B_2" + ├─ Passwords + ├─ Maps + ├─ BinaryData + └─ Unknown + +*/ +package gokwallet diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..18f5621 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module r00t2.io/gokwallet + +go 1.17