GODT-1975: Migrate keychain secrets

This commit is contained in:
James Houlahan
2022-11-21 01:38:51 +01:00
parent 7ed8d76d84
commit 48dfdabaf4
10 changed files with 742 additions and 10 deletions

View File

@ -30,8 +30,6 @@ type Keychain struct {
}
func GetHelper(vaultDir string) (string, error) {
var keychain Keychain
filePath := filepath.Clean(filepath.Join(vaultDir, "keychain.json"))
if _, err := os.Stat(filePath); errors.Is(err, fs.ErrNotExist) {
@ -43,6 +41,8 @@ func GetHelper(vaultDir string) (string, error) {
return "", err
}
var keychain Keychain
if err := json.Unmarshal(b, &keychain); err != nil {
return "", err
}
@ -56,7 +56,5 @@ func SetHelper(vaultDir, helper string) error {
return err
}
filePath := filepath.Clean(filepath.Join(vaultDir, "keychain.json"))
return os.WriteFile(filePath, b, 0o600)
return os.WriteFile(filepath.Clean(filepath.Join(vaultDir, "keychain.json")), b, 0o600)
}

View File

@ -22,6 +22,7 @@ type Data struct {
Users []UserData
Cookies []byte
Certs Certs
Migrated bool
}
func newDefaultData(gluonDir string) Data {

View File

@ -175,6 +175,16 @@ func (vault *Vault) DeleteUser(userID string) error {
})
}
func (vault *Vault) Migrated() bool {
return vault.get().Migrated
}
func (vault *Vault) SetMigrated() error {
return vault.mod(func(data *Data) {
data.Migrated = true
})
}
func (vault *Vault) Close() error {
vault.refLock.Lock()
defer vault.refLock.Unlock()