|
|
@@ -38,7 +38,7 @@ func (suite *SendServerHelloTestSuite) SetupTest() {
|
|
38
|
38
|
}
|
|
39
|
39
|
|
|
40
|
40
|
func (suite *SendServerHelloTestSuite) TestRecordStructure() {
|
|
41
|
|
- noise, err := fake.SendServerHello(suite.buf, suite.secret.Key[:], suite.hello)
|
|
|
41
|
+ err := fake.SendServerHello(suite.buf, suite.secret.Key[:], suite.hello)
|
|
42
|
42
|
suite.NoError(err)
|
|
43
|
43
|
|
|
44
|
44
|
var rec bytes.Buffer
|
|
|
@@ -53,14 +53,18 @@ func (suite *SendServerHelloTestSuite) TestRecordStructure() {
|
|
53
|
53
|
suite.NoError(err)
|
|
54
|
54
|
suite.Equal(byte(tls.TypeChangeCipherSpec), recordType)
|
|
55
|
55
|
|
|
56
|
|
- suite.Empty(suite.buf.Bytes())
|
|
|
56
|
+ rec.Reset()
|
|
57
|
57
|
|
|
58
|
|
- // noise is raw payload without TLS record header
|
|
59
|
|
- suite.Len(noise, 1369)
|
|
|
58
|
+ recordType, length, err := tls.ReadRecord(suite.buf, &rec)
|
|
|
59
|
+ suite.NoError(err)
|
|
|
60
|
+ suite.Equal(byte(tls.TypeApplicationData), recordType)
|
|
|
61
|
+ suite.Equal(int64(1369), length)
|
|
|
62
|
+
|
|
|
63
|
+ suite.Empty(suite.buf.Bytes())
|
|
60
|
64
|
}
|
|
61
|
65
|
|
|
62
|
66
|
func (suite *SendServerHelloTestSuite) TestHMAC() {
|
|
63
|
|
- noise, err := fake.SendServerHello(suite.buf, suite.secret.Key[:], suite.hello)
|
|
|
67
|
+ err := fake.SendServerHello(suite.buf, suite.secret.Key[:], suite.hello)
|
|
64
|
68
|
suite.NoError(err)
|
|
65
|
69
|
|
|
66
|
70
|
packet := make([]byte, suite.buf.Len())
|
|
|
@@ -74,18 +78,11 @@ func (suite *SendServerHelloTestSuite) TestHMAC() {
|
|
74
|
78
|
mac.Write(suite.hello.Random[:])
|
|
75
|
79
|
mac.Write(packet)
|
|
76
|
80
|
|
|
77
|
|
- // HMAC is computed over the full noise TLS record (with header),
|
|
78
|
|
- // but SendServerHello returns noise without the header,
|
|
79
|
|
- // so we reconstruct the full record.
|
|
80
|
|
- var fullNoise bytes.Buffer
|
|
81
|
|
- tls.WriteRecord(&fullNoise, noise) //nolint: errcheck
|
|
82
|
|
- mac.Write(fullNoise.Bytes())
|
|
83
|
|
-
|
|
84
|
81
|
suite.Equal(random, mac.Sum(nil))
|
|
85
|
82
|
}
|
|
86
|
83
|
|
|
87
|
84
|
func (suite *SendServerHelloTestSuite) TestHandshakePayload() {
|
|
88
|
|
- _, err := fake.SendServerHello(suite.buf, suite.secret.Key[:], suite.hello)
|
|
|
85
|
+ err := fake.SendServerHello(suite.buf, suite.secret.Key[:], suite.hello)
|
|
89
|
86
|
suite.NoError(err)
|
|
90
|
87
|
|
|
91
|
88
|
packet := suite.buf.Bytes()
|
|
|
@@ -107,7 +104,7 @@ func (suite *SendServerHelloTestSuite) TestHandshakePayload() {
|
|
107
|
104
|
}
|
|
108
|
105
|
|
|
109
|
106
|
func (suite *SendServerHelloTestSuite) TestChangeCipherSpec() {
|
|
110
|
|
- _, err := fake.SendServerHello(suite.buf, suite.secret.Key[:], suite.hello)
|
|
|
107
|
+ err := fake.SendServerHello(suite.buf, suite.secret.Key[:], suite.hello)
|
|
111
|
108
|
suite.NoError(err)
|
|
112
|
109
|
|
|
113
|
110
|
// Skip first record
|