PaymentCenter/app/services/thirdpay/api/crypt.go

53 lines
1.3 KiB
Go

package api
import (
"PaymentCenter/app/constants/errorcode"
"PaymentCenter/app/models/appmodel"
"PaymentCenter/app/services"
"PaymentCenter/app/services/apicrypt"
"encoding/json"
)
func EnCrypt(app *appmodel.App, data interface{}) ([]byte, int) {
appCheck := services.NewAppCheck(app)
cryptFunc := appCheck.Crypt()
if cryptFunc == nil {
return nil, appCheck.Code
}
dataByte, err := json.Marshal(data)
if err != nil {
return nil, errorcode.AppAesEncryptFail
}
//aesKey, err := aes.GenerateRandomStringCrypto(16)
//if err != nil {
// return "", errorcode.AppAesEncryptFail
//}
//aesData, err := aes.Encrypt(dataByte, []byte(aesKey))
//if err != nil {
// return "", errorcode.AppAesEncryptFail
//}
encryptData, errCode := cryptFunc(appCheck.App).Encrypt(dataByte)
if errCode != apicrypt.CryptNotError {
return nil, errCode
}
return encryptData, errorcode.Success
}
func DeCrypt(app *appmodel.App, data string, aesKey string) ([]byte, int) {
appCheck := services.NewAppCheck(app)
cryptFunc := appCheck.Crypt()
if cryptFunc == nil {
return nil, appCheck.Code
}
dataByte, errCode := cryptFunc(app).Decrypt(data)
if errCode != apicrypt.CryptNotError {
return nil, errCode
}
//aesData, err := aes.Decrypt(dataByte, []byte(aesKey))
//if err != nil {
// return nil, errorcode.AppAesEncryptFail
//}
return dataByte, errorcode.Success
}