MCPcopy Index your code
hub / github.com/XTLS/Go / readFinished

Method readFinished

handshake_server.go:703–730  ·  view source on GitHub ↗
(out []byte)

Source from the content-addressed store, hash-verified

701}
702
703func (hs *serverHandshakeState) readFinished(out []byte) error {
704 c := hs.c
705
706 if err := c.readChangeCipherSpec(); err != nil {
707 return err
708 }
709
710 msg, err := c.readHandshake()
711 if err != nil {
712 return err
713 }
714 clientFinished, ok := msg.(*finishedMsg)
715 if !ok {
716 c.sendAlert(alertUnexpectedMessage)
717 return unexpectedMessageError(clientFinished, msg)
718 }
719
720 verify := hs.finishedHash.clientSum(hs.masterSecret)
721 if len(verify) != len(clientFinished.verifyData) ||
722 subtle.ConstantTimeCompare(verify, clientFinished.verifyData) != 1 {
723 c.sendAlert(alertHandshakeFailure)
724 return errors.New("tls: client's Finished message is incorrect")
725 }
726
727 hs.finishedHash.Write(clientFinished.marshal())
728 copy(out, verify)
729 return nil
730}
731
732func (hs *serverHandshakeState) sendSessionTicket() error {
733 // ticketSupported is set in a resumption handshake if the

Callers 1

handshakeMethod · 0.95

Calls 7

unexpectedMessageErrorFunction · 0.85
readChangeCipherSpecMethod · 0.80
readHandshakeMethod · 0.80
sendAlertMethod · 0.80
clientSumMethod · 0.80
marshalMethod · 0.65
WriteMethod · 0.45

Tested by

no test coverage detected