MCPcopy
hub / github.com/XTLS/REALITY / sendSessionTicket

Method sendSessionTicket

handshake_server.go:846–883  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

844}
845
846func (hs *serverHandshakeState) sendSessionTicket() error {
847 if !hs.hello.ticketSupported {
848 return nil
849 }
850
851 c := hs.c
852 m := new(newSessionTicketMsg)
853
854 state := c.sessionState()
855 state.secret = hs.masterSecret
856 if hs.sessionState != nil {
857 // If this is re-wrapping an old key, then keep
858 // the original time it was created.
859 state.createdAt = hs.sessionState.createdAt
860 }
861 if c.config.WrapSession != nil {
862 var err error
863 m.ticket, err = c.config.WrapSession(c.connectionStateLocked(), state)
864 if err != nil {
865 return err
866 }
867 } else {
868 stateBytes, err := state.Bytes()
869 if err != nil {
870 return err
871 }
872 m.ticket, err = c.config.encryptTicket(stateBytes, c.ticketKeys)
873 if err != nil {
874 return err
875 }
876 }
877
878 if _, err := hs.c.writeHandshakeRecord(m, &hs.finishedHash); err != nil {
879 return err
880 }
881
882 return nil
883}
884
885func (hs *serverHandshakeState) sendFinished(out []byte) error {
886 c := hs.c

Callers 1

handshakeMethod · 0.95

Calls 5

sessionStateMethod · 0.80
connectionStateLockedMethod · 0.80
BytesMethod · 0.80
encryptTicketMethod · 0.80
writeHandshakeRecordMethod · 0.80

Tested by

no test coverage detected