Add support for processing Unified TLS frames #69848
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is mix of #68425, dotnet/yarp#1656 and reaction to #64322.
Unified parsing works only on Windows as legacy and allows (old) clients to send TLS frame encoded in Ssl2 format.
All we really need is to process first frame. Server should respond back with "normal" TLS e.g. all the framing and processing removed in #64322 is really not needed.
Since the header size is now variable, I changed
TlsFrameHelperto return length of the TLS frame instead of just length of the inner payload.Since we don't have good way how to generate real traffic, I added test that injects legacy ClientHello and verifies that we get back ServerHello instead of failure.
fixes #68310