package helper import "errors" func Pad(buf []byte, size int) ([]byte, error) { bufLen := len(buf) padLen := size - bufLen%size padded := make([]byte, bufLen+padLen) copy(padded, buf) for i := 0; i < padLen; i++ { padded[bufLen+i] = byte(padLen) } return padded, nil } func Unpad(padded []byte, size int) ([]byte, error) { if len(padded)%size != 0 { return nil, errors.New("pkcs7: Padded value wasn't in correct size.") } bufLen := len(padded) - int(padded[len(padded)-1]) buf := make([]byte, bufLen) copy(buf, padded[:bufLen]) return buf, nil }