fix: firefox for windows decrypt failure

This commit is contained in:
ᴍᴏᴏɴD4ʀᴋ
2020-07-10 10:46:33 +08:00
parent 206b53417f
commit 4f80bd0ca7
3 changed files with 8 additions and 7 deletions
+3 -5
View File
@@ -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
+4 -1
View File
@@ -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,
}
}
}
+1 -1
View File
@@ -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
}
}