- dingding callback

This commit is contained in:
gazebo
2019-03-09 08:10:04 +08:00
parent 9bd3b3f086
commit 803240fc9f
6 changed files with 160 additions and 26 deletions

View File

@@ -1,8 +1,7 @@
package weixinapi
import (
"crypto/aes"
"crypto/cipher"
"bytes"
"git.rosy.net.cn/baseapi/utils"
)
@@ -86,19 +85,18 @@ func (a *API) SNSDecodeMiniProgramData(encryptedData, sessionKey, iv string) (de
if err != nil {
return nil, err
}
c, err := aes.NewCipher(decodedDataList[1])
if err != nil {
return nil, err
}
cfbdec := cipher.NewCBCDecrypter(c, decodedDataList[2][:c.BlockSize()])
decryptedData = make([]byte, len(decodedDataList[0]))
cfbdec.CryptBlocks(decryptedData, decodedDataList[0])
decryptedData = PKCS7UnPadding(decryptedData)
return decryptedData, nil
decryptedData, err = utils.AESCBCDecpryt(decodedDataList[0], decodedDataList[1], decodedDataList[2])
return decryptedData, err
}
func PKCS7UnPadding(origData []byte) []byte {
func PKCSUnPadding(origData []byte) []byte {
length := len(origData)
unpadding := int(origData[length-1])
return origData[:(length - unpadding)]
}
func PKCSPadding(ciphertext []byte, blockSize int) []byte {
padding := blockSize - len(ciphertext)%blockSize
padtext := bytes.Repeat([]byte{byte(padding)}, padding)
return append(ciphertext, padtext...)
}