Branch: Tag:

2020-05-28

2020-05-28 23:49:01 by Tobias S. Josefowitz <tobij@tobij.de>

SSL.Context: Context commits to tickets via offers_tickets()

In certain situations, i.e. after receiving an empty Session Ticket
extension (client supports, but does not yet have a ticket), by
including the Session Ticket extension in the server hello commits us to
providing a ticket later.

As SSL.Context would simply return 0 in encode_ticket() when use_cache
was zero (not the default), we used to break the protocol on such
occasions. Instead, we now use SSL.Context()->offers_tickets() to signal
whether Session Tickets should be supported on the connection (and
whether the Context commits to encoding a session as ticket later on).

69:    "Curve": "predef::Nettle.Curve25519":2, "predef::Nettle.ECC_Curve.Point._equal":1, "predef::Nettle.ECC_Curve.`==":1, "predef::__builtin.Nettle.ECC_Curve.Point.create":3, "predef::__builtin.Nettle.ECC_Curve.Point.set":1,    "Customer": "predef::ADT.TreeScheduler":2,    "DSA_State": "predef::Crypto.DH.Parameters.create":1, -  "DTDElementHelper": "predef::Parser.XML.Tree.DTDElementNode":1, "predef::Parser.XML.Tree.SimpleDTDElementNode":1, +  "DTDElementHelper": "predef::Parser.XML.Tree.DTDElementNode":2, "predef::Parser.XML.Tree.SimpleDTDElementNode":2,    "Debug.Watchdog": "predef::Debug.Profiling.display":1,    "Debug.assembler_debug()": "cpp::":1,    "Debug.size_object()": "lfun::_size_object":2,