feat(app): add internal components batch 5
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"errors"
|
||||
)
|
||||
|
||||
func pkcs7Unpad(src []byte, blockSize int) ([]byte, error) {
|
||||
if len(src) == 0 || len(src)%blockSize != 0 {
|
||||
return nil, errors.New("invalid pkcs7 length")
|
||||
}
|
||||
pad := int(src[len(src)-1])
|
||||
if pad == 0 || pad > blockSize || pad > len(src) {
|
||||
return nil, errors.New("invalid pkcs7 padding")
|
||||
}
|
||||
for _, v := range src[len(src)-pad:] {
|
||||
if int(v) != pad {
|
||||
return nil, errors.New("invalid pkcs7 padding bytes")
|
||||
}
|
||||
}
|
||||
return src[:len(src)-pad], nil
|
||||
}
|
||||
Reference in New Issue
Block a user