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

Method readFinished

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

Source from the content-addressed store, hash-verified

809}
810
811func (hs *serverHandshakeState) readFinished(out []byte) error {
812 c := hs.c
813
814 if err := c.readChangeCipherSpec(); err != nil {
815 return err
816 }
817
818 // finishedMsg is included in the transcript, but not until after we
819 // check the client version, since the state before this message was
820 // sent is used during verification.
821 msg, err := c.readHandshake(nil)
822 if err != nil {
823 return err
824 }
825 clientFinished, ok := msg.(*finishedMsg)
826 if !ok {
827 c.sendAlert(alertUnexpectedMessage)
828 return unexpectedMessageError(clientFinished, msg)
829 }
830
831 verify := hs.finishedHash.clientSum(hs.masterSecret)
832 if len(verify) != len(clientFinished.verifyData) ||
833 subtle.ConstantTimeCompare(verify, clientFinished.verifyData) != 1 {
834 c.sendAlert(alertHandshakeFailure)
835 return errors.New("tls: client's Finished message is incorrect")
836 }
837
838 if err := transcriptMsg(clientFinished, &hs.finishedHash); err != nil {
839 return err
840 }
841
842 copy(out, verify)
843 return nil
844}
845
846func (hs *serverHandshakeState) sendSessionTicket() error {
847 if !hs.hello.ticketSupported {

Callers 1

handshakeMethod · 0.95

Calls 6

unexpectedMessageErrorFunction · 0.85
transcriptMsgFunction · 0.85
readChangeCipherSpecMethod · 0.80
readHandshakeMethod · 0.80
sendAlertMethod · 0.80
clientSumMethod · 0.80

Tested by

no test coverage detected