(serverHello *serverHelloMsg)
| 529 | } |
| 530 | |
| 531 | func (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. |
no test coverage detected