package kyc import ( "encoding/json" "errors" "nixcn-cms/internal/cryptography" "github.com/spf13/viper" ) func EncodeAES(kyc *KycInfo) (*string, error) { plainJson, err := json.Marshal(kyc) if err != nil { return nil, err } aesKey := viper.GetString("secrets.kyc_info_key") encrypted, err := cryptography.AESCBCEncrypt(plainJson, []byte(aesKey)) if err != nil { return nil, err } return &encrypted, nil } func DecodeAES(cipherStr string) (*KycInfo, error) { aesKey := viper.GetString("secrets.kyc_info_key") plainBytes, err := cryptography.AESCBCDecrypt(cipherStr, []byte(aesKey)) if err != nil { return nil, err } var kycInfo KycInfo if err := json.Unmarshal(plainBytes, &kycInfo); err != nil { return nil, errors.New("[KYC] invalid decrypted json") } return &kycInfo, nil }