Initial cloud-services repo - gateway service + pkg modules

This commit is contained in:
Chris Rai
2026-01-30 23:14:52 -05:00
commit fbb820d7b3
1037 changed files with 171318 additions and 0 deletions

88
pkg/db/queries/symkeys.go Normal file
View File

@@ -0,0 +1,88 @@
package queries
import (
"fiskerinc.com/modules/common"
s "fiskerinc.com/modules/security"
"github.com/go-pg/pg/v10/orm"
"github.com/pkg/errors"
)
type SymKeysInterface interface {
Insert(keys common.SymKeys) (orm.Result, error)
SelectAll() ([]common.SymKeys, error)
SelectByVIN(vin string) (common.SymKeys, error)
}
type SymKeys struct {
QueryBase
}
func (sk *SymKeys) Insert(keys common.SymKeys) (orm.Result, error) {
enc := s.Encrypt{}
encryptor, err := enc.GetEncryptor()
if err != nil {
return nil, err
}
keys.SecOC.SetBytes(encryptor.EncryptChunk(keys.SecOC.Bytes()))
keys.SecureLogging.SetBytes(encryptor.EncryptChunk(keys.SecureLogging.Bytes()))
keys.SecureStorage.SetBytes(encryptor.EncryptChunk(keys.SecureStorage.Bytes()))
return sk.GetDBConn().Model(&keys).Insert()
}
func (sk *SymKeys) SelectAll() ([]common.SymKeys, error) {
symkeys := []common.SymKeys{}
err := sk.GetDBConn().Model(&symkeys).Select()
if err != nil {
return nil, errors.WithStack(err)
}
for i := range symkeys {
err = sk.decrypt(&symkeys[i])
if err != nil {
return nil, err
}
}
return symkeys, err
}
func (sk *SymKeys) SelectByVIN(vin string) (common.SymKeys, error) {
symkey := common.SymKeys{}
err := sk.GetDBConn().Model(&symkey).Where("vin = ?", vin).Select()
if err != nil {
return symkey, errors.WithStack(err)
}
err = sk.decrypt(&symkey)
return symkey, err
}
func (sk *SymKeys) decrypt(symkeys *common.SymKeys) error {
enc := s.Encrypt{}
encryptor, err := enc.GetEncryptor()
if err != nil {
return err
}
secoc, err := encryptor.DecryptChunk(symkeys.SecOC.Bytes())
if err != nil {
return err
}
symkeys.SecOC.SetBytes(secoc)
logging, err := encryptor.DecryptChunk(symkeys.SecureLogging.Bytes())
if err != nil {
return err
}
symkeys.SecureLogging.SetBytes(logging)
storage, err := encryptor.DecryptChunk(symkeys.SecureStorage.Bytes())
if err != nil {
return err
}
symkeys.SecureStorage.SetBytes(storage)
return nil
}