| 89 | } |
| 90 | |
| 91 | func (s *Store) loadFromKeyring(origin string) (*Credentials, error) { |
| 92 | data, err := keyring.Get(serviceName, key(origin)) |
| 93 | if err != nil { |
| 94 | return nil, fmt.Errorf("credentials not found: %w", err) |
| 95 | } |
| 96 | |
| 97 | var creds Credentials |
| 98 | if err := json.Unmarshal([]byte(data), &creds); err != nil { |
| 99 | return nil, fmt.Errorf("invalid credentials: %w", err) |
| 100 | } |
| 101 | return &creds, nil |
| 102 | } |
| 103 | |
| 104 | func (s *Store) saveToKeyring(origin string, creds *Credentials) error { |
| 105 | data, err := json.Marshal(creds) //nolint:gosec // G117: intentional credential marshaling for storage |