github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/libkb/secret_store_mem.go (about) 1 package libkb 2 3 type SecretStoreMem struct { 4 secrets map[NormalizedUsername]LKSecFullSecret 5 } 6 7 var _ SecretStoreAll = (*SecretStoreMem)(nil) 8 9 func NewSecretStoreMem() *SecretStoreMem { 10 return &SecretStoreMem{ 11 secrets: make(map[NormalizedUsername]LKSecFullSecret), 12 } 13 } 14 15 func (s *SecretStoreMem) RetrieveSecret(m MetaContext, username NormalizedUsername) (LKSecFullSecret, error) { 16 secret, ok := s.secrets[username] 17 if !ok { 18 return LKSecFullSecret{}, NewErrSecretForUserNotFound(username) 19 } 20 return secret, nil 21 } 22 23 func (s *SecretStoreMem) StoreSecret(m MetaContext, username NormalizedUsername, secret LKSecFullSecret) error { 24 s.secrets[username] = secret 25 return nil 26 } 27 28 func (s *SecretStoreMem) ClearSecret(m MetaContext, username NormalizedUsername) error { 29 if username.IsNil() { 30 m.Debug("NOOPing SecretStoreMem#ClearSecret for empty username") 31 return nil 32 } 33 delete(s.secrets, username) 34 return nil 35 } 36 37 func (s *SecretStoreMem) GetUsersWithStoredSecrets(m MetaContext) ([]string, error) { 38 var usernames []string 39 for k := range s.secrets { 40 uname := k.String() 41 if !isPPSSecretStore(uname) { 42 usernames = append(usernames, uname) 43 } 44 } 45 return usernames, nil 46 } 47 48 func (s *SecretStoreMem) GetOptions(MetaContext) *SecretStoreOptions { return nil } 49 func (s *SecretStoreMem) SetOptions(MetaContext, *SecretStoreOptions) {}