Преглед изворни кода

Add fuzzing for client hello

tags/v2.1.6^2
9seconds пре 4 година
родитељ
комит
d8b14dc765
2 измењених фајлова са 22 додато и 1 уклоњено
  1. 21
    0
      mtglib/internal/faketls/client_hello_fuzz_test.go
  2. 1
    1
      mtglib/internal/faketls/init.go

+ 21
- 0
mtglib/internal/faketls/client_hello_fuzz_test.go Прегледај датотеку

@@ -0,0 +1,21 @@
1
+package faketls_test
2
+
3
+import (
4
+	"testing"
5
+
6
+	"github.com/9seconds/mtg/v2/mtglib/internal/faketls"
7
+	"github.com/stretchr/testify/require"
8
+)
9
+
10
+var FuzzClientHelloSecret = []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
11
+
12
+func FuzzClientHello(f *testing.F) {
13
+	f.Add([]byte{1, 2, 3})
14
+
15
+	f.Fuzz(func(t *testing.T, frame []byte) {
16
+		_, err := faketls.ParseClientHello(FuzzClientHelloSecret, frame)
17
+
18
+		// a probability of having != err is almost negligible
19
+		require.Error(t, err)
20
+	})
21
+}

+ 1
- 1
mtglib/internal/faketls/init.go Прегледај датотеку

@@ -19,7 +19,7 @@ const (
19 19
 
20 20
 	// ClientHelloMinLen is a minimal possible length of
21 21
 	// ClientHello record.
22
-	ClientHelloMinLen = 4
22
+	ClientHelloMinLen = 6
23 23
 
24 24
 	// WelcomePacketRandomOffset is an offset of random in ServerHello
25 25
 	// packet (including record envelope).

Loading…
Откажи
Сачувај