remove export item selection, default select all items

This commit is contained in:
ᴍᴏᴏɴD4ʀᴋ
2020-09-28 17:36:37 +08:00
parent c76c36f609
commit 3924723605
7 changed files with 82 additions and 79 deletions
+46 -41
View File
@@ -27,8 +27,11 @@ type Browser interface {
// GetSecretKey return browser secret key
GetSecretKey() []byte
// GetAllItems, default return all of items(password|bookmark|cookie|history)
GetAllItems(itemName string) ([]common.Item, error)
// GetAllItems return all of items (password|bookmark|cookie|history)
GetAllItems() ([]common.Item, error)
// GetItem return single one from password|bookmark|cookie|history
GetItem(itemName string) (common.Item, error)
}
const (
@@ -111,32 +114,33 @@ func (c *Chromium) GetSecretKey() []byte {
return c.secretKey
}
func (c *Chromium) GetAllItems(itemName string) (Items []common.Item, err error) {
itemName = strings.ToLower(itemName)
func (c *Chromium) GetAllItems() (Items []common.Item, err error) {
var items []common.Item
if itemName == "all" {
for item, choice := range chromiumItems {
m, err := utils.GetItemPath(c.profilePath, choice.mainFile)
if err != nil {
log.Errorf("%s find %s file failed, ERR:%s", c.name, item, err)
continue
}
i := choice.newItem(m, "")
log.Debugf("%s find %s File Success", c.name, item)
items = append(items, i)
for item, choice := range chromiumItems {
m, err := utils.GetItemPath(c.profilePath, choice.mainFile)
if err != nil {
log.Errorf("%s find %s file failed, ERR:%s", c.name, item, err)
continue
}
} else if item, ok := chromiumItems[itemName]; ok {
i := choice.newItem(m, "")
log.Debugf("%s find %s File Success", c.name, item)
items = append(items, i)
}
return items, nil
}
func (c *Chromium) GetItem(itemName string) (common.Item, error) {
itemName = strings.ToLower(itemName)
if item, ok := chromiumItems[itemName]; ok {
m, err := utils.GetItemPath(c.profilePath, item.mainFile)
if err != nil {
log.Errorf("%s find %s file failed, ERR:%s", c.name, item.mainFile, err)
}
i := item.newItem(m, "")
items = append(items, i)
return items, nil
return i, nil
} else {
return nil, errItemNotSupported
}
return items, nil
}
type Firefox struct {
@@ -149,32 +153,35 @@ func NewFirefox(profile, key, name string) (Browser, error) {
return &Firefox{profilePath: profile, keyPath: key, name: name}, nil
}
func (f *Firefox) GetAllItems(itemName string) ([]common.Item, error) {
itemName = strings.ToLower(itemName)
func (f *Firefox) GetAllItems() ([]common.Item, error) {
var items []common.Item
if itemName == "all" {
for item, choice := range firefoxItems {
var (
sub, main string
err error
)
if choice.subFile != "" {
sub, err = utils.GetItemPath(f.profilePath, choice.subFile)
if err != nil {
log.Errorf("%s find %s file failed, ERR:%s", f.name, item, err)
continue
}
}
main, err = utils.GetItemPath(f.profilePath, choice.mainFile)
for item, choice := range firefoxItems {
var (
sub, main string
err error
)
if choice.subFile != "" {
sub, err = utils.GetItemPath(f.profilePath, choice.subFile)
if err != nil {
log.Errorf("%s find %s file failed, ERR:%s", f.name, item, err)
continue
}
i := choice.newItem(main, sub)
log.Debugf("%s find %s file success", f.name, item)
items = append(items, i)
}
} else if item, ok := firefoxItems[itemName]; ok {
main, err = utils.GetItemPath(f.profilePath, choice.mainFile)
if err != nil {
log.Errorf("%s find %s file failed, ERR:%s", f.name, item, err)
continue
}
i := choice.newItem(main, sub)
log.Debugf("%s find %s file success", f.name, item)
items = append(items, i)
}
return items, nil
}
func (f *Firefox) GetItem(itemName string) (common.Item, error) {
itemName = strings.ToLower(itemName)
if item, ok := firefoxItems[itemName]; ok {
var (
sub, main string
err error
@@ -191,12 +198,10 @@ func (f *Firefox) GetAllItems(itemName string) ([]common.Item, error) {
}
i := item.newItem(main, sub)
log.Debugf("%s find %s file success", f.name, item.mainFile)
items = append(items, i)
return items, nil
return i, nil
} else {
return nil, errItemNotSupported
}
return items, nil
}
func (f *Firefox) GetName() string {
+1 -1
View File
@@ -45,7 +45,7 @@ func (c *Chromium) InitSecretKey() error {
cmd *exec.Cmd
stdout, stderr bytes.Buffer
)
//➜ security find-generic-password -wa 'Chrome'
// ➜ security find-generic-password -wa 'Chrome'
cmd = exec.Command("security", "find-generic-password", "-wa", c.name)
cmd.Stdout = &stdout
cmd.Stderr = &stderr
+1 -1
View File
@@ -35,7 +35,7 @@ var (
)
func (c *Chromium) InitSecretKey() error {
//what is d-bus @https://dbus.freedesktop.org/
// what is d-bus @https://dbus.freedesktop.org/
var chromeSecret []byte
conn, err := dbus.SessionBus()
if err != nil {
+8 -9
View File
@@ -25,13 +25,13 @@ type Item interface {
// FirefoxParse parse firefox items
FirefoxParse() error
// OutPut with json or csv
// OutPut file name and format type
OutPut(format, browser, dir string) error
// Copy item file to local path
CopyItem() error
// CopyDB is copy item db file to current dir
CopyDB() error
// Release item file
// Release is delete item db file
Release() error
}
@@ -138,7 +138,7 @@ func (b *bookmarks) FirefoxParse() error {
return nil
}
func (b *bookmarks) CopyItem() error {
func (b *bookmarks) CopyDB() error {
return utils.CopyDB(b.mainPath, filepath.Base(b.mainPath))
}
@@ -266,7 +266,7 @@ func (c *cookies) FirefoxParse() error {
return nil
}
func (c *cookies) CopyItem() error {
func (c *cookies) CopyDB() error {
return utils.CopyDB(c.mainPath, filepath.Base(c.mainPath))
}
@@ -383,7 +383,7 @@ func (h *historyData) FirefoxParse() error {
return nil
}
func (h *historyData) CopyItem() error {
func (h *historyData) CopyDB() error {
return utils.CopyDB(h.mainPath, filepath.Base(h.mainPath))
}
@@ -526,14 +526,13 @@ func (p *passwords) FirefoxParse() error {
Password: string(decrypt.PKCS5UnPadding(pwd)),
CreateDate: v.CreateDate,
})
}
}
}
return nil
}
func (p *passwords) CopyItem() error {
func (p *passwords) CopyDB() error {
err := utils.CopyDB(p.mainPath, filepath.Base(p.mainPath))
if err != nil {
log.Error(err)
+10 -10
View File
@@ -84,16 +84,16 @@ func Nss(globalSalt, masterPwd []byte, pbe NssPBE) ([]byte, error) {
}
func decryptPBE(globalSalt, masterPwd, entrySalt, encrypted []byte) ([]byte, error) {
//byte[] GLMP; // GlobalSalt + MasterPassword
//byte[] HP; // SHA1(GLMP)
//byte[] HPES; // HP + EntrySalt
//byte[] CHP; // SHA1(HPES)
//byte[] PES; // EntrySalt completed to 20 bytes by zero
//byte[] PESES; // PES + EntrySalt
//byte[] k1;
//byte[] tk;
//byte[] k2;
//byte[] k; // final value containing key and iv
// byte[] GLMP; // GlobalSalt + MasterPassword
// byte[] HP; // SHA1(GLMP)
// byte[] HPES; // HP + EntrySalt
// byte[] CHP; // SHA1(HPES)
// byte[] PES; // EntrySalt completed to 20 bytes by zero
// byte[] PESES; // PES + EntrySalt
// byte[] k1;
// byte[] tk;
// byte[] k2;
// byte[] k; // final value containing key and iv
glmp := append(globalSalt, masterPwd...)
hp := sha1.Sum(glmp)
s := append(hp[:], entrySalt...)
+10 -10
View File
@@ -119,16 +119,16 @@ func Nss(globalSalt, masterPwd []byte, pbe NssPBE) ([]byte, error) {
}
func decryptMeta(globalSalt, masterPwd, entrySalt, encrypted []byte) ([]byte, error) {
//byte[] GLMP; // GlobalSalt + MasterPassword
//byte[] HP; // SHA1(GLMP)
//byte[] HPES; // HP + EntrySalt
//byte[] CHP; // SHA1(HPES)
//byte[] PES; // EntrySalt completed to 20 bytes by zero
//byte[] PESES; // PES + EntrySalt
//byte[] k1;
//byte[] tk;
//byte[] k2;
//byte[] k; // final value conytaining key and iv
// byte[] GLMP; // GlobalSalt + MasterPassword
// byte[] HP; // SHA1(GLMP)
// byte[] HPES; // HP + EntrySalt
// byte[] CHP; // SHA1(HPES)
// byte[] PES; // EntrySalt completed to 20 bytes by zero
// byte[] PESES; // PES + EntrySalt
// byte[] k1;
// byte[] tk;
// byte[] k2;
// byte[] k; // final value conytaining key and iv
glmp := append(globalSalt, masterPwd...)
hp := sha1.Sum(glmp)
s := append(hp[:], entrySalt...)