diff --git a/pkg/service/asset.go b/pkg/service/asset.go index 934e127..d431436 100644 --- a/pkg/service/asset.go +++ b/pkg/service/asset.go @@ -1,11 +1,8 @@ package service import ( - "encoding/base64" - "next-terminal/pkg/global" "next-terminal/server/repository" - "next-terminal/server/utils" ) type AssetService struct { @@ -26,31 +23,10 @@ func (r AssetService) Encrypt() error { if item.Encrypted { continue } - if item.Password != "" && item.Password != "-" { - encryptedCBC, err := utils.AesEncryptCBC([]byte(item.Password), global.Config.EncryptionPassword) - if err != nil { - return err - } - item.Password = base64.StdEncoding.EncodeToString(encryptedCBC) + if err := r.assetRepository.Encrypt(&item, global.Config.EncryptionPassword); err != nil { + return err } - - if item.PrivateKey != "" && item.PrivateKey != "-" { - encryptedCBC, err := utils.AesEncryptCBC([]byte(item.PrivateKey), global.Config.EncryptionPassword) - if err != nil { - return err - } - item.PrivateKey = base64.StdEncoding.EncodeToString(encryptedCBC) - } - - if item.Passphrase != "" && item.Passphrase != "-" { - encryptedCBC, err := utils.AesEncryptCBC([]byte(item.Passphrase), global.Config.EncryptionPassword) - if err != nil { - return err - } - item.Passphrase = base64.StdEncoding.EncodeToString(encryptedCBC) - } - err = r.assetRepository.EncryptedById(true, item.Password, item.PrivateKey, item.Passphrase, item.ID) - if err != nil { + if err := r.assetRepository.UpdateById(&item, item.ID); err != nil { return err } } diff --git a/pkg/service/credential.go b/pkg/service/credential.go index 89d0371..b860f95 100644 --- a/pkg/service/credential.go +++ b/pkg/service/credential.go @@ -1,11 +1,8 @@ package service import ( - "encoding/base64" - "next-terminal/pkg/global" "next-terminal/server/repository" - "next-terminal/server/utils" ) type CredentialService struct { @@ -26,31 +23,10 @@ func (r CredentialService) Encrypt() error { if item.Encrypted { continue } - if item.Password != "" && item.Password != "-" { - encryptedCBC, err := utils.AesEncryptCBC([]byte(item.Password), global.Config.EncryptionPassword) - if err != nil { - return err - } - item.Password = base64.StdEncoding.EncodeToString(encryptedCBC) + if err := r.credentialRepository.Encrypt(&item, global.Config.EncryptionPassword); err != nil { + return err } - - if item.PrivateKey != "" && item.PrivateKey != "-" { - encryptedCBC, err := utils.AesEncryptCBC([]byte(item.PrivateKey), global.Config.EncryptionPassword) - if err != nil { - return err - } - item.PrivateKey = base64.StdEncoding.EncodeToString(encryptedCBC) - } - - if item.Passphrase != "" && item.Passphrase != "-" { - encryptedCBC, err := utils.AesEncryptCBC([]byte(item.Passphrase), global.Config.EncryptionPassword) - if err != nil { - return err - } - item.Passphrase = base64.StdEncoding.EncodeToString(encryptedCBC) - } - err = r.credentialRepository.EncryptedById(true, item.Password, item.PrivateKey, item.Passphrase, item.ID) - if err != nil { + if err := r.credentialRepository.UpdateById(&item, item.ID); err != nil { return err } } diff --git a/server/api/routes.go b/server/api/routes.go index 4785536..efe77e7 100644 --- a/server/api/routes.go +++ b/server/api/routes.go @@ -41,13 +41,14 @@ var ( jobLogRepository *repository.JobLogRepository loginLogRepository *repository.LoginLogRepository - jobService *service.JobService - propertyService *service.PropertyService - userService *service.UserService - sessionService *service.SessionService - mailService *service.MailService - numService *service.NumService - assetService *service.AssetService + jobService *service.JobService + propertyService *service.PropertyService + userService *service.UserService + sessionService *service.SessionService + mailService *service.MailService + numService *service.NumService + assetService *service.AssetService + credentialService *service.CredentialService ) func SetupRoutes(db *gorm.DB) *echo.Echo { @@ -256,6 +257,7 @@ func InitService() { mailService = service.NewMailService(propertyRepository) numService = service.NewNumService(numRepository) assetService = service.NewAssetService(assetRepository) + credentialService = service.NewCredentialService(credentialRepository) } func InitDBData() (err error) { @@ -280,6 +282,9 @@ func InitDBData() (err error) { if err := sessionService.EmptyPassword(); err != nil { return err } + if err := credentialService.Encrypt(); err != nil { + return err + } if err := assetService.Encrypt(); err != nil { return err } diff --git a/server/repository/asset.go b/server/repository/asset.go index 10f9bce..dfa73e1 100644 --- a/server/repository/asset.go +++ b/server/repository/asset.go @@ -243,11 +243,6 @@ func (r AssetRepository) UpdateActiveById(active bool, id string) error { return r.DB.Exec(sql, active, id).Error } -func (r AssetRepository) EncryptedById(encrypted bool, password, privateKey, passphrase, id string) error { - sql := "update assets set encrypted = ?, password = ?,private_key = ?, passphrase = ? where id = ?" - return r.DB.Exec(sql, encrypted, password, privateKey, passphrase, id).Error -} - func (r AssetRepository) DeleteById(id string) error { return r.DB.Where("id = ?", id).Delete(&model.Asset{}).Error } diff --git a/server/repository/credential.go b/server/repository/credential.go index 120ac82..f0f9d27 100644 --- a/server/repository/credential.go +++ b/server/repository/credential.go @@ -192,8 +192,3 @@ func (r CredentialRepository) FindAll() (o []model.Credential, err error) { err = r.DB.Find(&o).Error return } - -func (r CredentialRepository) EncryptedById(encrypted bool, password, privateKey, passphrase, id string) error { - sql := "update assets set encrypted = ?, password = ?,private_key = ?, passphrase = ? where id = ?" - return r.DB.Exec(sql, encrypted, password, privateKey, passphrase, id).Error -}