Преглед на файлове

Have a noise of variable size

tags/v2.2.0^2^2
9seconds преди 1 месец
родител
ревизия
b35c212d65
променени са 2 файла, в които са добавени 8 реда и са изтрити 4 реда
  1. 6
    3
      mtglib/internal/tls/fake/server_side.go
  2. 2
    1
      mtglib/internal/tls/fake/server_side_test.go

+ 6
- 3
mtglib/internal/tls/fake/server_side.go Целия файл

@@ -7,15 +7,17 @@ import (
7 7
 	"crypto/sha256"
8 8
 	"encoding/binary"
9 9
 	"io"
10
+	"math"
11
+	rnd "math/rand/v2"
10 12
 
13
+	"github.com/9seconds/mtg/v2/mtglib/internal/doppel"
11 14
 	"github.com/9seconds/mtg/v2/mtglib/internal/tls"
12 15
 	"golang.org/x/crypto/curve25519"
13 16
 )
14 17
 
15 18
 const (
16 19
 	TypeHandshakeServer = 0x02
17
-
18
-	ChangeCipherValue = 0x01
20
+	ChangeCipherValue   = 0x01
19 21
 
20 22
 	EllipticCurveLen = 32
21 23
 )
@@ -125,7 +127,8 @@ func generateChangeCipherValue(buf *bytes.Buffer) {
125 127
 }
126 128
 
127 129
 func generateNoise(buf *bytes.Buffer) {
128
-	data := [1369]byte{}
130
+	minSize := int(math.Round(0.75 * float64(doppel.TLSRecordSizeMax)))
131
+	data := make([]byte, minSize+rnd.IntN(doppel.TLSRecordSizeMax-minSize))
129 132
 
130 133
 	if _, err := rand.Read(data[:]); err != nil {
131 134
 		panic(err)

+ 2
- 1
mtglib/internal/tls/fake/server_side_test.go Целия файл

@@ -8,6 +8,7 @@ import (
8 8
 	"testing"
9 9
 
10 10
 	"github.com/9seconds/mtg/v2/mtglib"
11
+	"github.com/9seconds/mtg/v2/mtglib/internal/doppel"
11 12
 	"github.com/9seconds/mtg/v2/mtglib/internal/tls"
12 13
 	"github.com/9seconds/mtg/v2/mtglib/internal/tls/fake"
13 14
 	"github.com/stretchr/testify/suite"
@@ -58,7 +59,7 @@ func (suite *SendServerHelloTestSuite) TestRecordStructure() {
58 59
 	recordType, length, err := tls.ReadRecord(suite.buf, &rec)
59 60
 	suite.NoError(err)
60 61
 	suite.Equal(byte(tls.TypeApplicationData), recordType)
61
-	suite.Equal(int64(1369), length)
62
+	suite.Greater(length, int64(doppel.TLSRecordSizeStart))
62 63
 
63 64
 	suite.Empty(suite.buf.Bytes())
64 65
 }

Loading…
Отказ
Запис