feat: add yandex password and creditcard

This commit is contained in:
ᴍᴏᴏɴD4ʀᴋ
2022-04-13 16:11:34 +08:00
parent 4b4abee6cf
commit 71d784d645
4 changed files with 114 additions and 3 deletions
+48
View File
@@ -58,3 +58,51 @@ func (c *ChromiumCreditCard) Parse(masterKey []byte) error {
func (c *ChromiumCreditCard) Name() string {
return "creditcard"
}
type YandexCreditCard []card
func (c *YandexCreditCard) Parse(masterKey []byte) error {
creditDB, err := sql.Open("sqlite3", item.TempYandexCreditCard)
if err != nil {
return err
}
defer os.Remove(item.TempYandexCreditCard)
defer creditDB.Close()
rows, err := creditDB.Query(queryChromiumCredit)
if err != nil {
return err
}
defer rows.Close()
for rows.Next() {
var (
name, month, year, guid string
value, encryptValue []byte
)
if err := rows.Scan(&guid, &name, &month, &year, &encryptValue); err != nil {
log.Warn(err)
}
creditCardInfo := card{
GUID: guid,
Name: name,
ExpirationMonth: month,
ExpirationYear: year,
}
if masterKey == nil {
value, err = decrypter.DPApi(encryptValue)
if err != nil {
return err
}
} else {
value, err = decrypter.ChromePass(masterKey, encryptValue)
if err != nil {
return err
}
}
creditCardInfo.CardNumber = string(value)
*c = append(*c, creditCardInfo)
}
return nil
}
func (c *YandexCreditCard) Name() string {
return "creditcard"
}