@@ -37,23 +37,24 @@ func GetResourceFromData(c *api.Client, resource api.Resource, secret api.Secret
3737
3838 ctx := context .TODO ()
3939
40+ rawSecretData , err := c .DecryptMessage (secret .Data )
41+ if err != nil {
42+ return "" , "" , "" , "" , "" , "" , fmt .Errorf ("Decrypting Secret Data: %w" , err )
43+ }
44+
45+ err = validateSecretData (& rType , rawSecretData )
46+ if err != nil {
47+ return "" , "" , "" , "" , "" , "" , fmt .Errorf ("Validate Secret Data: %w" , err )
48+ }
49+
4050 switch rType .Slug {
4151 case "password-string" :
42- var err error
43- pw , err = c .DecryptMessage (secret .Data )
44- if err != nil {
45- return "" , "" , "" , "" , "" , "" , fmt .Errorf ("Decrypting Secret Data: %w" , err )
46- }
52+ pw = rawSecretData
4753 name = resource .Name
4854 username = resource .Username
4955 uri = resource .URI
5056 desc = resource .Description
5157 case "password-and-description" :
52- rawSecretData , err := c .DecryptMessage (secret .Data )
53- if err != nil {
54- return "" , "" , "" , "" , "" , "" , fmt .Errorf ("Decrypting Secret Data: %w" , err )
55- }
56-
5758 var secretData api.SecretDataTypePasswordAndDescription
5859 err = json .Unmarshal ([]byte (rawSecretData ), & secretData )
5960 if err != nil {
@@ -65,11 +66,6 @@ func GetResourceFromData(c *api.Client, resource api.Resource, secret api.Secret
6566 pw = secretData .Password
6667 desc = secretData .Description
6768 case "password-description-totp" :
68- rawSecretData , err := c .DecryptMessage (secret .Data )
69- if err != nil {
70- return "" , "" , "" , "" , "" , "" , fmt .Errorf ("Decrypting Secret Data: %w" , err )
71- }
72-
7369 var secretData api.SecretDataTypePasswordDescriptionTOTP
7470 err = json .Unmarshal ([]byte (rawSecretData ), & secretData )
7571 if err != nil {
@@ -103,11 +99,6 @@ func GetResourceFromData(c *api.Client, resource api.Resource, secret api.Secret
10399 uri = metadata .URIs [0 ]
104100 }
105101
106- rawSecretData , err := c .DecryptMessage (secret .Data )
107- if err != nil {
108- return "" , "" , "" , "" , "" , "" , fmt .Errorf ("Decrypting Secret Data: %w" , err )
109- }
110-
111102 var secretData api.SecretDataTypeV5Default
112103 err = json .Unmarshal ([]byte (rawSecretData ), & secretData )
113104 if err != nil {
@@ -133,11 +124,6 @@ func GetResourceFromData(c *api.Client, resource api.Resource, secret api.Secret
133124 uri = metadata .URIs [0 ]
134125 }
135126
136- rawSecretData , err := c .DecryptMessage (secret .Data )
137- if err != nil {
138- return "" , "" , "" , "" , "" , "" , fmt .Errorf ("Decrypting Secret Data: %w" , err )
139- }
140-
141127 var secretData api.SecretDataTypeV5DefaultWithTOTP
142128 err = json .Unmarshal ([]byte (rawSecretData ), & secretData )
143129 if err != nil {
@@ -166,11 +152,6 @@ func GetResourceFromData(c *api.Client, resource api.Resource, secret api.Secret
166152 // Not available in the Secret
167153 desc = metadata .Description
168154
169- rawSecretData , err := c .DecryptMessage (secret .Data )
170- if err != nil {
171- return "" , "" , "" , "" , "" , "" , fmt .Errorf ("Decrypting Secret Data: %w" , err )
172- }
173-
174155 pw = rawSecretData
175156 case "v5-totp-standalone" :
176157 rawMetadata , err := GetResourceMetadata (ctx , c , & resource , & rType )
0 commit comments