func randomBytes(n int, rand *rand.Rand) []byte {
r := make([]byte, n)
- for i := 0; i < n; i++ {
- r[i] = byte(rand.Int31())
+ if _, err := rand.Read(r); err != nil {
+ panic("rand.Read failed: " + err.Error())
}
return r
}
m.sessionId = randomBytes(rand.Intn(32), rand)
m.cipherSuites = make([]uint16, rand.Intn(63)+1)
for i := 0; i < len(m.cipherSuites); i++ {
- m.cipherSuites[i] = uint16(rand.Int31())
+ cs := uint16(rand.Int31())
+ if cs == scsvRenegotiation {
+ cs += 1
+ }
+ m.cipherSuites[i] = cs
}
m.compressionMethods = randomBytes(rand.Intn(63)+1, rand)
if rand.Intn(10) > 5 {
}
}
if rand.Intn(10) > 5 {
- m.signatureAndHashes = supportedSignatureAlgorithms()
+ m.supportedSignatureAlgorithms = supportedSignatureAlgorithms()
}
m.alpnProtocols = make([]string, rand.Intn(5))
for i := range m.alpnProtocols {