2023-01-31 13:50:14 +08:00
|
|
|
// Package padding implements some padding schemes for padding octets at the trailing end.
|
2022-02-24 17:41:52 +08:00
|
|
|
package padding
|
|
|
|
|
|
|
|
// Padding interface represents a padding scheme
|
|
|
|
type Padding interface {
|
|
|
|
BlockSize() int
|
|
|
|
Pad(src []byte) []byte
|
|
|
|
Unpad(src []byte) ([]byte, error)
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewPKCS7Padding(blockSize uint) Padding {
|
|
|
|
if blockSize == 0 || blockSize > 255 {
|
|
|
|
panic("padding: invalid block size")
|
|
|
|
}
|
|
|
|
return pkcs7Padding(blockSize)
|
|
|
|
}
|
2022-02-25 10:26:30 +08:00
|
|
|
|
|
|
|
func NewANSIX923Padding(blockSize uint) Padding {
|
|
|
|
if blockSize == 0 || blockSize > 255 {
|
|
|
|
panic("padding: invalid block size")
|
|
|
|
}
|
|
|
|
return ansiX923Padding(blockSize)
|
|
|
|
}
|
2023-08-08 17:35:16 +08:00
|
|
|
|
|
|
|
func NewISO9797M2Padding(blockSize uint) Padding {
|
|
|
|
if blockSize == 0 || blockSize > 255 {
|
|
|
|
panic("padding: invalid block size")
|
|
|
|
}
|
|
|
|
return iso9797M2Padding(blockSize)
|
|
|
|
}
|