31 lines
807 B
Go
31 lines
807 B
Go
package security
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"github.com/fiskerinc/cloud-services/pkg/utils/envtool"
|
|
)
|
|
|
|
var envOnce sync.Once
|
|
var master_key = []byte{}
|
|
var master_auth = []byte{}
|
|
var master_nouce = []byte{}
|
|
|
|
type Encrypt struct{}
|
|
|
|
func (enc *Encrypt) GetEncryptor() (IEncryptor, error) {
|
|
envOnce.Do(func() {
|
|
master_key = []byte(envtool.GetEnv("MASTER_KEY", "REPLACE_ME_REPLACE_ME_REPLACE_ME"))
|
|
master_auth = []byte(envtool.GetEnv("MASTER_KEY_AUTH", "REPLACE_ME_REPLACE_ME"))
|
|
master_nouce = []byte(envtool.GetEnv("MASTER_KEY_NOUNCE", "_REPLACE_ME_"))
|
|
})
|
|
key, auth, nonce := enc.getMasterKey()
|
|
|
|
encryptor, _, err := NewEncryptor([]byte(key), []byte(auth), []byte(nonce))
|
|
return encryptor, err
|
|
}
|
|
|
|
func (enc *Encrypt) getMasterKey() ([]byte, []byte, []byte) {
|
|
return master_key, master_auth, master_nouce
|
|
}
|