Files
PulseGate/internal/secret/keyring.go
2026-05-03 02:54:48 +02:00

45 lines
672 B
Go

package secret
import (
"fmt"
"github.com/99designs/keyring"
)
const serviceName = "pulsegate"
func OpenKeyring() (keyring.Keyring, error) {
return keyring.Open(keyring.Config{
ServiceName: serviceName,
})
}
func GetPassword(id string) (string, error) {
kr, err := OpenKeyring()
if err != nil {
return "", err
}
item, err := kr.Get(id)
if err != nil {
return "", err
}
return string(item.Data), nil
}
func SavePassword(id string, password string) error {
if id == "" {
return fmt.Errorf("password_id fehlt")
}
kr, err := OpenKeyring()
if err != nil {
return err
}
return kr.Set(keyring.Item{
Key: id,
Data: []byte(password),
})
}