|
|
@ -17,7 +17,6 @@ import ( |
|
|
|
|
|
|
|
|
|
|
|
var ( |
|
|
|
var ( |
|
|
|
errSecurityKeyIsEmpty = errors.New("input [security find-generic-password -wa 'Chrome'] in terminal") |
|
|
|
errSecurityKeyIsEmpty = errors.New("input [security find-generic-password -wa 'Chrome'] in terminal") |
|
|
|
errPasswordIsEmpty = errors.New("password is empty") |
|
|
|
|
|
|
|
errDecryptFailed = errors.New("decrypt failed, password is empty") |
|
|
|
errDecryptFailed = errors.New("decrypt failed, password is empty") |
|
|
|
errDecodeASN1Failed = errors.New("decode ASN1 data failed") |
|
|
|
errDecodeASN1Failed = errors.New("decode ASN1 data failed") |
|
|
|
) |
|
|
|
) |
|
|
@ -163,7 +162,12 @@ func aes128CBCDecrypt(key, iv, encryptPass []byte) ([]byte, error) { |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
} |
|
|
|
dst := make([]byte, len(encryptPass)) |
|
|
|
encryptLen := len(encryptPass) |
|
|
|
|
|
|
|
if encryptLen < block.BlockSize() { |
|
|
|
|
|
|
|
return nil, err |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dst := make([]byte, encryptLen) |
|
|
|
mode := cipher.NewCBCDecrypter(block, iv) |
|
|
|
mode := cipher.NewCBCDecrypter(block, iv) |
|
|
|
mode.CryptBlocks(dst, encryptPass) |
|
|
|
mode.CryptBlocks(dst, encryptPass) |
|
|
|
dst = PKCS5UnPadding(dst) |
|
|
|
dst = PKCS5UnPadding(dst) |
|
|
|