You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
package wechatminiprogram
|
|
|
|
|
|
|
|
import "errors"
|
|
|
|
|
|
|
|
func (c *Client) pkcs7Unpaid(data []byte, blockSize int) ([]byte, error) {
|
|
|
|
if blockSize <= 0 {
|
|
|
|
return nil, errors.New("invalid block size")
|
|
|
|
}
|
|
|
|
if len(data)%blockSize != 0 || len(data) == 0 {
|
|
|
|
return nil, errors.New("invalid PKCS7 data")
|
|
|
|
}
|
|
|
|
d := data[len(data)-1]
|
|
|
|
n := int(d)
|
|
|
|
if n == 0 || n > len(data) {
|
|
|
|
return nil, errors.New("invalid padding on input")
|
|
|
|
}
|
|
|
|
for i := 0; i < n; i++ {
|
|
|
|
if data[len(data)-n+i] != d {
|
|
|
|
return nil, errors.New("invalid padding on input")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return data[:len(data)-n], nil
|
|
|
|
}
|