fix: firefox for windows decrypt failure

pull/83/head
ᴍᴏᴏɴD4ʀᴋ 4 years ago
parent 206b53417f
commit 4f80bd0ca7
  1. 8
      utils/utils.go
  2. 5
      utils/utils_darwin.go
  3. 2
      utils/utils_windows.go

@ -17,9 +17,9 @@ import (
)
var (
passwordIsEmpty = errors.New("decrypt fail, password is empty")
errPasswordIsEmpty = errors.New("decrypt failed, password is empty")
errBrowserNotSupported = errors.New("browser not supported")
errKeyIsEmpty = errors.New("input [security find-generic-password -wa 'Chrome'] in terminal")
VersionUnder80 bool
)
@ -227,9 +227,7 @@ func DecodeLogin(decodeItem []byte) (pbe LoginPBE, err error) {
}
func aes128CBCDecrypt(key, iv, encryptPass []byte) ([]byte, error) {
if len(chromeKey) == 0 {
return []byte{}, nil
}
block, err := aes.NewCipher(key)
if err != nil {
return []byte{}, err

@ -88,11 +88,14 @@ func decryptChromeKey(chromePass []byte) {
func DecryptChromePass(encryptPass []byte) (string, error) {
if len(encryptPass) > 3 {
if len(chromeKey) == 0 {
return "", errKeyIsEmpty
}
m, err := aes128CBCDecrypt(chromeKey, iv, encryptPass[3:])
return string(m), err
} else {
return "", &DecryptError{
err: passwordIsEmpty,
err: errPasswordIsEmpty,
}
}
}

@ -106,7 +106,7 @@ func DecryptChromePass(encryptPass []byte) (string, error) {
// remove prefix 'v10'
return aesGCMDecrypt(encryptPass[15:], chromeKey, encryptPass[3:15])
} else {
return "", passwordIsEmpty
return "", errPasswordIsEmpty
}
}

Loading…
Cancel
Save