26 lines
553 B
Go
26 lines
553 B
Go
package paddingx
|
|
|
|
import "testing"
|
|
|
|
func FuzzPadUnpadRoundTrip(f *testing.F) {
|
|
f.Add([]byte("abc"))
|
|
f.Add([]byte{})
|
|
modes := []string{PKCS7, ZERO, ANSIX923}
|
|
|
|
f.Fuzz(func(t *testing.T, data []byte) {
|
|
for _, mode := range modes {
|
|
padded, err := Pad(data, 16, mode)
|
|
if err != nil {
|
|
t.Fatalf("Pad failed: %v", err)
|
|
}
|
|
out, err := Unpad(padded, 16, mode)
|
|
if err != nil {
|
|
t.Fatalf("Unpad failed: %v", err)
|
|
}
|
|
if mode != ZERO && string(out) != string(data) {
|
|
t.Fatalf("roundtrip mismatch for mode %s", mode)
|
|
}
|
|
}
|
|
})
|
|
}
|