mirror of
https://github.com/go-gitea/gitea
synced 2025-10-27 17:38:25 +00:00
Add AES GCM encryption provider
This commit is contained in:
@@ -20,7 +20,8 @@ const (
|
||||
)
|
||||
|
||||
var (
|
||||
masterKey MasterKeyProvider
|
||||
masterKey MasterKeyProvider
|
||||
encProvider EncryptionProvider
|
||||
)
|
||||
|
||||
// Init initializes master key provider based on settings
|
||||
@@ -33,6 +34,9 @@ func Init() error {
|
||||
default:
|
||||
return fmt.Errorf("invalid master key provider %v", setting.MasterKeyProvider)
|
||||
}
|
||||
|
||||
encProvider = NewAesEncryptionProvider()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -40,3 +44,55 @@ func Init() error {
|
||||
func GenerateMasterKey() ([][]byte, error) {
|
||||
return masterKey.GenerateMasterKey()
|
||||
}
|
||||
|
||||
func Encrypt(secret []byte) ([]byte, error) {
|
||||
key, err := masterKey.GetMasterKey()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if len(key) == 0 {
|
||||
return secret, nil
|
||||
}
|
||||
|
||||
return encProvider.Encrypt(secret, key)
|
||||
}
|
||||
|
||||
func EncryptString(secret string) (string, error) {
|
||||
key, err := masterKey.GetMasterKey()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
if len(key) == 0 {
|
||||
return secret, nil
|
||||
}
|
||||
|
||||
return encProvider.EncryptString(secret, key)
|
||||
}
|
||||
|
||||
func Decrypt(enc []byte) ([]byte, error) {
|
||||
key, err := masterKey.GetMasterKey()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if len(key) == 0 {
|
||||
return enc, nil
|
||||
}
|
||||
|
||||
return encProvider.Decrypt(enc, key)
|
||||
}
|
||||
|
||||
func DecryptString(enc string) (string, error) {
|
||||
key, err := masterKey.GetMasterKey()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
if len(key) == 0 {
|
||||
return enc, nil
|
||||
}
|
||||
|
||||
return encProvider.DecryptString(enc, key)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user