Documentation
¶
Overview ¶
Package keychain implements a native secure password store for each platform.
Index ¶
- Constants
- Variables
- func IsErrKeychainNoItem(err error) bool
- func PreferredKeychainRetryError(attemptCount int) error
- func ShouldRetryPreferredKeychain(featureFlags unleash.FeatureFlagStartupStore, preferredKeychain string) bool
- type Helpers
- type Keychain
- type List
- type SecretServiceDBusHelper
- type TestHelper
Constants ¶
const ( Pass = "pass-app" SecretService = "secret-service" SecretServiceDBus = "secret-service-dbus" )
const MaxFailedKeychainAttemptsLinux = 2
MaxFailedKeychainAttemptsLinux defines the number of failed attempts allowed for the preferred keychain on Linux. Since counting starts at 0, a value of 2 allows for 3 total attempts.
const Version = "k11"
Version is the keychain data version.
Variables ¶
var ( // ErrNoKeychain indicates that no suitable keychain implementation could be loaded. ErrNoKeychain = errors.New("no keychain") //nolint:gochecknoglobals // ErrMacKeychainRebuild is returned on macOS with blocked or corrupted keychain. ErrMacKeychainRebuild = errors.New("keychain error -25293") ErrKeychainNoItem = errors.New("no such keychain item") ErrPreferredKeychainNotAvailable = errors.New("preferred keychain is not available or usable") )
Functions ¶
func IsErrKeychainNoItem ¶ added in v3.9.0
func PreferredKeychainRetryError ¶ added in v3.22.0
func ShouldRetryPreferredKeychain ¶ added in v3.22.0
func ShouldRetryPreferredKeychain(featureFlags unleash.FeatureFlagStartupStore, preferredKeychain string) bool
Types ¶
type Keychain ¶
type Keychain struct {
// contains filtered or unexported fields
}
func NewKeychain ¶
func NewKeychain( preferred, keychainName string, helpers Helpers, defaultHelper string, keychainFailedAttemptCount int, featureFlags unleash.FeatureFlagStartupStore, ) (kc *Keychain, usedKeychainHelper string, err error)
NewKeychain creates a new native keychain. It also returns the keychain helper used to access the keychain.
func NewMissingKeychain ¶
func NewMissingKeychain() *Keychain
NewMissingKeychain returns a new keychain that always returns an error.
type List ¶ added in v3.7.1
type List struct {
// contains filtered or unexported fields
}
func NewList ¶ added in v3.7.1
func NewList() *List
NewList checks availability of every keychains detected on the User Operating System This will ask the user to unlock keychain(s) to check their usability. This should only be called once.
func NewTestKeychainsList ¶ added in v3.7.1
func NewTestKeychainsList() *List
func (*List) GetDefaultHelper ¶ added in v3.7.1
func (*List) GetHelpers ¶ added in v3.7.1
type SecretServiceDBusHelper ¶
type SecretServiceDBusHelper struct{}
SecretServiceDBusHelper is wrapper around keybase/go-keychain/secretservice library.
func (*SecretServiceDBusHelper) Add ¶
func (s *SecretServiceDBusHelper) Add(creds *credentials.Credentials) error
Add appends credentials to the store.
func (*SecretServiceDBusHelper) Delete ¶
func (s *SecretServiceDBusHelper) Delete(serverURL string) error
Delete removes credentials from the store.
type TestHelper ¶ added in v3.0.7
type TestHelper map[string]*credentials.Credentials
func NewTestHelper ¶ added in v3.0.7
func NewTestHelper() TestHelper
func (TestHelper) Add ¶ added in v3.0.7
func (h TestHelper) Add(creds *credentials.Credentials) error
func (TestHelper) Delete ¶ added in v3.0.7
func (h TestHelper) Delete(url string) error