Files
2026-07-13 00:57:35 -03:00

30 lines
661 B
Go

package main
import (
"encoding/base64"
"fmt"
"strings"
)
func sealCredential(prefix, plain string) (string, error) {
if plain == "" || strings.HasPrefix(plain, prefix) {
return plain, nil
}
enc, err := encryptSecret(plain)
if err != nil {
return "", err
}
return prefix + base64.RawStdEncoding.EncodeToString(enc), nil
}
func openCredential(prefix, stored string) (string, error) {
if !strings.HasPrefix(stored, prefix) {
return stored, nil
}
raw, err := base64.RawStdEncoding.DecodeString(strings.TrimPrefix(stored, prefix))
if err != nil {
return "", fmt.Errorf("decode encrypted credential: %w", err)
}
return decryptSecret(raw)
}