MCPcopy Create free account
hub / github.com/XTLS/Go / readFinished

Method readFinished

handshake_client.go:767–793  ·  view source on GitHub ↗
(out []byte)

Source from the content-addressed store, hash-verified

765}
766
767func (hs *clientHandshakeState) readFinished(out []byte) error {
768 c := hs.c
769
770 if err := c.readChangeCipherSpec(); err != nil {
771 return err
772 }
773
774 msg, err := c.readHandshake()
775 if err != nil {
776 return err
777 }
778 serverFinished, ok := msg.(*finishedMsg)
779 if !ok {
780 c.sendAlert(alertUnexpectedMessage)
781 return unexpectedMessageError(serverFinished, msg)
782 }
783
784 verify := hs.finishedHash.serverSum(hs.masterSecret)
785 if len(verify) != len(serverFinished.verifyData) ||
786 subtle.ConstantTimeCompare(verify, serverFinished.verifyData) != 1 {
787 c.sendAlert(alertHandshakeFailure)
788 return errors.New("tls: server's Finished message was incorrect")
789 }
790 hs.finishedHash.Write(serverFinished.marshal())
791 copy(out, verify)
792 return nil
793}
794
795func (hs *clientHandshakeState) readSessionTicket() error {
796 if !hs.serverHello.ticketSupported {

Callers 1

handshakeMethod · 0.95

Calls 7

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

Tested by

no test coverage detected