package symm import ( "bytes" "testing" ) func FuzzAesCBCRoundTrip(f *testing.F) { f.Add([]byte("fuzz-aes-cbc")) f.Add([]byte{}) key := []byte("0123456789abcdef") iv := []byte("abcdef9876543210") f.Fuzz(func(t *testing.T, data []byte) { enc, err := EncryptAesCBC(data, key, iv, "") if err != nil { t.Fatalf("EncryptAesCBC failed: %v", err) } dec, err := DecryptAesCBC(enc, key, iv, "") if err != nil { t.Fatalf("DecryptAesCBC failed: %v", err) } if !bytes.Equal(dec, data) { t.Fatalf("aes cbc fuzz roundtrip mismatch") } }) } func FuzzChaCha20RoundTrip(f *testing.F) { f.Add([]byte("fuzz-chacha20")) f.Add([]byte{}) key := []byte("0123456789abcdef0123456789abcdef") nonce := []byte("123456789012") f.Fuzz(func(t *testing.T, data []byte) { enc, err := EncryptChaCha20(data, key, nonce) if err != nil { t.Fatalf("EncryptChaCha20 failed: %v", err) } dec, err := DecryptChaCha20(enc, key, nonce) if err != nil { t.Fatalf("DecryptChaCha20 failed: %v", err) } if !bytes.Equal(dec, data) { t.Fatalf("chacha20 fuzz roundtrip mismatch") } }) } func FuzzAesCBCStreamRoundTrip(f *testing.F) { f.Add([]byte("fuzz-aes-stream")) f.Add([]byte{}) key := []byte("0123456789abcdef") iv := []byte("abcdef9876543210") f.Fuzz(func(t *testing.T, data []byte) { enc := &bytes.Buffer{} dec := &bytes.Buffer{} if err := EncryptAesCBCStream(enc, bytes.NewReader(data), key, iv, ""); err != nil { t.Fatalf("EncryptAesCBCStream failed: %v", err) } if err := DecryptAesCBCStream(dec, bytes.NewReader(enc.Bytes()), key, iv, ""); err != nil { t.Fatalf("DecryptAesCBCStream failed: %v", err) } if !bytes.Equal(dec.Bytes(), data) { t.Fatalf("aes cbc stream fuzz roundtrip mismatch") } }) }