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

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
 	"crypto/sha256"
7
 	"crypto/sha256"
8
 	"encoding/binary"
8
 	"encoding/binary"
9
 	"io"
9
 	"io"
10
+	"math"
11
+	rnd "math/rand/v2"
10
 
12
 
13
+	"github.com/9seconds/mtg/v2/mtglib/internal/doppel"
11
 	"github.com/9seconds/mtg/v2/mtglib/internal/tls"
14
 	"github.com/9seconds/mtg/v2/mtglib/internal/tls"
12
 	"golang.org/x/crypto/curve25519"
15
 	"golang.org/x/crypto/curve25519"
13
 )
16
 )
14
 
17
 
15
 const (
18
 const (
16
 	TypeHandshakeServer = 0x02
19
 	TypeHandshakeServer = 0x02
17
-
18
-	ChangeCipherValue = 0x01
20
+	ChangeCipherValue   = 0x01
19
 
21
 
20
 	EllipticCurveLen = 32
22
 	EllipticCurveLen = 32
21
 )
23
 )
125
 }
127
 }
126
 
128
 
127
 func generateNoise(buf *bytes.Buffer) {
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
 	if _, err := rand.Read(data[:]); err != nil {
133
 	if _, err := rand.Read(data[:]); err != nil {
131
 		panic(err)
134
 		panic(err)

+ 2
- 1
mtglib/internal/tls/fake/server_side_test.go Прегледај датотеку

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

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