l_crypt/types.go

43 lines
686 B
Go
Raw Permalink Normal View History

2025-02-20 17:49:10 +08:00
package l_encrypt
type (
ApiCrypt interface {
Encrypt(data string) (encryptData []byte, err error)
Decrypt(encryptData string) (decryptData []byte, err error)
}
Rsa struct {
App *AppEncrypt
}
SM2 struct {
App *AppEncrypt
}
SM4 struct {
App *AppEncrypt
}
AES struct {
App *AppEncrypt
}
AppEncrypt struct {
UniKEY string
MerchantPublicKey string
PublicKey string
PrivateKey string
}
)
var apiCryptMap = map[cryptType]func(en *AppEncrypt) ApiCrypt{
CryptRSA: NewRsa,
CryptSM2: NewSm2,
CryptSM4: NewSm4,
CryptAES: NewAES,
}
func Crypt(ct cryptType) (cryptFunc func(app *AppEncrypt) ApiCrypt) {
return apiCryptMap[ct]
}