1
1
package safedata
2
2
3
3
import (
4
+ "encoding/hex"
4
5
"sync"
5
6
"syscall/js"
6
7
)
@@ -84,7 +85,7 @@ type driverCredentialsManagement struct{}
84
85
func (d driverCredentialsManagement ) setSecret (secret Secret ) error {
85
86
obj := js .Global ().Get ("Object" ).New ()
86
87
obj .Set ("name" , secret .Identifier )
87
- obj .Set ("password" , secret .Data )
88
+ obj .Set ("password" , hex . EncodeToString ( secret .Data ) )
88
89
89
90
res := make (chan error , 1 )
90
91
success := js .FuncOf (func (this js.Value , args []js.Value ) any {
@@ -128,8 +129,14 @@ func (d driverCredentialsManagement) getSecret(_ string, secret *Secret) error {
128
129
}
129
130
}
130
131
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
+
132
138
secret .Identifier = name .String ()
139
+ secret .Data = data
133
140
134
141
err <- nil
135
142
return nil
@@ -153,7 +160,7 @@ type driverLocalStorage struct {
153
160
}
154
161
155
162
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 ) )
157
164
return nil
158
165
}
159
166
@@ -173,16 +180,15 @@ func (d driverLocalStorage) listSecret(looper Looper) error {
173
180
return nil
174
181
}
175
182
176
- func (d driverLocalStorage ) getSecret (identifier string , secret * Secret ) error {
183
+ func (d driverLocalStorage ) getSecret (identifier string , secret * Secret ) ( err error ) {
177
184
content := _localstorage .Call ("getItem" , d .keyFor (identifier ))
178
185
if ! content .Truthy () {
179
186
return ErrNotFound
180
187
}
181
188
182
189
secret .Identifier = identifier
183
- secret .Data = []byte (content .String ())
184
-
185
- return nil
190
+ secret .Data , err = hex .DecodeString (content .String ())
191
+ return err
186
192
}
187
193
188
194
func (d driverLocalStorage ) removeSecret (identifier string ) error {
0 commit comments