code: func (c *Conn) sayHello(hello *clientHelloMsg) (serverHello *serverHelloMsg, err error) {
  	c.writeRecord(recordTypeHandshake, hello.marshal())
  	msg, err := c.readHandshake()
  	if err != nil {
  		return
  	}
  	serverHello, ok := msg.(*serverHelloMsg)
  	if !ok {
  		return nil, unexpectedMessageError(serverHello, msg)
  	}
  	return
  }
docs: // sayHello is the backend to SayHello that returns a full serverHelloMsg for processing.