|
|
@@ -23,30 +23,30 @@ func SendWelcomePacket(writer io.Writer, secret []byte, clientHello ClientHello)
|
|
23
|
23
|
rec.Version = record.Version12
|
|
24
|
24
|
|
|
25
|
25
|
generateServerHello(&rec.Payload, clientHello)
|
|
26
|
|
- rec.Dump(buf)
|
|
|
26
|
+ rec.Dump(buf) // nolint: errcheck
|
|
27
|
27
|
rec.Reset()
|
|
28
|
28
|
|
|
29
|
29
|
rec.Type = record.TypeChangeCipherSpec
|
|
30
|
30
|
rec.Version = record.Version12
|
|
31
|
|
- rec.Payload.WriteByte(0x01)
|
|
|
31
|
+ rec.Payload.WriteByte(ChangeCipherValue)
|
|
32
|
32
|
|
|
33
|
|
- rec.Dump(buf)
|
|
|
33
|
+ rec.Dump(buf) // nolint: errcheck
|
|
34
|
34
|
rec.Reset()
|
|
35
|
35
|
|
|
36
|
36
|
rec.Type = record.TypeApplicationData
|
|
37
|
37
|
rec.Version = record.Version12
|
|
38
|
38
|
|
|
39
|
|
- if _, err := io.CopyN(&rec.Payload, rand.Reader, int64(1024+mrand.Intn(3092))); err != nil {
|
|
|
39
|
+ if _, err := io.CopyN(&rec.Payload, rand.Reader, int64(1024+mrand.Intn(3092))); err != nil { // nolint: gomnd
|
|
40
|
40
|
panic(err)
|
|
41
|
41
|
}
|
|
42
|
42
|
|
|
43
|
|
- rec.Dump(buf)
|
|
|
43
|
+ rec.Dump(buf) // nolint: errcheck
|
|
44
|
44
|
|
|
45
|
45
|
packet := buf.Bytes()
|
|
46
|
46
|
mac := hmac.New(sha256.New, secret)
|
|
47
|
47
|
|
|
48
|
|
- mac.Write(clientHello.Random[:])
|
|
49
|
|
- mac.Write(packet)
|
|
|
48
|
+ mac.Write(clientHello.Random[:]) // nolint: errcheck
|
|
|
49
|
+ mac.Write(packet) // nolint: errcheck
|
|
50
|
50
|
|
|
51
|
51
|
copy(packet[WelcomePacketRandomOffset:], mac.Sum(nil))
|
|
52
|
52
|
|
|
|
@@ -75,7 +75,11 @@ func generateServerHello(writer io.Writer, clientHello ClientHello) {
|
|
75
|
75
|
bodyBuf.Write(serverHelloSuffix)
|
|
76
|
76
|
|
|
77
|
77
|
scalar := [32]byte{}
|
|
78
|
|
- rand.Read(scalar[:])
|
|
|
78
|
+
|
|
|
79
|
+ if _, err := rand.Read(scalar[:]); err != nil {
|
|
|
80
|
+ panic(err)
|
|
|
81
|
+ }
|
|
|
82
|
+
|
|
79
|
83
|
curve, _ := curve25519.X25519(scalar[:], curve25519.Basepoint)
|
|
80
|
84
|
bodyBuf.Write(curve)
|
|
81
|
85
|
|
|
|
@@ -83,6 +87,6 @@ func generateServerHello(writer io.Writer, clientHello ClientHello) {
|
|
83
|
87
|
binary.BigEndian.PutUint32(header[:], uint32(bodyBuf.Len()))
|
|
84
|
88
|
header[0] = HandshakeTypeServer
|
|
85
|
89
|
|
|
86
|
|
- writer.Write(header[:])
|
|
87
|
|
- bodyBuf.WriteTo(writer)
|
|
|
90
|
+ writer.Write(header[:]) // nolint: errcheck
|
|
|
91
|
+ bodyBuf.WriteTo(writer) // nolint: errcheck
|
|
88
|
92
|
}
|