Fix organizations not initalizing correctly
This commit is contained in:
parent
46c66ebd5c
commit
4f3939878c
@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/quexten/goldwarden/agent/bitwarden"
|
||||
"github.com/quexten/goldwarden/agent/bitwarden/crypto"
|
||||
"github.com/quexten/goldwarden/agent/config"
|
||||
"github.com/quexten/goldwarden/agent/sockets"
|
||||
"github.com/quexten/goldwarden/agent/systemauth"
|
||||
@ -57,7 +58,15 @@ func handleUnlockVault(request ipc.IPCMessage, cfg *config.Config, vault *vault.
|
||||
ctx := context.Background()
|
||||
bitwarden.RefreshToken(ctx, cfg)
|
||||
token, err := cfg.GetToken()
|
||||
err = bitwarden.DoFullSync(context.WithValue(ctx, bitwarden.AuthToken{}, token.AccessToken), vault, cfg, nil, true)
|
||||
userSymmkey, err := cfg.GetUserSymmetricKey()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
safeUserSymmkey, err := crypto.SymmetricEncryptionKeyFromBytes(userSymmkey)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
err = bitwarden.DoFullSync(context.WithValue(ctx, bitwarden.AuthToken{}, token.AccessToken), vault, cfg, &safeUserSymmkey, true)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ func (keyring *Keyring) Lock() {
|
||||
keyring.OrganizationKeys = nil
|
||||
}
|
||||
|
||||
func (keyring Keyring) GetSymmetricKeyForOrganization(uuid string) (SymmetricEncryptionKey, error) {
|
||||
func (keyring *Keyring) GetSymmetricKeyForOrganization(uuid string) (SymmetricEncryptionKey, error) {
|
||||
if key, ok := keyring.OrganizationKeys[uuid]; ok {
|
||||
decryptedOrgKey, err := DecryptWithAsymmetric([]byte(key), keyring.AsymmetricEncyryptionKey)
|
||||
if err != nil {
|
||||
|
@ -41,12 +41,12 @@ func DoFullSync(ctx context.Context, vault *vault.Vault, config *config.Config,
|
||||
}
|
||||
}
|
||||
|
||||
var orgKeys map[string]string = make(map[string]string)
|
||||
for _, org := range sync.Profile.Organizations {
|
||||
orgId := org.Id.String()
|
||||
orgKeys[orgId] = org.Key
|
||||
}
|
||||
if userSymmetricKey != nil {
|
||||
var orgKeys map[string]string = make(map[string]string)
|
||||
for _, org := range sync.Profile.Organizations {
|
||||
orgId := org.Id.String()
|
||||
orgKeys[orgId] = org.Key
|
||||
}
|
||||
crypto.InitKeyringFromUserSymmetricKey(vault.Keyring, *userSymmetricKey, sync.Profile.PrivateKey, orgKeys)
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user