forked from muraenateam/muraena
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtls.go
32 lines (28 loc) · 939 Bytes
/
tls.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package session
import (
"crypto/tls"
)
var tlsVersionToConst = map[string]uint16{
"SSL3.0": tls.VersionSSL30,
"TLS1.0": tls.VersionTLS10,
"TLS1.1": tls.VersionTLS11,
"TLS1.2": tls.VersionTLS12,
"TLS1.3": tls.VersionTLS13,
}
var tlsRenegotiationToConst = map[string]tls.RenegotiationSupport{
"NEVER": tls.RenegotiateNever,
"ONCE": tls.RenegotiateOnceAsClient,
"FREELY": tls.RenegotiateFreelyAsClient,
}
func (s *Session) GetTLSClientConfig() *tls.Config {
cTLS := s.Config.TLS
return &tls.Config{
MinVersion: tlsVersionToConst[cTLS.MinVersion],
PreferServerCipherSuites: cTLS.PreferServerCipherSuites,
SessionTicketsDisabled: cTLS.SessionTicketsDisabled,
NextProtos: []string{"http/1.1"},
Certificates: make([]tls.Certificate, 1),
InsecureSkipVerify: cTLS.InsecureSkipVerify,
Renegotiation: tlsRenegotiationToConst[cTLS.RenegotiationSupport],
}
}