mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 19:04:02 +03:00
FILE / ScuroNeko/mtg
mtglib/internal/tls/fake/client_side_fuzz_test.go
Исходный файл и его история в репозитории.
50 lines
996 B
Go
50 lines
996 B
Go
package fake_test
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/9seconds/mtg/v2/internal/testlib"
|
|
"github.com/9seconds/mtg/v2/mtglib"
|
|
"github.com/9seconds/mtg/v2/mtglib/internal/tls/fake"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/mock"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
type connMock struct {
|
|
testlib.EssentialsConnMock
|
|
|
|
readBuf *bytes.Buffer
|
|
}
|
|
|
|
func (f *connMock) Read(p []byte) (int, error) {
|
|
return f.readBuf.Read(p)
|
|
}
|
|
|
|
func FuzzReadClientHello(f *testing.F) {
|
|
seed := [248]byte{}
|
|
|
|
secret, err := mtglib.ParseSecret(
|
|
"ee367a189aee18fa31c190054efd4a8e9573746f726167652e676f6f676c65617069732e636f6d",
|
|
)
|
|
require.NoError(f, err)
|
|
|
|
f.Add(seed[:])
|
|
|
|
f.Fuzz(func(t *testing.T, value []byte) {
|
|
r := &connMock{
|
|
readBuf: bytes.NewBuffer(value),
|
|
}
|
|
r.
|
|
On("SetReadDeadline", mock.AnythingOfType("time.Time")).
|
|
Twice().
|
|
Return(nil)
|
|
|
|
_, err := fake.ReadClientHello(r, secret.Key[:], secret.Host, time.Hour)
|
|
assert.Error(t, err)
|
|
})
|
|
|
|
}
|