Main password encrypted in memory

This commit is contained in:
ycc
2026-02-02 18:15:57 +01:00
parent bb56b8dd9c
commit 7cf212fc76
13 changed files with 145 additions and 110 deletions

View File

@@ -42,7 +42,11 @@ func (ss *ServerStorage) StoreServer(sc *Server) error {
if err != nil {
return err
}
data, err := meowlib.SymEncrypt(GetConfig().memoryPassword, jsonsrv)
password, err := GetConfig().GetMemPass()
if err != nil {
return err
}
data, err := meowlib.SymEncrypt(password, jsonsrv)
if err != nil {
return err
}
@@ -96,6 +100,10 @@ func (ss *ServerStorage) LoadServer(uid string) (*Server, error) {
return nil, err
}
defer ss.close()
password, err := GetConfig().GetMemPass()
if err != nil {
return nil, err
}
shakey := sha256.Sum256([]byte(uid))
key := shakey[:]
err = ss.db.View(func(txn *badger.Txn) error {
@@ -104,7 +112,7 @@ func (ss *ServerStorage) LoadServer(uid string) (*Server, error) {
return err
}
return item.Value(func(val []byte) error {
jsonsrv, err := meowlib.SymDecrypt(GetConfig().memoryPassword, val)
jsonsrv, err := meowlib.SymDecrypt(password, val)
if err != nil {
return err
}
@@ -136,6 +144,10 @@ func (ss *ServerStorage) LoadAllServers() ([]*Server, error) {
return nil, err
}
defer ss.close()
password, err := GetConfig().GetMemPass()
if err != nil {
return nil, err
}
err = ss.db.View(func(txn *badger.Txn) error {
opts := badger.DefaultIteratorOptions
opts.PrefetchSize = 10
@@ -145,7 +157,7 @@ func (ss *ServerStorage) LoadAllServers() ([]*Server, error) {
item := it.Item()
var sc Server
err := item.Value(func(val []byte) error {
jsonsrv, err := meowlib.SymDecrypt(GetConfig().memoryPassword, val)
jsonsrv, err := meowlib.SymDecrypt(password, val)
if err != nil {
return err
}
@@ -169,6 +181,10 @@ func (ss *ServerStorage) LoadAllServerCards() ([]*meowlib.ServerCard, error) {
return nil, err
}
defer ss.close()
password, err := GetConfig().GetMemPass()
if err != nil {
return nil, err
}
err = ss.db.View(func(txn *badger.Txn) error {
opts := badger.DefaultIteratorOptions
opts.PrefetchSize = 10
@@ -178,7 +194,7 @@ func (ss *ServerStorage) LoadAllServerCards() ([]*meowlib.ServerCard, error) {
item := it.Item()
var sc Server
err := item.Value(func(val []byte) error {
jsonsrv, err := meowlib.SymDecrypt(GetConfig().memoryPassword, val)
jsonsrv, err := meowlib.SymDecrypt(password, val)
if err != nil {
return err
}
@@ -202,6 +218,10 @@ func (ss *ServerStorage) LoadServersFromUids(uids []string) ([]*Server, error) {
return nil, err
}
defer ss.close()
password, err := GetConfig().GetMemPass()
if err != nil {
return nil, err
}
err = ss.db.View(func(txn *badger.Txn) error {
for _, uid := range uids {
shakey := sha256.Sum256([]byte(uid))
@@ -212,7 +232,7 @@ func (ss *ServerStorage) LoadServersFromUids(uids []string) ([]*Server, error) {
}
var sc Server
err = item.Value(func(val []byte) error {
jsonsrv, err := meowlib.SymDecrypt(GetConfig().memoryPassword, val)
jsonsrv, err := meowlib.SymDecrypt(password, val)
if err != nil {
return err
}
@@ -236,6 +256,10 @@ func (ss *ServerStorage) LoadServerCardsFromUids(uids []string) ([]*meowlib.Serv
return nil, err
}
defer ss.close()
password, err := GetConfig().GetMemPass()
if err != nil {
return nil, err
}
err = ss.db.View(func(txn *badger.Txn) error {
for _, uid := range uids {
shakey := sha256.Sum256([]byte(uid))
@@ -246,7 +270,7 @@ func (ss *ServerStorage) LoadServerCardsFromUids(uids []string) ([]*meowlib.Serv
}
var sc Server
err = item.Value(func(val []byte) error {
jsonsrv, err := meowlib.SymDecrypt(GetConfig().memoryPassword, val)
jsonsrv, err := meowlib.SymDecrypt(password, val)
if err != nil {
return err
}