40 lines
799 B
Go
40 lines
799 B
Go
package kyc
|
|
|
|
import (
|
|
"encoding/json"
|
|
"errors"
|
|
"nixcn-cms/internal/cryptography"
|
|
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
func EncodeAES(kyc any) (*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) (any, error) {
|
|
aesKey := viper.GetString("secrets.kyc_info_key")
|
|
plainBytes, err := cryptography.AESCBCDecrypt(cipherStr, []byte(aesKey))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var kycInfo any
|
|
if err := json.Unmarshal(plainBytes, &kycInfo); err != nil {
|
|
return nil, errors.New("[KYC] invalid decrypted json")
|
|
}
|
|
|
|
return &kycInfo, nil
|
|
}
|