diff --git a/mtglib/internal/tls/fake/server_side.go b/mtglib/internal/tls/fake/server_side.go index 4c2fe3a..90b736d 100644 --- a/mtglib/internal/tls/fake/server_side.go +++ b/mtglib/internal/tls/fake/server_side.go @@ -7,15 +7,17 @@ import ( "crypto/sha256" "encoding/binary" "io" + "math" + rnd "math/rand/v2" + "github.com/9seconds/mtg/v2/mtglib/internal/doppel" "github.com/9seconds/mtg/v2/mtglib/internal/tls" "golang.org/x/crypto/curve25519" ) const ( TypeHandshakeServer = 0x02 - - ChangeCipherValue = 0x01 + ChangeCipherValue = 0x01 EllipticCurveLen = 32 ) @@ -125,7 +127,8 @@ func generateChangeCipherValue(buf *bytes.Buffer) { } func generateNoise(buf *bytes.Buffer) { - data := [1369]byte{} + minSize := int(math.Round(0.75 * float64(doppel.TLSRecordSizeMax))) + data := make([]byte, minSize+rnd.IntN(doppel.TLSRecordSizeMax-minSize)) if _, err := rand.Read(data[:]); err != nil { panic(err) diff --git a/mtglib/internal/tls/fake/server_side_test.go b/mtglib/internal/tls/fake/server_side_test.go index abde893..c4b54a6 100644 --- a/mtglib/internal/tls/fake/server_side_test.go +++ b/mtglib/internal/tls/fake/server_side_test.go @@ -8,6 +8,7 @@ import ( "testing" "github.com/9seconds/mtg/v2/mtglib" + "github.com/9seconds/mtg/v2/mtglib/internal/doppel" "github.com/9seconds/mtg/v2/mtglib/internal/tls" "github.com/9seconds/mtg/v2/mtglib/internal/tls/fake" "github.com/stretchr/testify/suite" @@ -58,7 +59,7 @@ func (suite *SendServerHelloTestSuite) TestRecordStructure() { recordType, length, err := tls.ReadRecord(suite.buf, &rec) suite.NoError(err) suite.Equal(byte(tls.TypeApplicationData), recordType) - suite.Equal(int64(1369), length) + suite.Greater(length, int64(doppel.TLSRecordSizeStart)) suite.Empty(suite.buf.Bytes()) }