GODT-1525: Add keybase/go-keychain/secretservice as new keychain helper.

This commit is contained in:
Jakub
2022-03-18 15:25:02 +01:00
committed by Jakub Cuth
parent 5b20b6a3d0
commit c32a106898
4 changed files with 240 additions and 3 deletions

View File

@ -28,13 +28,18 @@ import (
)
const (
Pass = "pass-app"
SecretService = "secret-service"
Pass = "pass-app"
SecretService = "secret-service"
SecretServiceDBus = "secret-service-dbus"
)
func init() { // nolint[noinit]
Helpers = make(map[string]helperConstructor)
if isUsable(newDBusHelper("")) {
Helpers[SecretServiceDBus] = newDBusHelper
}
if _, err := exec.LookPath("gnome-keyring"); err == nil && isUsable(newSecretServiceHelper("")) {
Helpers[SecretService] = newSecretServiceHelper
}
@ -43,6 +48,8 @@ func init() { // nolint[noinit]
Helpers[Pass] = newPassHelper
}
defaultHelper = SecretServiceDBus
// If Pass is available, use it by default.
// Otherwise, if SecretService is available, use it by default.
if _, ok := Helpers[Pass]; ok {
@ -52,6 +59,10 @@ func init() { // nolint[noinit]
}
}
func newDBusHelper(string) (credentials.Helper, error) {
return &SecretServiceDBusHelper{}, nil
}
func newPassHelper(string) (credentials.Helper, error) {
return &pass.Pass{}, nil
}