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

Method DecryptTicket

ticket.go:357–368  ·  view source on GitHub ↗

DecryptTicket decrypts a ticket encrypted by [Config.EncryptTicket]. It can be used as a [Config.UnwrapSession] implementation. If the ticket can't be decrypted or parsed, DecryptTicket returns (nil, nil).

(identity []byte, cs ConnectionState)

Source from the content-addressed store, hash-verified

355//
356// If the ticket can't be decrypted or parsed, DecryptTicket returns (nil, nil).
357func (c *Config) DecryptTicket(identity []byte, cs ConnectionState) (*SessionState, error) {
358 ticketKeys := c.ticketKeys(nil)
359 stateBytes := c.decryptTicket(identity, ticketKeys)
360 if stateBytes == nil {
361 return nil, nil
362 }
363 s, err := ParseSessionState(stateBytes)
364 if err != nil {
365 return nil, nil // drop unparsable tickets on the floor
366 }
367 return s, nil
368}
369
370func (c *Config) decryptTicket(encrypted []byte, ticketKeys []ticketKey) []byte {
371 if len(encrypted) < aes.BlockSize+sha256.Size {

Callers

nothing calls this directly

Calls 3

ticketKeysMethod · 0.95
decryptTicketMethod · 0.95
ParseSessionStateFunction · 0.85

Tested by

no test coverage detected