|
|
@@ -55,13 +55,8 @@ func (suite *SendServerHelloTestSuite) TestRecordStructure() {
|
|
55
|
55
|
|
|
56
|
56
|
suite.Empty(suite.buf.Bytes())
|
|
57
|
57
|
|
|
58
|
|
- noiseBuf := bytes.NewReader(noise)
|
|
59
|
|
- rec.Reset()
|
|
60
|
|
-
|
|
61
|
|
- recordType, _, err = tls.ReadRecord(noiseBuf, &rec)
|
|
62
|
|
- suite.NoError(err)
|
|
63
|
|
- suite.Equal(byte(tls.TypeApplicationData), recordType)
|
|
64
|
|
- suite.Zero(noiseBuf.Len())
|
|
|
58
|
+ // noise is raw payload without TLS record header
|
|
|
59
|
+ suite.Len(noise, 1369)
|
|
65
|
60
|
}
|
|
66
|
61
|
|
|
67
|
62
|
func (suite *SendServerHelloTestSuite) TestHMAC() {
|
|
|
@@ -78,7 +73,13 @@ func (suite *SendServerHelloTestSuite) TestHMAC() {
|
|
78
|
73
|
mac := hmac.New(sha256.New, suite.secret.Key[:])
|
|
79
|
74
|
mac.Write(suite.hello.Random[:])
|
|
80
|
75
|
mac.Write(packet)
|
|
81
|
|
- mac.Write(noise)
|
|
|
76
|
+
|
|
|
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())
|
|
82
|
83
|
|
|
83
|
84
|
suite.Equal(random, mac.Sum(nil))
|
|
84
|
85
|
}
|