43 lines
686 B
Go
43 lines
686 B
Go
|
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]
|
||
|
}
|