feature (middleware): expose gcm encrypt to templating

This commit is contained in:
MickaelK
2024-07-22 22:48:18 +10:00
parent da20ac8b70
commit ae0eb94c61
2 changed files with 6 additions and 2 deletions

View File

@ -30,7 +30,7 @@ func EncryptString(secret string, data string) (string, error) {
if err != nil { if err != nil {
return "", err return "", err
} }
d, err = encrypt([]byte(secret), d) d, err = EncryptAESGCM([]byte(secret), d)
if err != nil { if err != nil {
return "", err return "", err
} }
@ -126,7 +126,7 @@ func QuickString(n int) string {
return string(b) return string(b)
} }
func encrypt(key []byte, plaintext []byte) ([]byte, error) { func EncryptAESGCM(key []byte, plaintext []byte) ([]byte, error) {
c, err := aes.NewCipher(key) c, err := aes.NewCipher(key)
if err != nil { if err != nil {
return nil, err return nil, err

View File

@ -382,6 +382,10 @@ func SessionAuthMiddleware(ctx *App, res http.ResponseWriter, req *http.Request)
} }
return false return false
}, },
"encryptGCM": func(str string, key string) (string, error) {
data, err := EncryptAESGCM([]byte(key), []byte(str))
return base64.StdEncoding.EncodeToString(data), err
},
}). }).
Parse(str) Parse(str)
mappingToUse[k] = str mappingToUse[k] = str