Highly-opinionated (ex-bullshit-free) MTPROTO proxy for Telegram. If you use v1.0 or upgrade broke you proxy, please read the chapter Version 2
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

client_side_fuzz_test.go 995B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package fake_test
  2. import (
  3. "bytes"
  4. "testing"
  5. "time"
  6. "github.com/9seconds/mtg/v2/internal/testlib"
  7. "github.com/9seconds/mtg/v2/mtglib"
  8. "github.com/9seconds/mtg/v2/mtglib/internal/tls/fake"
  9. "github.com/stretchr/testify/assert"
  10. "github.com/stretchr/testify/mock"
  11. "github.com/stretchr/testify/require"
  12. )
  13. type connMock struct {
  14. testlib.EssentialsConnMock
  15. readBuf *bytes.Buffer
  16. }
  17. func (f *connMock) Read(p []byte) (int, error) {
  18. return f.readBuf.Read(p)
  19. }
  20. func FuzzReadClientHello(f *testing.F) {
  21. seed := [248]byte{}
  22. secret, err := mtglib.ParseSecret(
  23. "ee367a189aee18fa31c190054efd4a8e9573746f726167652e676f6f676c65617069732e636f6d",
  24. )
  25. require.NoError(f, err)
  26. f.Add(seed[:])
  27. f.Fuzz(func(t *testing.T, value []byte) {
  28. r := &connMock{
  29. readBuf: bytes.NewBuffer(value),
  30. }
  31. r.
  32. On("SetReadDeadline", mock.AnythingOfType("time.Time")).
  33. Twice().
  34. Return(nil)
  35. _, err := fake.ReadClientHello(r, secret.Key[:], secret.Host, time.Hour)
  36. assert.Error(t, err)
  37. })
  38. }