MCPcopy
hub / github.com/XTLS/REALITY / pickTLSVersion

Method pickTLSVersion

handshake_client.go:531–549  ·  view source on GitHub ↗
(serverHello *serverHelloMsg)

Source from the content-addressed store, hash-verified

529}
530
531func (c *Conn) pickTLSVersion(serverHello *serverHelloMsg) error {
532 peerVersion := serverHello.vers
533 if serverHello.supportedVersion != 0 {
534 peerVersion = serverHello.supportedVersion
535 }
536
537 vers, ok := c.config.mutualVersion(roleClient, []uint16{peerVersion})
538 if !ok {
539 c.sendAlert(alertProtocolVersion)
540 return fmt.Errorf("tls: server selected unsupported protocol version %x", peerVersion)
541 }
542
543 c.vers = vers
544 c.haveVers = true
545 c.in.version = vers
546 c.out.version = vers
547
548 return nil
549}
550
551// Does the handshake, either a full one or resumes old session. Requires hs.c,
552// hs.hello, hs.serverHello, and, optionally, hs.session to be set.

Callers 1

clientHandshakeMethod · 0.95

Calls 2

sendAlertMethod · 0.95
mutualVersionMethod · 0.80

Tested by

no test coverage detected