Skip to content

Commit 2fdf6de

Browse files
authored
fix: [safedata][js] encode data to hex (gioui-plugins#41)
fix: [safedata][js] encode data to hex Previously, some characters may cause issues. Signed-off-by: Inkeliz <inkeliz@inkeliz.com>
1 parent 280aca6 commit 2fdf6de

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

safedata/safedata_js.go

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package safedata
22

33
import (
4+
"encoding/hex"
45
"sync"
56
"syscall/js"
67
)
@@ -84,7 +85,7 @@ type driverCredentialsManagement struct{}
8485
func (d driverCredentialsManagement) setSecret(secret Secret) error {
8586
obj := js.Global().Get("Object").New()
8687
obj.Set("name", secret.Identifier)
87-
obj.Set("password", secret.Data)
88+
obj.Set("password", hex.EncodeToString(secret.Data))
8889

8990
res := make(chan error, 1)
9091
success := js.FuncOf(func(this js.Value, args []js.Value) any {
@@ -128,8 +129,14 @@ func (d driverCredentialsManagement) getSecret(_ string, secret *Secret) error {
128129
}
129130
}
130131

131-
secret.Data = []byte(pass.String())
132+
data, e := hex.DecodeString(pass.String())
133+
if e != nil {
134+
err <- e
135+
return nil
136+
}
137+
132138
secret.Identifier = name.String()
139+
secret.Data = data
133140

134141
err <- nil
135142
return nil
@@ -153,7 +160,7 @@ type driverLocalStorage struct {
153160
}
154161

155162
func (d driverLocalStorage) setSecret(secret Secret) error {
156-
_localstorage.Call("setItem", secret.Identifier, secret.Data)
163+
_localstorage.Call("setItem", secret.Identifier, hex.EncodeToString(secret.Data))
157164
return nil
158165
}
159166

@@ -173,16 +180,15 @@ func (d driverLocalStorage) listSecret(looper Looper) error {
173180
return nil
174181
}
175182

176-
func (d driverLocalStorage) getSecret(identifier string, secret *Secret) error {
183+
func (d driverLocalStorage) getSecret(identifier string, secret *Secret) (err error) {
177184
content := _localstorage.Call("getItem", d.keyFor(identifier))
178185
if !content.Truthy() {
179186
return ErrNotFound
180187
}
181188

182189
secret.Identifier = identifier
183-
secret.Data = []byte(content.String())
184-
185-
return nil
190+
secret.Data, err = hex.DecodeString(content.String())
191+
return err
186192
}
187193

188194
func (d driverLocalStorage) removeSecret(identifier string) error {

0 commit comments

Comments
 (0)