mirror of
https://github.com/passbolt/go-passbolt.git
synced 2025-09-13 14:29:09 +00:00
Validate Secret on Get
This commit is contained in:
parent
faf74e0156
commit
5c4fb07d5e
1 changed files with 11 additions and 30 deletions
|
@ -37,23 +37,24 @@ func GetResourceFromData(c *api.Client, resource api.Resource, secret api.Secret
|
||||||
|
|
||||||
ctx := context.TODO()
|
ctx := context.TODO()
|
||||||
|
|
||||||
switch rType.Slug {
|
|
||||||
case "password-string":
|
|
||||||
var err error
|
|
||||||
pw, err = c.DecryptMessage(secret.Data)
|
|
||||||
if err != nil {
|
|
||||||
return "", "", "", "", "", "", fmt.Errorf("Decrypting Secret Data: %w", err)
|
|
||||||
}
|
|
||||||
name = resource.Name
|
|
||||||
username = resource.Username
|
|
||||||
uri = resource.URI
|
|
||||||
desc = resource.Description
|
|
||||||
case "password-and-description":
|
|
||||||
rawSecretData, err := c.DecryptMessage(secret.Data)
|
rawSecretData, err := c.DecryptMessage(secret.Data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", "", "", "", "", "", fmt.Errorf("Decrypting Secret Data: %w", err)
|
return "", "", "", "", "", "", fmt.Errorf("Decrypting Secret Data: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = validateSecretData(&rType, rawSecretData)
|
||||||
|
if err != nil {
|
||||||
|
return "", "", "", "", "", "", fmt.Errorf("Validate Secret Data: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
switch rType.Slug {
|
||||||
|
case "password-string":
|
||||||
|
pw = rawSecretData
|
||||||
|
name = resource.Name
|
||||||
|
username = resource.Username
|
||||||
|
uri = resource.URI
|
||||||
|
desc = resource.Description
|
||||||
|
case "password-and-description":
|
||||||
var secretData api.SecretDataTypePasswordAndDescription
|
var secretData api.SecretDataTypePasswordAndDescription
|
||||||
err = json.Unmarshal([]byte(rawSecretData), &secretData)
|
err = json.Unmarshal([]byte(rawSecretData), &secretData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -65,11 +66,6 @@ func GetResourceFromData(c *api.Client, resource api.Resource, secret api.Secret
|
||||||
pw = secretData.Password
|
pw = secretData.Password
|
||||||
desc = secretData.Description
|
desc = secretData.Description
|
||||||
case "password-description-totp":
|
case "password-description-totp":
|
||||||
rawSecretData, err := c.DecryptMessage(secret.Data)
|
|
||||||
if err != nil {
|
|
||||||
return "", "", "", "", "", "", fmt.Errorf("Decrypting Secret Data: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
var secretData api.SecretDataTypePasswordDescriptionTOTP
|
var secretData api.SecretDataTypePasswordDescriptionTOTP
|
||||||
err = json.Unmarshal([]byte(rawSecretData), &secretData)
|
err = json.Unmarshal([]byte(rawSecretData), &secretData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -103,11 +99,6 @@ func GetResourceFromData(c *api.Client, resource api.Resource, secret api.Secret
|
||||||
uri = metadata.URIs[0]
|
uri = metadata.URIs[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
rawSecretData, err := c.DecryptMessage(secret.Data)
|
|
||||||
if err != nil {
|
|
||||||
return "", "", "", "", "", "", fmt.Errorf("Decrypting Secret Data: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
var secretData api.SecretDataTypeV5Default
|
var secretData api.SecretDataTypeV5Default
|
||||||
err = json.Unmarshal([]byte(rawSecretData), &secretData)
|
err = json.Unmarshal([]byte(rawSecretData), &secretData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -133,11 +124,6 @@ func GetResourceFromData(c *api.Client, resource api.Resource, secret api.Secret
|
||||||
uri = metadata.URIs[0]
|
uri = metadata.URIs[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
rawSecretData, err := c.DecryptMessage(secret.Data)
|
|
||||||
if err != nil {
|
|
||||||
return "", "", "", "", "", "", fmt.Errorf("Decrypting Secret Data: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
var secretData api.SecretDataTypeV5DefaultWithTOTP
|
var secretData api.SecretDataTypeV5DefaultWithTOTP
|
||||||
err = json.Unmarshal([]byte(rawSecretData), &secretData)
|
err = json.Unmarshal([]byte(rawSecretData), &secretData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -166,11 +152,6 @@ func GetResourceFromData(c *api.Client, resource api.Resource, secret api.Secret
|
||||||
// Not available in the Secret
|
// Not available in the Secret
|
||||||
desc = metadata.Description
|
desc = metadata.Description
|
||||||
|
|
||||||
rawSecretData, err := c.DecryptMessage(secret.Data)
|
|
||||||
if err != nil {
|
|
||||||
return "", "", "", "", "", "", fmt.Errorf("Decrypting Secret Data: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
pw = rawSecretData
|
pw = rawSecretData
|
||||||
case "v5-totp-standalone":
|
case "v5-totp-standalone":
|
||||||
rawMetadata, err := GetResourceMetadata(ctx, c, &resource, &rType)
|
rawMetadata, err := GetResourceMetadata(ctx, c, &resource, &rType)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue